Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r84143 - in sandbox/math: boost boost/math libs/math/doc libs/math/doc/background libs/math/doc/complex libs/math/doc/complex/html libs/math/doc/concepts libs/math/doc/constants libs/math/doc/distributions libs/math/doc/equations libs/math/doc/fp_utilities libs/math/doc/gcd libs/math/doc/gcd/html libs/math/doc/graphs libs/math/doc/html libs/math/doc/html/index libs/math/doc/html/math_toolkit libs/math/doc/html/math_toolkit/backgrounders libs/math/doc/html/math_toolkit/constants libs/math/doc/html/math_toolkit/constants/tutorial libs/math/doc/html/math_toolkit/dist libs/math/doc/html/math_toolkit/dist/dist_ref libs/math/doc/html/math_toolkit/dist/dist_ref/dists libs/math/doc/html/math_toolkit/dist/stat_tut libs/math/doc/html/math_toolkit/dist/stat_tut/overview libs/math/doc/html/math_toolkit/dist/stat_tut/weg libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg libs/math/doc/html/math_toolkit/dist/stat_tut/weg/cs_eg libs/math/doc/html/math_toolkit/dist/stat_tut/weg/find_eg libs/math/doc/html/math_toolkit/dist/stat_tut/weg/nccs_eg libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg libs/math/doc/html/math_toolkit/dist/stat_tut/weg/normal_example libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg libs/math/doc/html/math_toolkit/extern_c libs/math/doc/html/math_toolkit/gcd_lcm libs/math/doc/html/math_toolkit/indexes libs/math/doc/html/math_toolkit/inverse_complex libs/math/doc/html/math_toolkit/main_overview libs/math/doc/html/math_toolkit/octonions libs/math/doc/html/math_toolkit/perf libs/math/doc/html/math_toolkit/policy libs/math/doc/html/math_toolkit/policy/pol_ref libs/math/doc/html/math_toolkit/policy/pol_tutorial libs/math/doc/html/math_toolkit/quaternions libs/math/doc/html/math_toolkit/special libs/math/doc/html/math_toolkit/special/airy libs/math/doc/html/math_toolkit/special/bessel libs/math/doc/html/math_toolkit/special/ellint libs/math/doc/html/math_toolkit/special/expint libs/math/doc/html/math_toolkit/special/factorials libs/math/doc/html/math_toolkit/special/hankel libs/math/doc/html/math_toolkit/special/inv_hyper libs/math/doc/html/math_toolkit/special/jacobi libs/math/doc/html/math_toolkit/special/powers libs/math/doc/html/math_toolkit/special/sf_beta libs/math/doc/html/math_toolkit/special/sf_erf libs/math/doc/html/math_toolkit/special/sf_gamma libs/math/doc/html/math_toolkit/special/sf_poly libs/math/doc/html/math_toolkit/special/sinc libs/math/doc/html/math_toolkit/special/zetas libs/math/doc/html/math_toolkit/status libs/math/doc/html/math_toolkit/toolkit libs/math/doc/html/math_toolkit/toolkit/internals1 libs/math/doc/html/math_toolkit/toolkit/internals2 libs/math/doc/html/math_toolkit/using_udt libs/math/doc/html/math_toolkit/using_udt/high_precision libs/math/doc/html/math_toolkit/utils libs/math/doc/html/math_toolkit/utils/fp_facets libs/math/doc/html/math_toolkit/utils/next_float libs/math/doc/html/math_toolkit/utils/rounding libs/math/doc/internals libs/math/doc/octonion libs/math/doc/octonion/html libs/math/doc/overview libs/math/doc/performance libs/math/doc/policies libs/math/doc/quaternion libs/math/doc/quaternion/html libs/math/doc/sf libs/math/doc/sf/distributions libs/math/doc/sf/equations libs/math/doc/sf/graphs libs/math/doc/sf/html libs/math/doc/sf_and_dist libs/math/doc/tr1 libs/math/example tools tools/auto_index tools/auto_index/include
From: john_at_[hidden]
Date: 2013-05-05 08:33:19


Author: johnmaddock
Date: 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
New Revision: 84143
URL: http://svn.boost.org/trac/boost/changeset/84143

Log:
Reorganise directory structure to make things easier to find and maintain.
Added:
   sandbox/math/boost/
   sandbox/math/boost/math/
      - copied from r84123, /trunk/boost/math/
   sandbox/math/libs/math/doc/background/
   sandbox/math/libs/math/doc/background/error.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/error.qbk
   sandbox/math/libs/math/doc/background/implementation.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/implementation.qbk
   sandbox/math/libs/math/doc/background/lanczos.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/lanczos.qbk
   sandbox/math/libs/math/doc/background/references.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/references.qbk
   sandbox/math/libs/math/doc/background/remez.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/remez.qbk
   sandbox/math/libs/math/doc/concepts/
   sandbox/math/libs/math/doc/concepts/concepts.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/concepts.qbk
   sandbox/math/libs/math/doc/constants/
   sandbox/math/libs/math/doc/constants/constants.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/constants.qbk
   sandbox/math/libs/math/doc/constants/pp_pi.hpp
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/pp_pi.hpp
   sandbox/math/libs/math/doc/distributions/
      - copied from r84125, /sandbox/math/libs/math/doc/sf_and_dist/distributions/
   sandbox/math/libs/math/doc/distributions/background.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/background.qbk
   sandbox/math/libs/math/doc/distributions/dist_algorithms.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/dist_algorithms.qbk
   sandbox/math/libs/math/doc/distributions/dist_reference.qbk
      - copied, changed from r84125, /sandbox/math/libs/math/doc/sf_and_dist/dist_reference.qbk
   sandbox/math/libs/math/doc/distributions/dist_tutorial.qbk
      - copied, changed from r84125, /sandbox/math/libs/math/doc/sf_and_dist/dist_tutorial.qbk
   sandbox/math/libs/math/doc/equations/
      - copied from r84125, /sandbox/math/libs/math/doc/sf_and_dist/equations/
   sandbox/math/libs/math/doc/fp_utilities/
   sandbox/math/libs/math/doc/fp_utilities/float_next.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/float_next.qbk
   sandbox/math/libs/math/doc/fp_utilities/fp_facets.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/fp_facets.qbk
   sandbox/math/libs/math/doc/fp_utilities/fpclassify.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/fpclassify.qbk
   sandbox/math/libs/math/doc/fp_utilities/rounding_func.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/rounding_func.qbk
   sandbox/math/libs/math/doc/fp_utilities/sign.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/sign.qbk
   sandbox/math/libs/math/doc/graphs/
      - copied from r84125, /sandbox/math/libs/math/doc/sf_and_dist/graphs/
   sandbox/math/libs/math/doc/html/boostbook.css
      - copied unchanged from r84123, /trunk/doc/src/boostbook.css
   sandbox/math/libs/math/doc/html/index/
   sandbox/math/libs/math/doc/html/index/s13.html (contents, props changed)
   sandbox/math/libs/math/doc/html/index/s14.html (contents, props changed)
   sandbox/math/libs/math/doc/html/index/s15.html (contents, props changed)
   sandbox/math/libs/math/doc/html/index/s16.html (contents, props changed)
   sandbox/math/libs/math/doc/html/index/s17.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/
   sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/
   sandbox/math/libs/math/doc/html/math_toolkit/backgrounders.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/implementation.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/lanczos.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/refs.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/relative_error.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/remez.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/constants/
   sandbox/math/libs/math/doc/html/math_toolkit/constants.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/constants/FAQ.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/constants/constants.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/constants/intro.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/constants/new_const.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/constants/tutorial/
   sandbox/math/libs/math/doc/html/math_toolkit/constants/tutorial.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/constants/tutorial/non_templ.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/constants/tutorial/templ.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/constants/tutorial/user_def.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/
   sandbox/math/libs/math/doc/html/math_toolkit/dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dist_algorithms.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/beta_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/exp_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/f_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/normal_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/pareto.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/rayleigh.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/skew_normal_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/nmp.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/future.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/dist_params.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/complements.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/generic.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/headers.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/objects.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/parameters.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/summary.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/variates.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_conf.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_size_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/c_sharp.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/cs_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/cs_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/error_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/f_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/find_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/find_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/inverse_chi_squared_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/nag_library.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/nccs_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/nccs_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/nccs_eg/nccs_power_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/normal_example/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/normal_example.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/paired_st.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_intervals.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_size.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_test.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/extern_c/
   sandbox/math/libs/math/doc/html/math_toolkit/extern_c.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/extern_c/c99.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/extern_c/tr1.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/extern_c/tr1_ref.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/compile_time.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/credits.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/demo.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/gcd_function_object.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/header.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/history.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/introduction.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/lcm_function_object.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/rationale.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/run_time.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/synopsis.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/indexes/
   sandbox/math/libs/math/doc/html/math_toolkit/indexes.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/indexes/s01.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/indexes/s02.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/indexes/s03.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/indexes/s04.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/indexes/s05.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/
   sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/acos.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/acosh.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/asin.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/asinh.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/atan.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/atanh.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/history.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/implementation.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/building.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/compilers_overview.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/config_macros.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/contact.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/conventions.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/directories.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/error_handling.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/faq.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/hints.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/history1.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/intro.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/namespaces.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/navigation.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/perf_over.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/pol_overview.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/result_type.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/threads.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/main_overview/tr1.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/
   sandbox/math/libs/math/doc/html/math_toolkit/octonions.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/acknowledgements.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/header.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/history.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/mem_fun.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/non_mem.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_create.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_specialization.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_trans.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_typedefs.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_value_ops.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/octonion.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/overview.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/synopsis.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/tests.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonions/todo.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf/
   sandbox/math/libs/math/doc/html/math_toolkit/perf.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf/comp_compilers.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf/comparisons.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf/getting_best.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf/interp.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf/perf_over.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf/perf_test_app.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf/tuning.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/
   sandbox/math/libs/math/doc/html/math_toolkit/policy.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_overview.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/assert_undefined.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/error_handling_policies.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/internal_promotion.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/iteration_pol.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/namespace_pol.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/pol_ref_ref.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/policy_defaults.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/precision_pol.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/ad_hoc_dist_policies.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/ad_hoc_sf_policies.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/namespace_policies.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/policy_tut_defaults.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/policy_usage.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/user_def_err_pol.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/what_is_a_policy.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/acknowledgement.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/create.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/exp.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/header.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/history.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/mem_fun.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/mem_typedef.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/non_mem.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/overview.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/quat.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/spec.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/synopsis.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/tests.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/todo.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/trans.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quaternions/value_op.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/
   sandbox/math/libs/math/doc/html/math_toolkit/special.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/airy/
   sandbox/math/libs/math/doc/html/math_toolkit/special/airy.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/airy/ai.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/airy/aip.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/airy/bi.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/airy/bip.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/
   sandbox/math/libs/math/doc/html/math_toolkit/special/bessel.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/bessel.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/bessel0.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/bessel_over.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/mbessel.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/sph_bessel.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/
   sandbox/math/libs/math/doc/html/math_toolkit/special/ellint.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/ellint_1.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/ellint_2.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/ellint_3.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/ellint_carlson.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/ellint_intro.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/expint/
   sandbox/math/libs/math/doc/html/math_toolkit/special/expint.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/expint/expint_i.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/expint/expint_n.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/
   sandbox/math/libs/math/doc/html/math_toolkit/special/factorials.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/sf_binomial.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/sf_double_factorial.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/sf_factorial.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/sf_falling_factorial.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/sf_rising_factorial.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/hankel/
   sandbox/math/libs/math/doc/html/math_toolkit/special/hankel.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/hankel/cyl_hankel.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/hankel/sph_hankel.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper/
   sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper/acosh.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper/asinh.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper/atanh.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper/inv_hyper_over.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jac_over.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_cd.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_cn.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_cs.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_dc.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_dn.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_ds.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_elliptic.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_nc.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_nd.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_ns.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_sc.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_sd.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_sn.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/owens_t.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers/
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers/cbrt.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers/cos_pi.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers/ct_pow.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers/expm1.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers/hypot.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers/log1p.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers/powm1.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers/sin_pi.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/powers/sqrt1pm1.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta/
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta/beta_derivative.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta/beta_function.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta/ibeta_function.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta/ibeta_inv_function.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_erf/
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_erf.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_erf/error_function.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_erf/error_inv.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/digamma.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/gamma_derivatives.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/gamma_ratios.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/igamma.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/igamma_inv.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/lgamma.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/tgamma.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly/
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly/hermite.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly/laguerre.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly/legendre.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly/sph_harm.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sinc/
   sandbox/math/libs/math/doc/html/math_toolkit/special/sinc.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sinc/sinc_overview.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sinc/sinc_pi.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/sinc/sinhc_pi.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/zetas/
   sandbox/math/libs/math/doc/html/math_toolkit/special/zetas.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/special/zetas/zeta.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/status/
   sandbox/math/libs/math/doc/html/math_toolkit/status.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/status/credits.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/status/history1.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/status/issues.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/cf.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/minima.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/rational.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/roots.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/roots2.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/series_evaluation.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/tuples.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2/
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2/error_test.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2/minimax.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2/polynomials.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2/test_data.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals_overview.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/archetypes.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/concepts.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/dist_concept.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/e_float.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/float128.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/use_mpfr.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/use_multiprecision.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/use_ntl.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/using_test.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/why_high_precision.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/
   sandbox/math/libs/math/doc/html/math_toolkit/utils.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/
   sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/examples.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/intro.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/portability.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/rationale.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/reference.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/fpclass.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/
   sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/float_advance.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/float_distance.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/float_next.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/float_prior.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/nextafter.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/rounding/
   sandbox/math/libs/math/doc/html/math_toolkit/utils/rounding.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/rounding/modf.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/rounding/round.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/rounding/trunc.html (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/utils/sign_functions.html (contents, props changed)
   sandbox/math/libs/math/doc/html4_symbols.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/html4_symbols.qbk
   sandbox/math/libs/math/doc/index.idx
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/index.idx
   sandbox/math/libs/math/doc/internals/
   sandbox/math/libs/math/doc/internals/fraction.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/fraction.qbk
   sandbox/math/libs/math/doc/internals/internals_overview.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/internals_overview.qbk
   sandbox/math/libs/math/doc/internals/minima.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/minima.qbk
   sandbox/math/libs/math/doc/internals/minimax.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/minimax.qbk
   sandbox/math/libs/math/doc/internals/polynomial.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/polynomial.qbk
   sandbox/math/libs/math/doc/internals/rational.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/rational.qbk
   sandbox/math/libs/math/doc/internals/relative_error.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/relative_error.qbk
   sandbox/math/libs/math/doc/internals/roots.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/roots.qbk
   sandbox/math/libs/math/doc/internals/roots_without_derivatives.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/roots_without_derivatives.qbk
   sandbox/math/libs/math/doc/internals/series.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/series.qbk
   sandbox/math/libs/math/doc/internals/test_data.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/test_data.qbk
   sandbox/math/libs/math/doc/internals/tuple.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/tuple.qbk
   sandbox/math/libs/math/doc/overview/
   sandbox/math/libs/math/doc/overview/building.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/building.qbk
   sandbox/math/libs/math/doc/overview/common_overviews.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/common_overviews.qbk
   sandbox/math/libs/math/doc/overview/config_macros.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/config_macros.qbk
   sandbox/math/libs/math/doc/overview/contact_info.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/contact_info.qbk
   sandbox/math/libs/math/doc/overview/credits.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/credits.qbk
   sandbox/math/libs/math/doc/overview/error_handling.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/error_handling.qbk
   sandbox/math/libs/math/doc/overview/faq.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/faq.qbk
   sandbox/math/libs/math/doc/overview/issues.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/issues.qbk
   sandbox/math/libs/math/doc/overview/overview.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/overview.qbk
   sandbox/math/libs/math/doc/overview/result_type_calc.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/result_type_calc.qbk
   sandbox/math/libs/math/doc/overview/roadmap.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/roadmap.qbk
   sandbox/math/libs/math/doc/overview/structure.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/structure.qbk
   sandbox/math/libs/math/doc/overview/thread_safety.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/thread_safety.qbk
   sandbox/math/libs/math/doc/overview/tr1.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/tr1.qbk
   sandbox/math/libs/math/doc/performance/
   sandbox/math/libs/math/doc/performance/performance.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/performance.qbk
   sandbox/math/libs/math/doc/plot_owens_3d_xyp.png
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/plot_owens_3d_xyp.png
   sandbox/math/libs/math/doc/plot_owens_t.png
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/plot_owens_t.png
   sandbox/math/libs/math/doc/policies/
   sandbox/math/libs/math/doc/policies/policy.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/policy.qbk
   sandbox/math/libs/math/doc/policies/policy_tutorial.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/policy_tutorial.qbk
   sandbox/math/libs/math/doc/sf/
      - copied from r84125, /sandbox/math/libs/math/doc/sf_and_dist/
   sandbox/math/libs/math/doc/tr1/
   sandbox/math/libs/math/doc/tr1/c99_ref.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/c99_ref.qbk
   sandbox/math/libs/math/doc/tr1/tr1_ref.qbk
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/tr1_ref.qbk
   sandbox/math/libs/math/doc/win32_nmake.mak
      - copied unchanged from r84125, /sandbox/math/libs/math/doc/sf_and_dist/win32_nmake.mak
   sandbox/math/libs/math/example/
      - copied from r84123, /trunk/libs/math/example/
   sandbox/math/tools/
   sandbox/math/tools/auto_index/
   sandbox/math/tools/auto_index/include/
   sandbox/math/tools/auto_index/include/auto_index_helpers.qbk
      - copied unchanged from r84123, /trunk/tools/auto_index/include/auto_index_helpers.qbk
Removed:
   sandbox/math/libs/math/doc/common_factor.html
   sandbox/math/libs/math/doc/complex/Jamfile.v2
   sandbox/math/libs/math/doc/complex/html/
   sandbox/math/libs/math/doc/gcd/Jamfile.v2
   sandbox/math/libs/math/doc/gcd/html/
   sandbox/math/libs/math/doc/octonion/Jamfile.v2
   sandbox/math/libs/math/doc/octonion/html/
   sandbox/math/libs/math/doc/quaternion/Jamfile.v2
   sandbox/math/libs/math/doc/quaternion/html/
   sandbox/math/libs/math/doc/sf/Jamfile.v2
   sandbox/math/libs/math/doc/sf/background.qbk
   sandbox/math/libs/math/doc/sf/building.qbk
   sandbox/math/libs/math/doc/sf/c99_ref.qbk
   sandbox/math/libs/math/doc/sf/common_overviews.qbk
   sandbox/math/libs/math/doc/sf/concepts.qbk
   sandbox/math/libs/math/doc/sf/config_macros.qbk
   sandbox/math/libs/math/doc/sf/constants.qbk
   sandbox/math/libs/math/doc/sf/contact_info.qbk
   sandbox/math/libs/math/doc/sf/credits.qbk
   sandbox/math/libs/math/doc/sf/dist_algorithms.qbk
   sandbox/math/libs/math/doc/sf/dist_reference.qbk
   sandbox/math/libs/math/doc/sf/dist_tutorial.qbk
   sandbox/math/libs/math/doc/sf/distributions/
   sandbox/math/libs/math/doc/sf/equations/
   sandbox/math/libs/math/doc/sf/error.qbk
   sandbox/math/libs/math/doc/sf/error_handling.qbk
   sandbox/math/libs/math/doc/sf/faq.qbk
   sandbox/math/libs/math/doc/sf/float_next.qbk
   sandbox/math/libs/math/doc/sf/fp_facets.qbk
   sandbox/math/libs/math/doc/sf/fpclassify.qbk
   sandbox/math/libs/math/doc/sf/fraction.qbk
   sandbox/math/libs/math/doc/sf/graphs/
   sandbox/math/libs/math/doc/sf/html/
   sandbox/math/libs/math/doc/sf/html4_symbols.qbk
   sandbox/math/libs/math/doc/sf/implementation.qbk
   sandbox/math/libs/math/doc/sf/index.idx
   sandbox/math/libs/math/doc/sf/internals_overview.qbk
   sandbox/math/libs/math/doc/sf/issues.qbk
   sandbox/math/libs/math/doc/sf/lanczos.qbk
   sandbox/math/libs/math/doc/sf/minima.qbk
   sandbox/math/libs/math/doc/sf/minimax.qbk
   sandbox/math/libs/math/doc/sf/overview.qbk
   sandbox/math/libs/math/doc/sf/performance.qbk
   sandbox/math/libs/math/doc/sf/plot_owens_3d_xyp.png
   sandbox/math/libs/math/doc/sf/plot_owens_t.png
   sandbox/math/libs/math/doc/sf/policy.qbk
   sandbox/math/libs/math/doc/sf/policy_tutorial.qbk
   sandbox/math/libs/math/doc/sf/polynomial.qbk
   sandbox/math/libs/math/doc/sf/pp_pi.hpp
   sandbox/math/libs/math/doc/sf/rational.qbk
   sandbox/math/libs/math/doc/sf/references.qbk
   sandbox/math/libs/math/doc/sf/relative_error.qbk
   sandbox/math/libs/math/doc/sf/remez.qbk
   sandbox/math/libs/math/doc/sf/result_type_calc.qbk
   sandbox/math/libs/math/doc/sf/roadmap.qbk
   sandbox/math/libs/math/doc/sf/roots.qbk
   sandbox/math/libs/math/doc/sf/roots_without_derivatives.qbk
   sandbox/math/libs/math/doc/sf/rounding_func.qbk
   sandbox/math/libs/math/doc/sf/series.qbk
   sandbox/math/libs/math/doc/sf/sign.qbk
   sandbox/math/libs/math/doc/sf/structure.qbk
   sandbox/math/libs/math/doc/sf/test_data.qbk
   sandbox/math/libs/math/doc/sf/thread_safety.qbk
   sandbox/math/libs/math/doc/sf/tr1.qbk
   sandbox/math/libs/math/doc/sf/tr1_ref.qbk
   sandbox/math/libs/math/doc/sf/tuple.qbk
   sandbox/math/libs/math/doc/sf/win32_nmake.mak
   sandbox/math/libs/math/doc/sf_and_dist/
Text files modified:
   sandbox/math/libs/math/doc/Jamfile.v2 | 59 ++
   sandbox/math/libs/math/doc/complex/complex-tr1.qbk | 25 -
   sandbox/math/libs/math/doc/distributions/binomial_example.qbk | 12
   sandbox/math/libs/math/doc/distributions/chi_squared_examples.qbk | 6
   sandbox/math/libs/math/doc/distributions/dist_reference.qbk | 64 +-
   sandbox/math/libs/math/doc/distributions/dist_tutorial.qbk | 44 -
   sandbox/math/libs/math/doc/distributions/distribution_construction.qbk | 4
   sandbox/math/libs/math/doc/distributions/error_handling_example.qbk | 2
   sandbox/math/libs/math/doc/distributions/f_dist_example.qbk | 2
   sandbox/math/libs/math/doc/distributions/find_location_and_scale.qbk | 12
   sandbox/math/libs/math/doc/distributions/geometric_example.qbk | 4
   sandbox/math/libs/math/doc/distributions/inverse_chi_squared_eg.qbk | 4
   sandbox/math/libs/math/doc/distributions/nag_library.qbk | 2
   sandbox/math/libs/math/doc/distributions/nc_chi_squared_example.qbk | 2
   sandbox/math/libs/math/doc/distributions/negative_binomial_example.qbk | 14
   sandbox/math/libs/math/doc/distributions/normal_example.qbk | 4
   sandbox/math/libs/math/doc/distributions/students_t_examples.qbk | 8
   sandbox/math/libs/math/doc/gcd/math-gcd.qbk | 34 -
   sandbox/math/libs/math/doc/html/index.html | 468 ++---------------------
   sandbox/math/libs/math/doc/math.qbk | 780 ++++++++++++++++++++++++++++-----------
   sandbox/math/libs/math/doc/octonion/math-octonion.qbk | 621 +++++++++++++++----------------
   sandbox/math/libs/math/doc/quaternion/math-quaternion.qbk | 421 ++++++++++-----------
   22 files changed, 1261 insertions(+), 1331 deletions(-)

Modified: sandbox/math/libs/math/doc/Jamfile.v2
==============================================================================
--- sandbox/math/libs/math/doc/Jamfile.v2 (original)
+++ sandbox/math/libs/math/doc/Jamfile.v2 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -4,6 +4,11 @@
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 using quickbook ;
+using auto-index ;
+import modules ;
+
+path-constant images_location : html ;
+path-constant here : . ;
 
 xml math : math.qbk ;
 boostbook standalone
@@ -21,12 +26,60 @@
         # Use graphics not text for navigation:
         <xsl:param>navig.graphics=1
         # How far down we chunk nested sections, basically all of them:
- <xsl:param>chunk.section.depth=1
+ <xsl:param>chunk.section.depth=10
         # Don't put the first section on the same page as the TOC:
- <xsl:param>chunk.first.sections=0
+ <xsl:param>chunk.first.sections=1
         # How far down sections get TOC's
- <xsl:param>toc.section.depth=1
+ <xsl:param>toc.section.depth=10
+ # Max depth in each TOC:
+ <xsl:param>toc.max.depth=1
+ # How far down we go with TOC's
+ <xsl:param>generate.section.toc.level=10
+ # Index on type:
+ <xsl:param>index.on.type=1
+
+ #<xsl:param>root.filename="sf_dist_and_tools"
+ #<xsl:param>graphicsize.extension=1
+ #<xsl:param>use.extensions=1
+
+ # PDF Options:
+ # TOC Generation: this is needed for FOP-0.9 and later:
+ <xsl:param>fop1.extensions=0
+ <format>pdf:<xsl:param>xep.extensions=1
+ # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
+ <format>pdf:<xsl:param>fop.extensions=0
+ <format>pdf:<xsl:param>fop1.extensions=0
+ # No indent on body text:
+ <format>pdf:<xsl:param>body.start.indent=0pt
+ # Margin size:
+ <format>pdf:<xsl:param>page.margin.inner=0.5in
+ # Margin size:
+ <format>pdf:<xsl:param>page.margin.outer=0.5in
+ # Paper type = A4
+ <format>pdf:<xsl:param>paper.type=A4
+ # Yes, we want graphics for admonishments:
+ <xsl:param>admon.graphics=1
+ # Set this one for PDF generation *only*:
+ # default pnd graphics are awful in PDF form,
+ # better use SVG's instead:
+ <format>pdf:<xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>use.role.for.mediaobject=1
+ <format>pdf:<xsl:param>preferred.mediaobject.role=print
+ <format>pdf:<xsl:param>img.src.path=$(images_location)/
+ <format>pdf:<xsl:param>draft.mode="no"
+ <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/math/doc/html
+ <auto-index>on <format>pdf:<auto-index-internal>off
+ <format>html:<auto-index-internal>on
+ <auto-index-script>$(here)/index.idx
+ <auto-index-prefix>$(here)/../../..
+ #<auto-index-verbose>on
+ <quickbook-define>enable_index
+ <format>pdf:<xsl:param>index.on.type=1
     ;
 
+install pdfinstall : standalone/<format>pdf : <location>. <install-type>PDF <name>math.pdf ;
+explicit pdfinstall ;
+
+
 
 

Deleted: sandbox/math/libs/math/doc/common_factor.html
==============================================================================
--- sandbox/math/libs/math/doc/common_factor.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,18 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=gcd/html/index.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- gcd/html/index.html
- <P>Copyright&nbsp;Daryle Walker 2006</P>
- <P>Distributed under the Boost Software License, Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">
- LICENSE_1_0.txt</A> or copy at www.boost.org/LICENSE_1_0.txt).</P>
- </body>
-</html>
-
-
-
-
-

Deleted: sandbox/math/libs/math/doc/complex/Jamfile.v2
==============================================================================
--- sandbox/math/libs/math/doc/complex/Jamfile.v2 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,77 +0,0 @@
-
-# Copyright John Maddock 2005. Use, modification, and distribution are
-# subject to the Boost Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-using quickbook ;
-
-path-constant images_location : html ;
-
-xml complex-tr1 : complex-tr1.qbk ;
-boostbook standalone
- :
- complex-tr1
- :
- # Path for links to Boost:
- <xsl:param>boost.root=../../../../..
-
- # Some general style settings:
- <xsl:param>table.footnote.number.format=1
- <xsl:param>footnote.number.format=1
-
- # HTML options first:
- # Use graphics not text for navigation:
- <xsl:param>navig.graphics=1
- # How far down we chunk nested sections, basically all of them:
- <xsl:param>chunk.section.depth=10
- # Don't put the first section on the same page as the TOC:
- <xsl:param>chunk.first.sections=1
- # How far down sections get TOC's
- <xsl:param>toc.section.depth=10
- # Max depth in each TOC:
- <xsl:param>toc.max.depth=4
- # How far down we go with TOC's
- <xsl:param>generate.section.toc.level=10
- #<xsl:param>root.filename="sf_dist_and_tools"
-
- # PDF Options:
- # TOC Generation: this is needed for FOP-0.9 and later:
- # <xsl:param>fop1.extensions=1
- <format>pdf:<xsl:param>xep.extensions=1
- # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
- <format>pdf:<xsl:param>fop.extensions=0
- <format>pdf:<xsl:param>fop1.extensions=0
- # No indent on body text:
- <format>pdf:<xsl:param>body.start.indent=0pt
- # Margin size:
- <format>pdf:<xsl:param>page.margin.inner=0.5in
- # Margin size:
- <format>pdf:<xsl:param>page.margin.outer=0.5in
- # Paper type = A4
- <format>pdf:<xsl:param>paper.type=A4
- # Yes, we want graphics for admonishments:
- <xsl:param>admon.graphics=1
- # Set this one for PDF generation *only*:
- # default pnd graphics are awful in PDF form,
- # better use SVG's instead:
- <format>pdf:<xsl:param>admon.graphics.extension=".svg"
- <format>pdf:<xsl:param>use.role.for.mediaobject=1
- <format>pdf:<xsl:param>preferred.mediaobject.role=print
- <format>pdf:<xsl:param>img.src.path=$(images_location)/
- <format>pdf:<xsl:param>draft.mode="no"
- ;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

Modified: sandbox/math/libs/math/doc/complex/complex-tr1.qbk
==============================================================================
--- sandbox/math/libs/math/doc/complex/complex-tr1.qbk (original)
+++ sandbox/math/libs/math/doc/complex/complex-tr1.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,30 +1,10 @@
-[article Complex Number TR1 Algorithms
- [quickbook 1.4]
- [copyright 2005 John Maddock]
- [purpose Complex number arithmetic]
- [license
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- [@http://www.boost.org/LICENSE_1_0.txt http://www.boost.org/LICENSE_1_0.txt])
- ]
- [authors [Maddock, John]]
- [category math]
- [last-revision $Date: 2006-12-29 11:08:32 +0000 (Fri, 29 Dec 2006) $]
-]
-
-
 [def __effects [*Effects: ]]
 [def __formula [*Formula: ]]
 [def __exm1 '''<code>e<superscript>x</superscript> - 1</code>''']
 [def __ex '''<code>e<superscript>x</superscript></code>''']
 [def __te '''2&#x03B5;''']
-[template tr1[] [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Technical Report on C++ Library Extensions]]
 
-This manual is also available in
-[@http://sourceforge.net/projects/boost/files/boost-docs/
-printer friendly PDF format].
-
-[section:inverse_complex Complex Number Inverse Trigonometric Functions]
+[section:inverse_complex Complex Number Functions]
 
 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
@@ -41,11 +21,12 @@
 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.5E for every machine-representable point in the complex plane. Please refer to
+is less than 9.5[epsilon] 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.
 
 [endsect]
+
 [section:asin asin]
 
 [h4 Header:]

Modified: sandbox/math/libs/math/doc/distributions/binomial_example.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/binomial_example.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/binomial_example.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -4,10 +4,10 @@
 
 [section:binomial_coinflip_example Binomial Coin-Flipping Example]
 
-[import ../../../example/binomial_coinflip_example.cpp]
+[import ../../example/binomial_coinflip_example.cpp]
 [binomial_coinflip_example1]
 
-See [@../../../example/binomial_coinflip_example.cpp binomial_coinflip_example.cpp]
+See [@../../example/binomial_coinflip_example.cpp binomial_coinflip_example.cpp]
 for full source code, the program output looks like this:
 
 [binomial_coinflip_example_output]
@@ -16,12 +16,12 @@
 
 [section:binomial_quiz_example Binomial Quiz Example]
 
-[import ../../../example/binomial_quiz_example.cpp]
+[import ../../example/binomial_quiz_example.cpp]
 [binomial_quiz_example1]
 [binomial_quiz_example2]
 [discrete_quantile_real]
 
-See [@../../../example/binomial_quiz_example.cpp binomial_quiz_example.cpp]
+See [@../../example/binomial_quiz_example.cpp binomial_quiz_example.cpp]
 for full source code and output.
 
 [endsect] [/section:binomial_coinflip_quiz Binomial Coin-Flipping example]
@@ -39,7 +39,7 @@
 `binomial_distribution<>::find_upper_bound_on_p` allow you to calculate
 the confidence intervals for your estimate of the occurrence frequency.
 
-The sample program [@../../../example/binomial_confidence_limits.cpp
+The sample program [@../../example/binomial_confidence_limits.cpp
 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:
@@ -222,7 +222,7 @@
 acceptable risk level /alpha/.
 
 The example program
-[@../../../example/binomial_sample_sizes.cpp binomial_sample_sizes.cpp]
+[@../../example/binomial_sample_sizes.cpp 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:
 

Modified: sandbox/math/libs/math/doc/distributions/chi_squared_examples.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/chi_squared_examples.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/chi_squared_examples.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -9,7 +9,7 @@
 confidence intervals for the standard deviation.
 
 The full example code & sample output is in
-[@../../../example/chi_square_std_dev_test.cpp chi_square_std_deviation_test.cpp].
+[@../../example/chi_square_std_dev_test.cpp chi_square_std_deviation_test.cpp].
 
 We'll begin by defining the procedure that will calculate and print out the
 confidence intervals:
@@ -178,7 +178,7 @@
 process to an established one.
 
 The code for this example is contained in
-[@../../../example/chi_square_std_dev_test.cpp chi_square_std_dev_test.cpp], and
+[@../../example/chi_square_std_dev_test.cpp chi_square_std_dev_test.cpp], and
 we'll begin by defining the procedure that will print out the test
 statistics:
 
@@ -372,7 +372,7 @@
 note that the method used works on variance, and not standard deviation
 as is usual for the Chi Squared Test.
 
-The code for this example is located in [@../../../example/chi_square_std_dev_test.cpp
+The code for this example is located in [@../../example/chi_square_std_dev_test.cpp
 chi_square_std_dev_test.cpp].
 
 We begin by defining a procedure to print out the sample sizes required

Copied: sandbox/math/libs/math/doc/distributions/dist_reference.qbk (from r84125, /sandbox/math/libs/math/doc/sf_and_dist/dist_reference.qbk)
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/dist_reference.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/dist_reference.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,40 +1,40 @@
 [section:dist_ref Statistical Distributions Reference]
 
-[include distributions/non_members.qbk]
+[include non_members.qbk]
 
 [section:dists Distributions]
 
-[include distributions/bernoulli.qbk]
-[include distributions/beta.qbk]
-[include distributions/binomial.qbk]
-[include distributions/cauchy.qbk]
-[include distributions/chi_squared.qbk]
-[include distributions/exponential.qbk]
-[include distributions/extreme_value.qbk]
-[include distributions/fisher.qbk]
-[include distributions/gamma.qbk]
-[include distributions/geometric.qbk]
-[include distributions/hypergeometric.qbk]
-[include distributions/inverse_chi_squared.qbk]
-[include distributions/inverse_gamma.qbk]
-[include distributions/inverse_gaussian.qbk]
-[include distributions/laplace.qbk]
-[include distributions/logistic.qbk]
-[include distributions/lognormal.qbk]
-[include distributions/negative_binomial.qbk]
-[include distributions/nc_beta.qbk]
-[include distributions/nc_chi_squared.qbk]
-[include distributions/nc_f.qbk]
-[include distributions/nc_t.qbk]
-[include distributions/normal.qbk]
-[include distributions/pareto.qbk]
-[include distributions/poisson.qbk]
-[include distributions/rayleigh.qbk]
-[include distributions/skew_normal.qbk]
-[include distributions/students_t.qbk]
-[include distributions/triangular.qbk]
-[include distributions/uniform.qbk]
-[include distributions/weibull.qbk]
+[include bernoulli.qbk]
+[include beta.qbk]
+[include binomial.qbk]
+[include cauchy.qbk]
+[include chi_squared.qbk]
+[include exponential.qbk]
+[include extreme_value.qbk]
+[include fisher.qbk]
+[include gamma.qbk]
+[include geometric.qbk]
+[include hypergeometric.qbk]
+[include inverse_chi_squared.qbk]
+[include inverse_gamma.qbk]
+[include inverse_gaussian.qbk]
+[include laplace.qbk]
+[include logistic.qbk]
+[include lognormal.qbk]
+[include negative_binomial.qbk]
+[include nc_beta.qbk]
+[include nc_chi_squared.qbk]
+[include nc_f.qbk]
+[include nc_t.qbk]
+[include normal.qbk]
+[include pareto.qbk]
+[include poisson.qbk]
+[include rayleigh.qbk]
+[include skew_normal.qbk]
+[include students_t.qbk]
+[include triangular.qbk]
+[include uniform.qbk]
+[include weibull.qbk]
 
 [endsect][/section:dists Distributions]
 

Copied: sandbox/math/libs/math/doc/distributions/dist_tutorial.qbk (from r84125, /sandbox/math/libs/math/doc/sf_and_dist/dist_tutorial.qbk)
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/dist_tutorial.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/dist_tutorial.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -21,11 +21,11 @@
 All the code in this library is inside namespace boost::math.
 
 In order to use a distribution /my_distribution/ you will need to include
-either the header <boost/math/distributions/my_distribution.hpp> or
+either the header <boost/math/my_distribution.hpp> or
 the "include all the distributions" header: <boost/math/distributions.hpp>.
 
 For example, to use the Students-t distribution include either
-<boost/math/distributions/students_t.hpp> or
+<boost/math/students_t.hpp> or
 <boost/math/distributions.hpp>
 
 You also need to bring distribution names into scope,
@@ -429,22 +429,22 @@
 [endsect] [/section:overview Overview]
 
 [section:weg Worked Examples]
-[include distributions/distribution_construction.qbk]
-[include distributions/students_t_examples.qbk]
-[include distributions/chi_squared_examples.qbk]
-[include distributions/f_dist_example.qbk]
-[include distributions/binomial_example.qbk]
-[include distributions/geometric_example.qbk]
-[include distributions/negative_binomial_example.qbk]
-[include distributions/normal_example.qbk]
-[/include distributions/inverse_gamma_example.qbk]
-[/include distributions/inverse_gaussian_example.qbk]
-[include distributions/inverse_chi_squared_eg.qbk]
-[include distributions/nc_chi_squared_example.qbk]
-[include distributions/error_handling_example.qbk]
-[include distributions/find_location_and_scale.qbk]
-[include distributions/nag_library.qbk]
-[include distributions/c_sharp.qbk]
+[include distribution_construction.qbk]
+[include students_t_examples.qbk]
+[include chi_squared_examples.qbk]
+[include f_dist_example.qbk]
+[include binomial_example.qbk]
+[include geometric_example.qbk]
+[include negative_binomial_example.qbk]
+[include normal_example.qbk]
+[/include inverse_gamma_example.qbk]
+[/include inverse_gaussian_example.qbk]
+[include inverse_chi_squared_eg.qbk]
+[include nc_chi_squared_example.qbk]
+[include error_handling_example.qbk]
+[include find_location_and_scale.qbk]
+[include nag_library.qbk]
+[include c_sharp.qbk]
 [endsect] [/section:weg Worked Examples]
 
 [include background.qbk]
@@ -458,11 +458,3 @@
   http://www.boost.org/LICENSE_1_0.txt).
 ]
 
-
-
-
-
-
-
-
-

Modified: sandbox/math/libs/math/doc/distributions/distribution_construction.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/distribution_construction.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/distribution_construction.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,10 +1,10 @@
 [section:dist_construct_eg Distribution Construction Examples]
 
-[import ../../../example/distribution_construction.cpp]
+[import ../../example/distribution_construction.cpp]
 [distribution_construction_1]
 [distribution_construction_2]
 
-See [@../../../example/distribution_construction.cpp distribution_construction.cpp] for full source code.
+See [@../../example/distribution_construction.cpp distribution_construction.cpp] for full source code.
 
 [endsect] [/section:dist_construct_eg Distribution Construction Examples]
 

Modified: sandbox/math/libs/math/doc/distributions/error_handling_example.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/error_handling_example.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/error_handling_example.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -12,7 +12,7 @@
 pole errors or internal errors), or infinity (from overflow),
 you need to change the policy.
 
-[import ../../../example/error_handling_example.cpp]
+[import ../../example/error_handling_example.cpp]
 
 [error_handling_example]
 

Modified: sandbox/math/libs/math/doc/distributions/f_dist_example.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/f_dist_example.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/f_dist_example.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -13,7 +13,7 @@
 NIST Ceramics Division in 1996 in connection with a NIST/industry
 ceramics consortium for strength optimization of ceramic strength.
 
-The example program is [@../../../example/f_test.cpp f_test.cpp],
+The example program is [@../../example/f_test.cpp f_test.cpp],
 program output has been deliberately made as similar as possible
 to the DATAPLOT output in the corresponding
 [@http://www.itl.nist.gov/div898/handbook/eda/section3/eda359.htm

Modified: sandbox/math/libs/math/doc/distributions/find_location_and_scale.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/find_location_and_scale.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/find_location_and_scale.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,28 +1,28 @@
 [section:find_eg Find Location and Scale Examples]
 
 [section:find_location_eg Find Location (Mean) Example]
-[import ../../../example/find_location_example.cpp]
+[import ../../example/find_location_example.cpp]
 [find_location1]
 [find_location2]
-See [@../../../example/find_location_example.cpp find_location_example.cpp]
+See [@../../example/find_location_example.cpp find_location_example.cpp]
 for full source code: the program output looks like this:
 [find_location_example_output]
 [endsect] [/section:find_location_eg Find Location (Mean) Example]
 
 [section:find_scale_eg Find Scale (Standard Deviation) Example]
-[import ../../../example/find_scale_example.cpp]
+[import ../../example/find_scale_example.cpp]
 [find_scale1]
 [find_scale2]
-See [@../../../example/find_scale_example.cpp find_scale_example.cpp]
+See [@../../example/find_scale_example.cpp find_scale_example.cpp]
 for full source code: the program output looks like this:
 [find_scale_example_output]
 [endsect] [/section:find_scale_eg Scale (Standard Deviation) Example]
 [section:find_mean_and_sd_eg Find mean and standard deviation example]
 
-[import ../../../example/find_mean_and_sd_normal.cpp]
+[import ../../example/find_mean_and_sd_normal.cpp]
 [normal_std]
 [normal_find_location_and_scale_eg]
-See [@../../../example/find_mean_and_sd_normal.cpp find_mean_and_sd_normal.cpp]
+See [@../../example/find_mean_and_sd_normal.cpp find_mean_and_sd_normal.cpp]
 for full source code & appended program output.
 [endsect] [/find_mean_and_sd_eg Find mean and standard deviation example]
 

Modified: sandbox/math/libs/math/doc/distributions/geometric_example.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/geometric_example.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/geometric_example.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,11 +1,11 @@
 [section:geometric_eg Geometric Distribution Examples]
                        
-[import ../../../example/geometric_examples.cpp]
+[import ../../example/geometric_examples.cpp]
 [geometric_eg1_1]
 [geometric_eg1_2]
 
 See full source C++ of this example at
-[@../../../example/geometric_examples.cpp geometric_examples.cpp]
+[@../../example/geometric_examples.cpp geometric_examples.cpp]
                        
 [link math_toolkit.dist.stat_tut.weg.neg_binom_eg.neg_binom_conf See negative_binomial confidence interval example.]
 

Modified: sandbox/math/libs/math/doc/distributions/inverse_chi_squared_eg.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/inverse_chi_squared_eg.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/inverse_chi_squared_eg.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,7 +1,7 @@
 
 [section:inverse_chi_squared_eg Inverse Chi-Squared Distribution Bayes Example]
 
-[import ../../../example/inverse_chi_squared_bayes_eg.cpp]
+[import ../../example/inverse_chi_squared_bayes_eg.cpp]
 [inverse_chi_squared_bayes_eg_1]
 [inverse_chi_squared_bayes_eg_output_1]
 [inverse_chi_squared_bayes_eg_2]
@@ -19,7 +19,7 @@
 (See also the reference documentation for the __inverse_chi_squared_distrib.)
 
 See the full source C++ of this example at
-[@../../../example/inverse_chi_squared_bayes_eg.cpp]
+[@../../example/inverse_chi_squared_bayes_eg.cpp]
 
 [endsect] [/section:inverse_chi_squared_eg Inverse Chi-Squared Distribution Bayes Example]
 

Modified: sandbox/math/libs/math/doc/distributions/nag_library.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/nag_library.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/nag_library.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -47,7 +47,7 @@
 
 `pdf(dist, k)` is equivalent to NAG library `peqk`, point probability of == k
 
-See [@../../../example/binomial_example_nag.cpp binomial_example_nag.cpp] for details.
+See [@../../example/binomial_example_nag.cpp binomial_example_nag.cpp] for details.
 
 [endsect] [/section:nag_library Comparison with C, R, FORTRAN-style Free Functions]
 

Modified: sandbox/math/libs/math/doc/distributions/nc_chi_squared_example.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/nc_chi_squared_example.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/nc_chi_squared_example.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -5,7 +5,7 @@
 [section:nccs_power_eg Tables of the power function of the chi[super 2] test.]
 [/chi super 2 failed to show the chi in pdf why??? (OK in html) so use words.]
 
-[import ../../../example/nc_chi_sq_example.cpp]
+[import ../../example/nc_chi_sq_example.cpp]
 [nccs_eg]
 
 [endsect] [/nccs_power_eg Tables of the power function of the chi-squared [chi][super 2] test.]

Modified: sandbox/math/libs/math/doc/distributions/negative_binomial_example.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/negative_binomial_example.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/negative_binomial_example.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -20,10 +20,10 @@
 `negative_binomial_distribution<>::find_upper_bound_on_p`
 allow you to calculate the confidence intervals for your estimate of the success fraction.
 
-The sample program [@../../../example/neg_binom_confidence_limits.cpp
+The sample program [@../../example/neg_binom_confidence_limits.cpp
 neg_binom_confidence_limits.cpp] illustrates their use.
 
-[import ../../../example/neg_binom_confidence_limits.cpp]
+[import ../../example/neg_binom_confidence_limits.cpp]
 
 [neg_binomial_confidence_limits]
 Let's see some sample output for a 1 in 10
@@ -95,10 +95,10 @@
 of observing the desired number of failures.
 
 The example program
-[@../../../example/neg_binomial_sample_sizes.cpp neg_binomial_sample_sizes.cpp]
+[@../../example/neg_binomial_sample_sizes.cpp neg_binomial_sample_sizes.cpp]
 demonstrates its usage.
 
-[import ../../../example/neg_binomial_sample_sizes.cpp]
+[import ../../example/neg_binomial_sample_sizes.cpp]
 [neg_binomial_sample_sizes]
 
 [note Since we're calculating the /minimum/ number of trials required,
@@ -165,10 +165,10 @@
 [section:negative_binomial_example1 Negative Binomial Sales Quota Example.]
 
 This example program
-[@../../../example/negative_binomial_example1.cpp negative_binomial_example1.cpp (full source code)]
+[@../../example/negative_binomial_example1.cpp negative_binomial_example1.cpp (full source code)]
 demonstrates a simple use to find the probability of meeting a sales quota.
 
-[import ../../../example/negative_binomial_example1.cpp]
+[import ../../example/negative_binomial_example1.cpp]
 [negative_binomial_eg1_1]
 [negative_binomial_eg1_2]
 
@@ -176,7 +176,7 @@
 
 [section:negative_binomial_example2 Negative Binomial Table Printing Example.]
 Example program showing output of a table of values of cdf and pdf for various k failures.
-[import ../../../example/negative_binomial_example2.cpp]
+[import ../../example/negative_binomial_example2.cpp]
 [neg_binomial_example2]
 [neg_binomial_example2_1]
 [endsect] [/section:negative_binomial_example1 Negative Binomial example 2.]

Modified: sandbox/math/libs/math/doc/distributions/normal_example.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/normal_example.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/normal_example.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -4,10 +4,10 @@
 
 [section:normal_misc Some Miscellaneous Examples of the Normal (Gaussian) Distribution]
 
-The sample program [@../../../example/normal_misc_examples.cpp
+The sample program [@../../example/normal_misc_examples.cpp
 normal_misc_examples.cpp] illustrates their use.
 
-[import ../../../example/normal_misc_examples.cpp]
+[import ../../example/normal_misc_examples.cpp]
 
 [h4 Traditional Tables]
 [normal_basic1]

Modified: sandbox/math/libs/math/doc/distributions/students_t_examples.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/distributions/students_t_examples.qbk (original)
+++ sandbox/math/libs/math/doc/distributions/students_t_examples.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -47,7 +47,7 @@
 * The width increases as the ['significance level decreases] (0.5 towards 0.00000...01 - stronger).
 
 The following example code is taken from the example program
-[@../../../example/students_t_single_sample.cpp students_t_single_sample.cpp].
+[@../../example/students_t_single_sample.cpp students_t_single_sample.cpp].
 
 We'll begin by defining a procedure to calculate intervals for
 various confidence levels; the procedure will print these out
@@ -202,7 +202,7 @@
 often this is simply a "traditional" method of measurement.
 
 The following example code is taken from the example program
-[@../../../example/students_t_single_sample.cpp students_t_single_sample.cpp].
+[@../../example/students_t_single_sample.cpp students_t_single_sample.cpp].
 
 We'll begin by defining a procedure to determine which of the
 possible hypothesis are rejected or not-rejected
@@ -407,7 +407,7 @@
 can provide this information.
 
 This section is based on the example code in
-[@../../../example/students_t_single_sample.cpp students_t_single_sample.cpp]
+[@../../example/students_t_single_sample.cpp 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:
 
@@ -535,7 +535,7 @@
 miles per gallon of US cars with miles per gallon of Japanese cars.
 
 The sample code is in
-[@../../../example/students_t_two_samples.cpp students_t_two_samples.cpp].
+[@../../example/students_t_two_samples.cpp students_t_two_samples.cpp].
 
 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.

Deleted: sandbox/math/libs/math/doc/gcd/Jamfile.v2
==============================================================================
--- sandbox/math/libs/math/doc/gcd/Jamfile.v2 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,66 +0,0 @@
-
-# Copyright John Maddock 2005. Use, modification, and distribution are
-# subject to the Boost Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-using quickbook ;
-
-path-constant images_location : html ;
-
-xml math-gcd : math-gcd.qbk ;
-boostbook standalone
- :
- math-gcd
- :
- # Path for links to Boost:
- <xsl:param>boost.root=../../../../..
-
- # Some general style settings:
- <xsl:param>table.footnote.number.format=1
- <xsl:param>footnote.number.format=1
-
- # HTML options first:
- # Use graphics not text for navigation:
- <xsl:param>navig.graphics=1
- # How far down we chunk nested sections, basically all of them:
- <xsl:param>chunk.section.depth=10
- # Don't put the first section on the same page as the TOC:
- <xsl:param>chunk.first.sections=1
- # How far down sections get TOC's
- <xsl:param>toc.section.depth=10
- # Max depth in each TOC:
- <xsl:param>toc.max.depth=4
- # How far down we go with TOC's
- <xsl:param>generate.section.toc.level=10
- #<xsl:param>root.filename="sf_dist_and_tools"
-
- # PDF Options:
- # TOC Generation: this is needed for FOP-0.9 and later:
- # <xsl:param>fop1.extensions=1
- <format>pdf:<xsl:param>xep.extensions=1
- # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
- <format>pdf:<xsl:param>fop.extensions=0
- <format>pdf:<xsl:param>fop1.extensions=0
- # No indent on body text:
- <format>pdf:<xsl:param>body.start.indent=0pt
- # Margin size:
- <format>pdf:<xsl:param>page.margin.inner=0.5in
- # Margin size:
- <format>pdf:<xsl:param>page.margin.outer=0.5in
- # Paper type = A4
- <format>pdf:<xsl:param>paper.type=A4
- # Yes, we want graphics for admonishments:
- <xsl:param>admon.graphics=1
- # Set this one for PDF generation *only*:
- # default pnd graphics are awful in PDF form,
- # better use SVG's instead:
- <format>pdf:<xsl:param>admon.graphics.extension=".svg"
- <format>pdf:<xsl:param>use.role.for.mediaobject=1
- <format>pdf:<xsl:param>preferred.mediaobject.role=print
- <format>pdf:<xsl:param>img.src.path=$(images_location)/
- <format>pdf:<xsl:param>draft.mode="no"
- <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/math/doc/gcd/html
- ;
-
-
-

Modified: sandbox/math/libs/math/doc/gcd/math-gcd.qbk
==============================================================================
--- sandbox/math/libs/math/doc/gcd/math-gcd.qbk (original)
+++ sandbox/math/libs/math/doc/gcd/math-gcd.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,22 +1,4 @@
-[article GCD and LCM
- [quickbook 1.3]
- [copyright 2001-2002 Daryle Walker]
- [license
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- [@http://www.boost.org/LICENSE_1_0.txt http://www.boost.org/LICENSE_1_0.txt])
- ]
- [authors [Walker, Daryle]]
- [category math]
- [last-revision $Date: 2006-12-29 11:08:32 +0000 (Fri, 29 Dec 2006) $]
-]
-
-This manual is also available in
-[@http://sourceforge.net/projects/boost/files/boost-docs/
-printer friendly PDF format].
-
-
-[section:gcd_lcm Greatest Common Divisor and Least Common Multiple]
+[section:gcd_lcm Integer Utilities (Greatest Common Divisor and Least Common Multiple)]
 
 [section Introduction]
 
@@ -59,7 +41,7 @@
 
 [section GCD Function Object]
 
-[*Header: ] [@../../../../../boost/math/common_factor_rt.hpp <boost/math/common_factor_rt.hpp>]
+[*Header: ] [@../../../../boost/math/common_factor_rt.hpp <boost/math/common_factor_rt.hpp>]
 
    template < typename IntegerType >
    class boost::math::gcd_evaluator
@@ -91,7 +73,7 @@
 
 [section LCM Function Object]
 
-[*Header: ] [@../../../../../boost/math/common_factor_rt.hpp <boost/math/common_factor_rt.hpp>]
+[*Header: ] [@../../../../boost/math/common_factor_rt.hpp <boost/math/common_factor_rt.hpp>]
 
    template < typename IntegerType >
    class boost::math::lcm_evaluator
@@ -124,7 +106,7 @@
 
 [section:run_time Run-time GCD & LCM Determination]
 
-[*Header: ] [@../../../../../boost/math/common_factor_rt.hpp <boost/math/common_factor_rt.hpp>]
+[*Header: ] [@../../../../boost/math/common_factor_rt.hpp <boost/math/common_factor_rt.hpp>]
 
    template < typename IntegerType >
    IntegerType boost::math::gcd( IntegerType const &a, IntegerType const &b );
@@ -145,7 +127,7 @@
 
 [section:compile_time Compile time GCD and LCM determination]
 
-[*Header: ] [@../../../../../boost/math/common_factor_ct.hpp <boost/math/common_factor_ct.hpp>]
+[*Header: ] [@../../../../boost/math/common_factor_ct.hpp <boost/math/common_factor_ct.hpp>]
 
    typedef ``['unspecified]`` static_gcd_type;
 
@@ -206,8 +188,8 @@
 [section:header Header <boost/math/common_factor.hpp>]
 
 This header simply includes the headers
-[@../../../../../boost/math/common_factor_ct.hpp <boost/math/common_factor_ct.hpp>]
-and [@../../../../../boost/math/common_factor_rt.hpp <boost/math/common_factor_rt.hpp>].
+[@../../../../boost/math/common_factor_ct.hpp <boost/math/common_factor_ct.hpp>]
+and [@../../../../boost/math/common_factor_rt.hpp <boost/math/common_factor_rt.hpp>].
 
 Note this is a legacy header: it used to contain the actual implementation,
 but the compile-time and run-time facilities
@@ -217,7 +199,7 @@
 
 [section:demo Demonstration Program]
 
-The program [@../../../../../libs/math/test/common_factor_test.cpp common_factor_test.cpp] is a demonstration of the results from
+The program [@../../../../libs/math/test/common_factor_test.cpp 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

Modified: sandbox/math/libs/math/doc/html/index.html
==============================================================================
--- sandbox/math/libs/math/doc/html/index.html (original)
+++ sandbox/math/libs/math/doc/html/index.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,60 +1,56 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Boost.Math</title>
-<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
+<title>Math Toolkit</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
-<link rel="home" href="index.html" title="Boost.Math">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="next" href="math_toolkit/main_overview.html" title="Overview">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</tr></table>
-<hr>
-<div class="spirit-nav"></div>
+<div class="spirit-nav"><a accesskey="n" href="math_toolkit/main_overview.html"><img src="images/next.png" alt="Next"></a></div>
 <div class="article">
 <div class="titlepage">
 <div>
 <div><h2 class="title">
-<a name="boost_math"></a>Boost.Math</h2></div>
+<a name="math_toolkit"></a>Math Toolkit</h2></div>
 <div><div class="authorgroup">
 <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">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">Daryle</span> <span class="surname">Walker</span>
+<span class="firstname">Christopher</span> <span class="surname">Kormanyos</span>
 </h3></div>
 <div class="author"><h3 class="author">
-<span class="firstname">Xiaogang</span> <span class="surname">Zhang</span>
+<span class="firstname">Bruno</span> <span class="surname">Lalande</span>
 </h3></div>
 <div class="author"><h3 class="author">
-<span class="firstname">Bruno</span> <span class="surname">Lalande</span>
+<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&#229;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">Xiaogang</span> <span class="surname">Zhang</span>
+</h3></div>
 </div></div>
-<div><p class="copyright">Copyright &#169; 2006-2010 John Maddock, Paul A. Bristow, Hubert Holin, Daryle Walker, Xiaogang
- Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani and Thijs van den Berg</p></div>
+<div><p class="copyright">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos</p></div>
 <div><div class="legalnotice">
-<a name="boost_math.legal"></a><p>
+<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>
@@ -62,408 +58,42 @@
 </div>
 <hr>
 </div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section">Overview</span></dt>
+<dt><span class="section">Statistical Distributions and Functions</span></dt>
+<dt><span class="section">Special Functions</span></dt>
+<dt><span class="section">Floating Point Utilities</span></dt>
+<dt><span class="section"><a href="math_toolkit/extern_c.html">TR1 and C99 external "C"
+ Functions</a></span></dt>
+<dt><span class="section">Mathematical Constants</span></dt>
+<dt><span class="section">Complex Number Functions</span></dt>
+<dt><span class="section">Quaternions</span></dt>
+<dt><span class="section">Octonions</span></dt>
+<dt><span class="section"><a href="math_toolkit/gcd_lcm.html">Integer Utilities (Greatest Common
+ Divisor and Least Common Multiple)</a></span></dt>
+<dt><span class="section">Internals and Internal Details</span></dt>
+<dt><span class="section"><a href="math_toolkit/using_udt.html">Use with User-Defined Floating-Point
+ Types</a></span></dt>
+<dt><span class="section">Policies</span></dt>
+<dt><span class="section">Performance</span></dt>
+<dt><span class="section">Backgrounders</span></dt>
+<dt><span class="section">Library Status</span></dt>
+<dt><span class="section">Indexes</span></dt>
+</dl>
+</div>
 <p>
- The following libraries are present in Boost.Math:
- </p>
-<div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Library
- </p>
- </th>
-<th>
- <p>
- Description
- </p>
- </th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- Complex Number Inverse Trigonometric Functions
- </p>
- <p>
- HTML Docs
- </p>
- <p>
- <a href="http://sourceforge.net/projects/boost/files/boost-docs/" target="_top">PDF
- Docs</a>
- </p>
- </td>
-<td>
- <p>
- These 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>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Greatest Common Divisor and Least Common Multiple
- </p>
- <p>
- HTML Docs
- </p>
- <p>
- <a href="http://sourceforge.net/projects/boost/files/boost-docs/" target="_top">PDF
- Docs</a>
- </p>
- </td>
-<td>
- <p>
- The class and function templates in &lt;boost/math/common_factor.hpp&gt;
- 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>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Octonions
- </p>
- <p>
- HTML Docs
- </p>
- <p>
- <a href="http://sourceforge.net/projects/boost/files/boost-docs/" target="_top">PDF
- Docs</a>
- </p>
- </td>
-<td>
- <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
- (&#945;,&#946;,&#947;,&#948;,&#949;,&#950;,&#951;,&#952;), which we can write in the form <span class="emphasis"><em><code class="literal">o = &#945; + &#946;i + &#947;j + &#948;k + &#949;e' + &#950;i' + &#951;j' + &#952;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 quaternions
- <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)
- &#8800; (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" alt="octonion_blurb17"></span>
- </p>
- <p>
- Octonions (and their kin) are described in far more details in this
- other document (with
- errata and addenda).
- </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>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Special Functions
- </p>
- <p>
- HTML Docs
- </p>
- <p>
- <a href="http://sourceforge.net/projects/boost/files/boost-docs/" target="_top">PDF
- Docs</a>
- </p>
- </td>
-<td>
- <p>
- Provides a number of high quality special functions, initially these
- were concentrated on functions used in statistical applications along
- with those in the Technical Report on C++ Library Extensions.
- </p>
- <p>
- The function families currently implemented are the gamma, beta &amp;
- 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, although they are optimised for use
- with types with known-about significand (or mantissa) sizes: typically
- float, double or long double.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Statistical Distributions
- </p>
- <p>
- HTML Docs
- </p>
- <p>
- <a href="http://sourceforge.net/projects/boost/files/boost-docs/" target="_top">PDF
- Docs</a>
- </p>
- </td>
-<td>
- <p>
- Provides a reasonably comprehensive set of statistical distributions,
- upon which higher level statistical tests can be built.
- </p>
- <p>
- The initial focus is on the central univariate distributions. Both
- continuous (like normal &amp; Fisher) and discrete (like binomial &amp;
- Poisson) distributions are provided.
- </p>
- <p>
- A comprehensive tutorial is provided, along with a series of worked
- examples illustrating how the library is used to conduct statistical
- tests.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Quaternions
- </p>
- <p>
- HTML Docs
- </p>
- <p>
- <a href="http://sourceforge.net/projects/boost/files/boost-docs/" target="_top">PDF
- Docs</a>
- </p>
- </td>
-<td>
- <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
- (&#945;,&#946;,&#947;,&#948;), which we can write in the form <span class="emphasis"><em><code class="literal">q = &#945; + &#946;i + &#947;j + &#948;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
- &#8800; 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
- errata and addenda).
- </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>
- </td>
-</tr>
-</tbody>
-</table></div>
-<p>
- The following Boost libraries are also mathematically oriented:
+ 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 class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Library
- </p>
- </th>
-<th>
- <p>
- Description
- </p>
- </th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- Integer
- </p>
- </td>
-<td>
- <p>
- Headers to ease dealing with integral types.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Interval
- </p>
- </td>
-<td>
- <p>
- As implied by its name, this library is intended to help manipulating
- mathematical intervals. It consists of a single header &lt;boost/numeric/interval.hpp&gt;
- and principally a type which can be used as interval&lt;T&gt;.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Multi Array
- </p>
- </td>
-<td>
- <p>
- Boost.MultiArray provides a generic N-dimensional array concept definition
- and common implementations of that interface.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Numeric.Conversion
- </p>
- </td>
-<td>
- <p>
- The Boost Numeric Conversion library is a collection of tools to describe
- and perform conversions between values of different numeric types.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Operators
- </p>
- </td>
-<td>
- <p>
- The header &lt;boost/operators.hpp&gt; supplies several sets of class
- templates (in namespace boost). These templates define operators at
- namespace scope in terms of a minimal number of fundamental operators
- provided by the class.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Random
- </p>
- </td>
-<td>
- <p>
- Random numbers are useful in a variety of applications. The Boost Random
- Number Library (Boost.Random for short) provides a vast variety of
- generators and distributions to produce random numbers having useful
- properties, such as uniform distribution.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Rational
- </p>
- </td>
-<td>
- <p>
- The header rational.hpp provides an implementation of rational numbers.
- The implementation is template-based, in a similar manner to the standard
- complex number class.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- uBLAS
- </p>
- </td>
-<td>
- <p>
- uBLAS is a C++ template class library that provides BLAS level 1, 2,
- 3 functionality for dense, packed and sparse matrices. The design and
- implementation unify mathematical notation via operator overloading
- and efficient code generation via expression templates.
- </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"><p><small>Last revised: January 01, 2011 at 17:16:10 +0000</small></p></td>
+<td align="left"><p><small>Last revised: May 05, 2013 at 11:13:55 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
-<div class="spirit-nav"></div>
+<div class="spirit-nav"><a accesskey="n" href="math_toolkit/main_overview.html"><img src="images/next.png" alt="Next"></a></div>
 </body>
 </html>

Added: sandbox/math/libs/math/doc/html/index/s13.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/index/s13.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,2374 @@
+<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.77.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/status/credits.html" title="Credits and Acknowledgements">
+<link rel="next" href="s14.html" title="Class Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../math_toolkit/status/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="s14.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section id883528">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id883528"></a>Function Index</h2></div></div></div>
+<p><a class="link" href="s13.html#idx_id_0">A</a> <a class="link" href="s13.html#idx_id_1">B</a> <a class="link" href="s13.html#idx_id_2">C</a> <a class="link" href="s13.html#idx_id_3">D</a> <a class="link" href="s13.html#idx_id_4">E</a> <a class="link" href="s13.html#idx_id_5">F</a> <a class="link" href="s13.html#idx_id_6">G</a> <a class="link" href="s13.html#idx_id_7">H</a> <a class="link" href="s13.html#idx_id_8">I</a> <a class="link" href="s13.html#idx_id_9">J</a> <a class="link" href="s13.html#idx_id_10">K</a> <a class="link" href="s13.html#idx_id_11">L</a> <a class="link" href="s13.html#idx_id_12">M</a> <a class="link" href="s13.html#idx_id_13">N</a> <a class="link" href="s13.html#idx_id_14">O</a> <a class="link" href="s13.html#idx_id_15">P</a> <a class="link" href="s13.html#idx_id_16">Q</a> <a class="link" href="s13.html#idx_id_17">R</a> <a class="link" href="s13.html#idx_id_18">S</a> <a class="link" href="s13.html#idx_id_19">T</a> <a class="link" href="s13.html#idx_id_20">U</a> <a class="link" href=
"s13.html#idx_id_21">V</a> <a class="link" href="s13.html#idx_id_22">W</a> <a class="link" href="s13.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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/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/special/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_beta_a__b__x_" title="Table&#160;28.&#160;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/special/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/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/special/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/extern_c/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/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_betac_a_b_x_" title="Table&#160;29.&#160;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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/backgrounders/implementation.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/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/policy/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/dist/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/dist/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/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/utils/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/main_overview/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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">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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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">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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/status/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/status/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/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/special/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/special/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erf_z_" title="Table&#160;30.&#160;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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erfc_z_" title="Table&#160;31.&#160;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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/policy/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/special/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/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/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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/expint/expint_n.html#math_toolkit.special.expint.expint_n.errors_in_the_function_expint_n__z_" title="Table&#160;49.&#160;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/special/expint/expint_i.html#math_toolkit.special.expint.expint_i.errors_in_the_function_expint_z_" title="Table&#160;50.&#160;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/special/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/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/using_udt/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/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/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/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/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/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/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/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/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/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/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/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/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/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/utils/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/utils/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/utils/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/utils/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_p_a_z_" title="Table&#160;21.&#160;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/special/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/special/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/special/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/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/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/special/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/special/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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_q_a_z_" title="Table&#160;22.&#160;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/special/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/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/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/special/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/special/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">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/constants/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/constants/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/constants/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/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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/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/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b_x_" title="Table&#160;26.&#160;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/special/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/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/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_b_x_" title="Table&#160;27.&#160;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/special/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/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/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/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/special/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/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/special/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/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/special/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/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/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/special/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/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/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/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/special/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/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/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/special/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/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/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/backgrounders/implementation.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/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/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/using_udt/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/utils/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/utils/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/utils/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/utils/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/utils/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/using_udt/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/utils/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/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/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/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/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">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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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">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/using_udt/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/policy/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/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/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/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/dist/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/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/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/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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/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/policy/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/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/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/dist/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/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/dist/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/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/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/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/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/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/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/backgrounders/implementation.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/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/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/main_overview/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/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/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/policy/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>
+</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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/utils/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/main_overview/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/policy/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_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">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/special/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/dist/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/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/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/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/special/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/dist/stat_tut/overview.html" title="Overview of Distributions"><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/using_udt/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/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/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/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/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/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/policy/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/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/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/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_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/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/main_overview/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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/using_udt/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/backgrounders/implementation.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/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/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/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/dist/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/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/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/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/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/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/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/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/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/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/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/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/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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder</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/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/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/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/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/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/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/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/utils/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/utils/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/special/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/special/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/special/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/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/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/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/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_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/special/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/dist/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/dist/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/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/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/toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">Series Evaluation</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/dist/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/status/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/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/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/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/dist/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/policy/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/policy/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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_a_z_" title="Table&#160;24.&#160;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/special/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/special/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/special/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/policy/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/policy/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_delta_ratio_a__delta_" title="Table&#160;19.&#160;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/special/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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_lower_a_z_" title="Table&#160;23.&#160;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/special/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/special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ratio_a__b_" title="Table&#160;20.&#160;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/special/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/using_udt/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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">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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/special/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/utils/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/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/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/main_overview/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/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/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/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/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/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/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/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/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/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/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/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/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/special/zetas/zeta.html#math_toolkit.special.zetas.zeta.errors_in_the_function_zeta_z_" title="Table&#160;48.&#160;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/special/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/special/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/status/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="s14.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/index/s14.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/index/s14.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,237 @@
+<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.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="s13.html" title="Function Index">
+<link rel="next" href="s15.html" title="Typedef Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="s13.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="s15.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section id1393891">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1393891"></a>Class Index</h2></div></div></div>
+<p><a class="link" href="s14.html#idx_id_25">B</a> <a class="link" href="s14.html#idx_id_26">C</a> <a class="link" href="s14.html#idx_id_27">D</a> <a class="link" href="s14.html#idx_id_28">E</a> <a class="link" href="s14.html#idx_id_29">F</a> <a class="link" href="s14.html#idx_id_30">G</a> <a class="link" href="s14.html#idx_id_31">H</a> <a class="link" href="s14.html#idx_id_32">I</a> <a class="link" href="s14.html#idx_id_35">L</a> <a class="link" href="s14.html#idx_id_36">M</a> <a class="link" href="s14.html#idx_id_37">N</a> <a class="link" href="s14.html#idx_id_39">P</a> <a class="link" href="s14.html#idx_id_41">R</a> <a class="link" href="s14.html#idx_id_42">S</a> <a class="link" href="s14.html#idx_id_43">T</a> <a class="link" href="s14.html#idx_id_44">U</a> <a class="link" href="s14.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/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/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/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/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/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/constants/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/policy/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/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/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/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/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/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/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/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/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><a class="link" href="../math_toolkit/dist/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/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/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/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/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/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">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/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/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/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/special/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/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/utils/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/utils/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/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/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/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/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/policy/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/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_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/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/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/policy/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/policy/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_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/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/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/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/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/backgrounders/implementation.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/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/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/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/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s13.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="s15.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/index/s15.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/index/s15.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,397 @@
+<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.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="s14.html" title="Class Index">
+<link rel="next" href="s16.html" title="Macro Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="s14.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="s16.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section id1395378">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1395378"></a>Typedef Index</h2></div></div></div>
+<p><a class="link" href="s15.html#idx_id_48">A</a> <a class="link" href="s15.html#idx_id_49">B</a> <a class="link" href="s15.html#idx_id_50">C</a> <a class="link" href="s15.html#idx_id_51">D</a> <a class="link" href="s15.html#idx_id_52">E</a> <a class="link" href="s15.html#idx_id_53">F</a> <a class="link" href="s15.html#idx_id_54">G</a> <a class="link" href="s15.html#idx_id_55">H</a> <a class="link" href="s15.html#idx_id_56">I</a> <a class="link" href="s15.html#idx_id_59">L</a> <a class="link" href="s15.html#idx_id_61">N</a> <a class="link" href="s15.html#idx_id_62">O</a> <a class="link" href="s15.html#idx_id_63">P</a> <a class="link" href="s15.html#idx_id_65">R</a> <a class="link" href="s15.html#idx_id_66">S</a> <a class="link" href="s15.html#idx_id_67">T</a> <a class="link" href="s15.html#idx_id_68">U</a> <a class="link" href="s15.html#idx_id_69">V</a> <a class="link" href="s15.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/policy/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/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/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/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/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/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/dist/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/policy/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/policy/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/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/policy/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/policy/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/policy/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/policy/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/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/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/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/policy/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/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/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/policy/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/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/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/policy/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/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/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/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/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/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/dist/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/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/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/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/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/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/dist/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/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/policy/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/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/policy/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/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/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/policy/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/policy/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/policy/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/policy/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/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/policy/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">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/main_overview/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/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/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/policy/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/dist/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/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/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/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/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/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/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s14.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="s16.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/index/s16.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/index/s16.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,295 @@
+<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.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="s15.html" title="Typedef Index">
+<link rel="next" href="s17.html" title="Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="s15.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="s17.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section id1399244">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1399244"></a>Macro Index</h2></div></div></div>
+<p><a class="link" href="s16.html#idx_id_73">B</a> <a class="link" href="s16.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/constants/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/backgrounders/implementation.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/constants/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/constants/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/special/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/policy/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/policy/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/dist/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/dist/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/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/policy/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/backgrounders/implementation.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/policy/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/dist/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/policy/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/constants/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/perf/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/perf/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/policy/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/policy/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/policy/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/compilers_overview.html#math_toolkit.main_overview.compilers_overview.supported_tested_compilers" title="Table&#160;9.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/policy/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/special/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/dist/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/dist/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/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/policy/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/perf/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/perf/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/policy/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/perf/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/constants/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/utils/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/utils/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/utils/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/utils/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/utils/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s15.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="s17.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/index/s17.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/index/s17.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,4979 @@
+<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.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="s16.html" title="Macro Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="s16.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>
+</div>
+<div class="section id1400470">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1400470"></a>Index</h2></div></div></div>
+<p><a class="link" href="s17.html#idx_id_96">A</a> <a class="link" href="s17.html#idx_id_97">B</a> <a class="link" href="s17.html#idx_id_98">C</a> <a class="link" href="s17.html#idx_id_99">D</a> <a class="link" href="s17.html#idx_id_100">E</a> <a class="link" href="s17.html#idx_id_101">F</a> <a class="link" href="s17.html#idx_id_102">G</a> <a class="link" href="s17.html#idx_id_103">H</a> <a class="link" href="s17.html#idx_id_104">I</a> <a class="link" href="s17.html#idx_id_105">J</a> <a class="link" href="s17.html#idx_id_106">K</a> <a class="link" href="s17.html#idx_id_107">L</a> <a class="link" href="s17.html#idx_id_108">M</a> <a class="link" href="s17.html#idx_id_109">N</a> <a class="link" href="s17.html#idx_id_110">O</a> <a class="link" href="s17.html#idx_id_111">P</a> <a class="link" href="s17.html#idx_id_112">Q</a> <a class="link" href="s17.html#idx_id_113">R</a> <a class="link" href="s17.html#idx_id_114">S</a> <a class="link" href="s17.html#idx_id_115">T</a> <a class="link" href="s17.html#idx_id_116">
U</a> <a class="link" href="s17.html#idx_id_117">V</a> <a class="link" href="s17.html#idx_id_118">W</a> <a class="link" href="s17.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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/utils/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/policy/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/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/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/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/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/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/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/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/special/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/special/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/special/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/special/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/special/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/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_beta_a__b__x_" title="Table&#160;28.&#160;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/special/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/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/special/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/extern_c/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/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/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/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/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/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/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/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/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/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/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/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/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/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/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_betac_a_b_x_" title="Table&#160;29.&#160;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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/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/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/special/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/special/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 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/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/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/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/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/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/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/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/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_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/special/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/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/constants/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/backgrounders/implementation.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/constants/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/constants/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/special/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/policy/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/policy/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/dist/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/dist/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/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/policy/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/backgrounders/implementation.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/policy/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/dist/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/policy/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/constants/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/perf/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/perf/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/policy/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/policy/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/policy/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/compilers_overview.html#math_toolkit.main_overview.compilers_overview.supported_tested_compilers" title="Table&#160;9.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/policy/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/special/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/dist/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/dist/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/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/policy/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/perf/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/perf/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/policy/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/perf/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/constants/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/policy/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/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/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/tr1.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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/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/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/dist/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/policy/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/policy/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/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/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/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/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/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/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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/backgrounders/implementation.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/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/policy/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/dist/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/dist/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/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/utils/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/policy/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/policy/pol_tutorial/changing_policy_defaults.html" title="Changing 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/policy/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/policy/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/main_overview/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/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/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/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/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/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/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/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/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/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/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/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 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/special/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/special/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/special/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/special/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/main_overview/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/dist/stat_tut/overview.html" title="Overview of Distributions"><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/stat_tut/overview.html" title="Overview of Distributions"><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/stat_tut/overview.html" title="Overview of Distributions"><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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/using_udt/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/using_udt/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/using_udt/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/using_udt/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/using_udt/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/using_udt/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/using_udt/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/using_udt/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/using_udt/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/using_udt/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/dist/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/dist/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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">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/backgrounders/implementation.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/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/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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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/main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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/dist/stat_tut/overview.html" title="Overview of Distributions"><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/using_udt/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/status/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/constants/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/special/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/main_overview/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/special/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/special/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/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/special/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/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/special/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/constants/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/main_overview/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/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/constants/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/special/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/constants.html" title="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/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/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/special/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/backgrounders/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/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/backgrounders/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/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/constants/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/constants/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/constants/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/using_udt/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/using_udt/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/using_udt/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/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/constants/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/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/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/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/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/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/main_overview/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/status/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/status/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">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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/status/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/status/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/policy/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/constants/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/constants/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/constants/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/constants/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/constants/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/constants/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/constants/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/policy/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/special/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/special/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/special/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/special/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/special/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/special/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/main_overview/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/policy/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/policy/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/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/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">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/policy/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/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/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/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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erf_z_" title="Table&#160;30.&#160;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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erfc_z_" title="Table&#160;31.&#160;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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/policy/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/main_overview/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 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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_beta_a__b__x_" title="Table&#160;28.&#160;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/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_betac_a_b_x_" title="Table&#160;29.&#160;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/special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erf_z_" title="Table&#160;30.&#160;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/special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erfc_z_" title="Table&#160;31.&#160;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/special/expint/expint_n.html#math_toolkit.special.expint.expint_n.errors_in_the_function_expint_n__z_" title="Table&#160;49.&#160;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/special/expint/expint_i.html#math_toolkit.special.expint.expint_i.errors_in_the_function_expint_z_" title="Table&#160;50.&#160;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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_p_a_z_" title="Table&#160;21.&#160;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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_q_a_z_" title="Table&#160;22.&#160;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/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b_x_" title="Table&#160;26.&#160;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/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_b_x_" title="Table&#160;27.&#160;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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_a_z_" title="Table&#160;24.&#160;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/special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_delta_ratio_a__delta_" title="Table&#160;19.&#160;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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_lower_a_z_" title="Table&#160;23.&#160;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/special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ratio_a__b_" title="Table&#160;20.&#160;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/special/zetas/zeta.html#math_toolkit.special.zetas.zeta.errors_in_the_function_zeta_z_" title="Table&#160;48.&#160;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">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/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/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/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/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/policy/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">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/dist/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/dist/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/dist/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/dist/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/dist/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>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html" title="Binomial Quiz Example"><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/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/dist/stat_tut/weg/error_eg.html" title="Error Handling Example"><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/dist/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/dist/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/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">negative_binomial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><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/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><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/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>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/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/dist/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>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/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>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/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">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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/expint/expint_n.html#math_toolkit.special.expint.expint_n.errors_in_the_function_expint_n__z_" title="Table&#160;49.&#160;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/special/expint/expint_i.html#math_toolkit.special.expint.expint_i.errors_in_the_function_expint_z_" title="Table&#160;50.&#160;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/special/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/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/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/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/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/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/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/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/special/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/special/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/special/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/special/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/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/extern_c/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/dist/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/special/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/dist/stat_tut/overview.html" title="Overview of Distributions"><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/using_udt/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/using_udt/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/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/status/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/special/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/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/special/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/constants/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/dist/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/special/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/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/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/main_overview/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/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/constants/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/dist/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/special/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/policy/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/dist/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/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/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/special/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/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/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/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/special/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/backgrounders/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/backgrounders/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/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/constants/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/using_udt/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/using_udt/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/dist/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/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/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/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/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/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/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/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/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/using_udt/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/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/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/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/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/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/utils/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/utils/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/constants/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/constants/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/constants/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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">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/utils/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/utils/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/utils/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/special/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/special/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/special/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/policy/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/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/special/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/special/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/special/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/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/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/policy/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/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/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/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/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/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/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/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/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/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/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/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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_p_a_z_" title="Table&#160;21.&#160;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/special/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/special/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/special/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/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/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/special/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/special/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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_q_a_z_" title="Table&#160;22.&#160;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/special/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/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/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/special/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/special/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">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/dist/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/dist/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/dist/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/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/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/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/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/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/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/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/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/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/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><a class="link" href="../math_toolkit/dist/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/constants/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/constants/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/constants/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/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/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/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/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/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/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/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/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/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/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/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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/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/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/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/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/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/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/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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/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/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b_x_" title="Table&#160;26.&#160;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/special/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/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/special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_b_x_" title="Table&#160;27.&#160;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/special/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/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/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/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/special/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/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/special/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/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/special/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/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/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/special/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/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/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/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/special/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/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/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/special/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/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/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/backgrounders/implementation.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/backgrounders/implementation.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/backgrounders/implementation.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/backgrounders/implementation.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/backgrounders/implementation.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/backgrounders/implementation.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/backgrounders/implementation.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/backgrounders/implementation.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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/policy/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/backgrounders/implementation.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/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/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/constants/intro.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/constants/intro.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/utils/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/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/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/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/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/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/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 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/using_udt/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/utils/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/utils/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/utils/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/utils/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/utils/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/policy/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/policy/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/using_udt/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/utils/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/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/status/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/status/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/status/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/status/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/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/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/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">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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/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/using_udt/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/backgrounders/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/special/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/backgrounders/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/special/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/main_overview/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/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/special/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/status/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/backgrounders/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/special/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/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/perf/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/backgrounders/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/backgrounders/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/using_udt/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/using_udt/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/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/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/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/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/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/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/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/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">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/using_udt/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/policy/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/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/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/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/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/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/dist/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/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/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/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/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/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/special/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/special/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/special/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/special/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/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/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/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/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/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/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/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/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/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/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/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/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/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/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/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/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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/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/policy/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/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/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="../math_toolkit/constants.html" title="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/policy/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/policy/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/special/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/dist/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/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/dist/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/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/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/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/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/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/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/backgrounders/implementation.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/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/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/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/main_overview/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/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/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/special/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/special/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/policy/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>
+</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/main_overview/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/utils/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/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/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/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/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/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/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/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/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/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/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/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/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/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/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</span></p>
+<div class="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/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/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/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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/main_overview/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/utils/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/utils/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/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/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/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/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/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/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/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/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/policy/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">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/dist/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/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/policy/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/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/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/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/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/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/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/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/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/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/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/policy/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/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">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/policy/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/special/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/special/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/special/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/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/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/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/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/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/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/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/dist/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/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/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/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/perf/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/perf/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/perf/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/perf/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/perf/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/perf/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/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/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/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/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/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/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/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/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/special/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/policy/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/policy/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/policy/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/policy/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/policy/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/dist/stat_tut/overview.html" title="Overview of Distributions"><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/using_udt/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/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/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/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/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/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/policy/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/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/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/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_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/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/main_overview/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/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/special/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/special/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/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/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/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/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/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/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/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/utils/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/backgrounders/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/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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/backgrounders/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/backgrounders/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/utils/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/utils/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/special/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/special/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 &amp; 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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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/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/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/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/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/using_udt/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/utils/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/utils/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/utils/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/utils/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/policy/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.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/backgrounders/implementation.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/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/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/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/dist/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/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/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/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/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/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/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/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/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/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/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/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/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/toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder</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/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/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/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/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/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/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/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/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/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/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/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/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/utils/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/utils/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/utils/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/utils/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/utils/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/utils/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/special/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/special/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/special/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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">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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/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/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/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/dist/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/dist/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/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/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/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/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/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/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/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/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/main_overview/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/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/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/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">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/main_overview/compilers_overview.html#math_toolkit.main_overview.compilers_overview.supported_tested_compilers" title="Table&#160;9.&#160;Supported/Tested Compilers"><span class="index-entry-level-1">BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS</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/dist/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/status/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/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/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/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/dist/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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/policy/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/policy/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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_a_z_" title="Table&#160;24.&#160;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/special/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/special/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/special/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/policy/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/policy/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/special/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_delta_ratio_a__delta_" title="Table&#160;19.&#160;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/special/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/special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_lower_a_z_" title="Table&#160;23.&#160;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/special/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/special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ratio_a__b_" title="Table&#160;20.&#160;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/special/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/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/extern_c/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/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/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/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/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/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/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/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/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/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/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/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/backgrounders/implementation.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/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/using_udt/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/utils/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/utils/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/utils/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/utils/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/utils/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/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/policy/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/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/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/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/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/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/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/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/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/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/constants/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/constants/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/constants/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/constants/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/constants/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/constants/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/special/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/using_udt/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/using_udt/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/using_udt/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/policy/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/using_udt/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/using_udt/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/using_udt/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/using_udt/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/using_udt/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/utils/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/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/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/main_overview/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/dist/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/special/zetas/zeta.html#math_toolkit.special.zetas.zeta.errors_in_the_function_zeta_z_" title="Table&#160;48.&#160;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/special/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/special/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s16.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>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/backgrounders.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/backgrounders.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,44 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Backgrounders</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="perf/perf_test_app.html" title="The Performance Test Application">
+<link rel="next" href="backgrounders/implementation.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="perf/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="backgrounders/implementation.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_backgrounders">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.backgrounders"></a><a class="link" href="backgrounders.html" title="Backgrounders">Backgrounders</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="backgrounders/implementation.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="backgrounders/implementation.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/implementation.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/implementation.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,849 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../backgrounders.html" title="Backgrounders">
+<link rel="prev" href="../backgrounders.html" title="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_backgrounders_implementation">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.backgrounders.implementation"></a><a class="link" href="implementation.html" title="Additional Implementation Notes">Additional
+ Implementation Notes</a>
+</h3></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.backgrounders.implementation.h0"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.implemention_philosophy"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.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.backgrounders.implementation.h1"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.accuracy_and_representation_of_test_values"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.accuracy_and_representation_of_test_values">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&lt;RealType&gt;(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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(-</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</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.backgrounders.implementation.h2"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.tolerance_of_tests"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.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.backgrounders.implementation.h3"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.handling_unsuitable_arguments"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.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 &amp; 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="../main_overview/error_handling.html" title="Error Handling">See
+ also domain_error</a>.
+ </p>
+<p>
+ See <a class="link" href="../policy/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="../main_overview/error_handling.html" title="Error Handling">error handling</a>
+ for a detailed explanation of the mechanism, and <a class="link" href="../dist/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 &amp; 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&amp;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.backgrounders.implementation.h4"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.handling_of_functions_that_are_not_mathematically_defined"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.handling_of_functions_that_are_not_mathematically_defined">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="../policy/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&lt;&gt;()) will return std::numeric_limits&lt;T&gt;::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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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.backgrounders.implementation.h5"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.median_of_distributions"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.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.backgrounders.implementation.h6"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.handling_of_floating_point_infinity"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.handling_of_floating_point_infinity">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="../main_overview/error_handling.html#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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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="../policy/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="../policy/pol_ref/error_handling_policies.html" title="Error Handling Policies">error
+ handling policies</a>.
+ </p>
+<h5>
+<a name="math_toolkit.backgrounders.implementation.h7"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.scale__shape_and_location"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.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">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;&amp;</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">&amp;</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.backgrounders.implementation.h8"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.notes_on_implementation_of_specific_functions__amp__distributions"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.notes_on_implementation_of_specific_functions__amp__distributions">Notes
+ on Implementation of Specific Functions &amp; 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.backgrounders.implementation.h9"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.rational_approximations_used"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.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="../toolkit/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.backgrounders.implementation.h10"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.representation_of_mathematical_constants"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.representation_of_mathematical_constants">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">&lt;</span><span class="keyword">double</span><span class="special">&gt;();</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">&lt;</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">&gt;()</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">&lt;&gt;();</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.backgrounders.implementation.h11"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.thread_safety"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.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.backgrounders.implementation.h12"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.sources_of_test_data"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.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, &amp;
+ 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.backgrounders.implementation.h13"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.testing_for_invalid_parameters_to_functions_and_constructors"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.testing_for_invalid_parameters_to_functions_and_constructors">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">&lt;</span> <span class="identifier">DistributionType</span>
+ <span class="special">&gt;(</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">&lt;</span><span class="identifier">extreme_value_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;</span> <span class="special">&gt;(</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</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 &gt; 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.backgrounders.implementation.h14"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.creating_and_managing_the_equations"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.creating_and_managing_the_equations">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
+&gt;/cygdrive/c/Python25/python.exe 'C:\download\open\SVGMath-0.3.1\math2svg.py' \
+&gt;&gt;$file &gt; $(basename $file .mml).svg
+&gt;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/.*\(&lt;math[^&gt;]*&gt;.*&lt;/math&gt;\).*/\1/' &gt; 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">&lt;!-- Double-struck --&gt;
+ &lt;mathvariant name="double-struck" family="Mathematica7, Lucida Sans Unicode"/&gt;
+</pre>
+<p>
+ changed to:
+ </p>
+<pre class="programlisting">&lt;!-- Double-struck --&gt;
+ &lt;mathvariant name="double-struck" family="Lucida Sans Unicode"/&gt;
+</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 &gt;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 math_toolkit\libs\math\doc\sf_and_dist\html\index.html
+ using command line &gt;bjam -a &gt; math_docs.log).
+ </p>
+<pre class="programlisting"><span class="special">&lt;!--</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">--&gt;</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">&lt;font-group xml:base="file:/C:/Windows/Fonts/" label="Windows TrueType" embed="true" subset="true"&gt;
+ &lt;font-family name="Arial"&gt;
+ &lt;font&gt;&lt;font-data ttf="arial.ttf"/&gt;&lt;/font&gt;
+ &lt;font style="oblique"&gt;&lt;font-data ttf="ariali.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold"&gt;&lt;font-data ttf="arialbd.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold" style="oblique"&gt;&lt;font-data ttf="arialbi.ttf"/&gt;&lt;/font&gt;
+ &lt;/font-family&gt;
+
+ &lt;font-family name="Times New Roman" ligatures="&amp;#xFB01; &amp;#xFB02;"&gt;
+ &lt;font&gt;&lt;font-data ttf="times.ttf"/&gt;&lt;/font&gt;
+ &lt;font style="italic"&gt;&lt;font-data ttf="timesi.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold"&gt;&lt;font-data ttf="timesbd.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold" style="italic"&gt;&lt;font-data ttf="timesbi.ttf"/&gt;&lt;/font&gt;
+ &lt;/font-family&gt;
+
+ &lt;font-family name="Courier New"&gt;
+ &lt;font&gt;&lt;font-data ttf="cour.ttf"/&gt;&lt;/font&gt;
+ &lt;font style="oblique"&gt;&lt;font-data ttf="couri.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold"&gt;&lt;font-data ttf="courbd.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold" style="oblique"&gt;&lt;font-data ttf="courbi.ttf"/&gt;&lt;/font&gt;
+ &lt;/font-family&gt;
+
+ &lt;font-family name="Tahoma" embed="true"&gt;
+ &lt;font&gt;&lt;font-data ttf="tahoma.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold"&gt;&lt;font-data ttf="tahomabd.ttf"/&gt;&lt;/font&gt;
+ &lt;/font-family&gt;
+
+ &lt;font-family name="Verdana" embed="true"&gt;
+ &lt;font&gt;&lt;font-data ttf="verdana.ttf"/&gt;&lt;/font&gt;
+ &lt;font style="oblique"&gt;&lt;font-data ttf="verdanai.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold"&gt;&lt;font-data ttf="verdanab.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold" style="oblique"&gt;&lt;font-data ttf="verdanaz.ttf"/&gt;&lt;/font&gt;
+ &lt;/font-family&gt;
+
+ &lt;font-family name="Palatino" embed="true" ligatures="&amp;#xFB00; &amp;#xFB01; &amp;#xFB02; &amp;#xFB03; &amp;#xFB04;"&gt;
+ &lt;font&gt;&lt;font-data ttf="pala.ttf"/&gt;&lt;/font&gt;
+ &lt;font style="italic"&gt;&lt;font-data ttf="palai.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold"&gt;&lt;font-data ttf="palab.ttf"/&gt;&lt;/font&gt;
+ &lt;font weight="bold" style="italic"&gt;&lt;font-data ttf="palabi.ttf"/&gt;&lt;/font&gt;
+ &lt;/font-family&gt;
+
+ &lt;font-family name="Lucida Sans Unicode"&gt;
+ &lt;!-- &lt;font&gt;&lt;font-data ttf="lsansuni.ttf"&gt;&lt;<span class="emphasis"><em>font&gt; --&gt;
+ &lt;!-- actually called l_10646.ttf on Windows 2000 and Vista Sp1 --&gt;
+ &lt;font&gt;&lt;font-data ttf="l_10646.ttf"</em></span>&gt;&lt;/font&gt;
+ &lt;/font-family&gt;
+</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">&lt;inlinemediaobject&gt;
+&lt;imageobject role="html"&gt;
+&lt;imagedata fileref="../equations/myfile.png"&gt;&lt;/imagedata&gt;
+&lt;/imageobject&gt;
+&lt;imageobject role="print"&gt;
+&lt;imagedata fileref="../equations/myfile.svg"&gt;&lt;/imagedata&gt;
+&lt;/imageobject&gt;
+&lt;/inlinemediaobject&gt;
+</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.backgrounders.implementation.h15"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.implementation.producing_graphs"></a></span><a class="link" href="implementation.html#math_toolkit.backgrounders.implementation.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="identifier">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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/backgrounders/lanczos.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/lanczos.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,566 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../backgrounders.html" title="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_backgrounders_lanczos">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.backgrounders.lanczos"></a><a class="link" href="lanczos.html" title="The Lanczos Approximation">The Lanczos Approximation</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.backgrounders.lanczos.h0"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.lanczos.motivation"></a></span><a class="link" href="lanczos.html#math_toolkit.backgrounders.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 &gt; 0</em></span>. In practice that means we can
+ use the same approximation for all <span class="emphasis"><em>z &gt; 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">&gt;</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="../special/sf_beta/beta_function.html" title="Beta">beta</a>
+ function for an example of this method in practice. The incomplete <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p gamma</a> and
+ <a class="link" href="../special/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.backgrounders.lanczos.h1"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.lanczos.the_approximation"></a></span><a class="link" href="lanczos.html#math_toolkit.backgrounders.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 &gt; 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.backgrounders.lanczos.h2"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.lanczos.computing_the_coefficients"></a></span><a class="link" href="lanczos.html#math_toolkit.backgrounders.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.backgrounders.lanczos.h3"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.lanczos.choosing_the_right_parameters"></a></span><a class="link" href="lanczos.html#math_toolkit.backgrounders.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 &lt;= N &lt;= 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.backgrounders.lanczos.optimal_choices_for_n_and_g_when_computing_with_guard_digits__source__pugh_"></a><p class="title"><b>Table&#160;59.&#160;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 &lt; z &lt; 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 &amp; 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.backgrounders.lanczos.optimum_value_for_n_and_g_when_computing_at_fixed_precision"></a><p class="title"><b>Table&#160;60.&#160;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.backgrounders.lanczos.h4"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.lanczos.references"></a></span><a class="link" href="lanczos.html#math_toolkit.backgrounders.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/backgrounders/refs.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/refs.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,207 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../backgrounders.html" title="Backgrounders">
+<link rel="prev" href="remez.html" title="The Remez Method">
+<link rel="next" href="../status.html" title="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_backgrounders_refs">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.backgrounders.refs"></a><a class="link" href="refs.html" title="References">References</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.backgrounders.refs.h0"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.refs.general_references"></a></span><a class="link" href="refs.html#math_toolkit.backgrounders.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&amp;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 &amp; 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 &amp; Saralees
+ Nadarajah, ISBN 978-1-86094-224-2 &amp; 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.backgrounders.refs.h1"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.refs.calculators"></a></span><a class="link" href="refs.html#math_toolkit.backgrounders.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.backgrounders.refs.h2"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.refs.other_libraries"></a></span><a class="link" href="refs.html#math_toolkit.backgrounders.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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/backgrounders/relative_error.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/relative_error.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,114 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../backgrounders.html" title="Backgrounders">
+<link rel="prev" href="implementation.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="implementation.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_backgrounders_relative_error">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.backgrounders.relative_error"></a><a class="link" href="relative_error.html" title="Relative Error">Relative Error</a>
+</h3></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">&lt;&gt;::</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>
+<a name="zero_error"></a><h5>
+<a name="math_toolkit.backgrounders.relative_error.h0"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.relative_error.the_impossibility_of_zero_error"></a></span><a class="link" href="relative_error.html#math_toolkit.backgrounders.relative_error.the_impossibility_of_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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/backgrounders/remez.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/backgrounders/remez.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,534 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../backgrounders.html" title="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_backgrounders_remez">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.backgrounders.remez"></a><a class="link" href="remez.html" title="The Remez Method">The Remez Method</a>
+</h3></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.backgrounders.remez.h0"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.remez.the_remez_method"></a></span><a class="link" href="remez.html#math_toolkit.backgrounders.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> &#160; 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" alt="remez-2"></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.backgrounders.remez.h1"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.remez.remez_step_1"></a></span><a class="link" href="remez.html#math_toolkit.backgrounders.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" alt="remez-3"></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.backgrounders.remez.h2"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.remez.remez_step_2"></a></span><a class="link" href="remez.html#math_toolkit.backgrounders.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.backgrounders.remez.h3"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.remez.iteration"></a></span><a class="link" href="remez.html#math_toolkit.backgrounders.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" alt="remez-4"></span>
+ </p>
+<h5>
+<a name="math_toolkit.backgrounders.remez.h4"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.remez.rational_approximations"></a></span><a class="link" href="remez.html#math_toolkit.backgrounders.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.backgrounders.remez.h5"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.remez.practical_considerations"></a></span><a class="link" href="remez.html#math_toolkit.backgrounders.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="../special/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> &#160; 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" alt="remez-2"></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> &#160;to 6x10<sup>-4</sup>:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../graphs/remez-5.png" alt="remez-5"></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.backgrounders.remez.h6"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.remez.remez_method_checklist"></a></span><a class="link" href="remez.html#math_toolkit.backgrounders.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.backgrounders.remez.h7"></a>
+ <span class="phrase"><a name="math_toolkit.backgrounders.remez.references"></a></span><a class="link" href="remez.html#math_toolkit.backgrounders.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/constants.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/constants.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Mathematical Constants</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="extern_c/tr1_ref.html" title="TR1 C Functions Quick Reference">
+<link rel="next" href="constants/intro.html" title="Introduction">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="extern_c/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="constants/intro.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="Mathematical Constants">Mathematical Constants</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Tutorial</span></dt>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="constants/intro.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/constants/FAQ.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/constants/FAQ.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,479 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../constants.html" title="Mathematical Constants">
+<link rel="prev" href="new_const.html" title="Defining New Constants">
+<link rel="next" href="../inverse_complex.html" title="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_constants_FAQ">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.constants.FAQ"></a><a class="link" href="FAQ.html" title="FAQs">FAQs</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.constants.FAQ.h0"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.why_are__emphasis_these__emphasis__constants_chosen_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.FAQ.why_are__emphasis_these__emphasis__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">&lt;</span><span class="identifier">FPT</span><span class="special">&gt;(</span><span class="number">42</span><span class="special">);</span></code>).
+ </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.constants.FAQ.h1"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.how_are_constants_named_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.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 &#960;, &#950; and &#915;.
+ </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.constants.FAQ.h2"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.how_are_the_constants_derived_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.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.constants.FAQ.h3"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.how_accurate_are_the_constants_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.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.constants.FAQ.h4"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.how_are_the_constants_tested_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.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 <a href="http://oeis.org/" target="_top">The On-Line Encyclopedia of Integer Sequences
+ (OEIS)</a> 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.constants.FAQ.h5"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.why_is_portability_important_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.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.constants.FAQ.h6"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.what_is_the_internal_format_of_the_constants__and_why_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.FAQ.what_is_the_internal_format_of_the_constants__and_why_">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.constants.FAQ.h7"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.what_floating_point_types_could_i_use_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.FAQ.what_floating_point_types_could_i_use_">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.constants.FAQ.h8"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.boost_multiprecision_by_christopher_kormanyos"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.FAQ.boost_multiprecision_by_christopher_kormanyos">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.constants.FAQ.h9"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.boost_cpp_float_by_john_maddock_using_expression_templates"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.FAQ.boost_cpp_float_by_john_maddock_using_expression_templates">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.constants.FAQ.h10"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.ntl_class_quad_float"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.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">&lt;</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">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">quad_float</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">RR</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">RR</span><span class="special">&gt;::</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.constants.FAQ.h11"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.ntl_class_rr"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.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.constants.FAQ.h12"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.gmp_and_mpfr"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.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.constants.FAQ.h13"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.what_happened_to_a_previous_collection_of_constants_proposed_for_boost_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.FAQ.what_happened_to_a_previous_collection_of_constants_proposed_for_boost_">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.constants.FAQ.h14"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.why_do_the_constants__internally__have_a_struct_rather_than_a_simple_function_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.FAQ.why_do_the_constants__internally__have_a_struct_rather_than_a_simple_function_">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.constants.FAQ.h15"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.where_can_i_find_other_high_precision_constants_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.FAQ.where_can_i_find_other_high_precision_constants_">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 (&gt;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 &amp; 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.constants.FAQ.h16"></a>
+ <span class="phrase"><a name="math_toolkit.constants.FAQ.where_are_physical_constants_"></a></span><a class="link" href="FAQ.html#math_toolkit.constants.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/constants/constants.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/constants/constants.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../constants.html" title="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_constants">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.constants.constants"></a><a class="link" href="constants.html" title="The Mathematical Constants">The Mathematical Constants</a>
+</h3></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.constants.mathematical_constants"></a><p class="title"><b>Table&#160;52.&#160;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>
+ &#8730;2
+ </p>
+ </td>
+<td>
+ <p>
+ 1.41421
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ root_three
+ </p>
+ </td>
+<td>
+ <p>
+ &#8730;3
+ </p>
+ </td>
+<td>
+ <p>
+ 1.73205
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ half_root_two
+ </p>
+ </td>
+<td>
+ <p>
+ &#8730;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>
+ &#8730;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/&#8730;2
+ </p>
+ </td>
+<td>
+ <p>
+ 0.707106
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <span class="bold"><strong>&#960; 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>
+ &#960;/2
+ </p>
+ </td>
+<td>
+ <p>
+ 1.570796
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ third_pi
+ </p>
+ </td>
+<td>
+ <p>
+ &#960;/3
+ </p>
+ </td>
+<td>
+ <p>
+ 1.04719
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ sixth_pi
+ </p>
+ </td>
+<td>
+ <p>
+ &#960;/6
+ </p>
+ </td>
+<td>
+ <p>
+ 0.523598
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ two_pi
+ </p>
+ </td>
+<td>
+ <p>
+ 2&#960;
+ </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 &#960;
+ </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 &#960; r&#179;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ three_quarters_pi
+ </p>
+ </td>
+<td>
+ <p>
+ 3/4 &#960;
+ </p>
+ </td>
+<td>
+ <p>
+ 2.35619
+ </p>
+ </td>
+<td>
+ <p>
+ = 3/4 &#960; r&#179;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ four_thirds_pi
+ </p>
+ </td>
+<td>
+ <p>
+ 4/3 &#960;
+ </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 &#960; r&#179;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ one_div_two_pi
+ </p>
+ </td>
+<td>
+ <p>
+ 1/(2&#960;)
+ </p>
+ </td>
+<td>
+ <p>
+ 1.59155
+ </p>
+ </td>
+<td>
+ <p>
+ Widely used
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ root_pi
+ </p>
+ </td>
+<td>
+ <p>
+ &#8730;&#960;
+ </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>
+ &#8730; &#960;/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>
+ &#8730; &#960;*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/&#8730;&#960;
+ </p>
+ </td>
+<td>
+ <p>
+ 0.564189
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ one_div_root_two_pi
+ </p>
+ </td>
+<td>
+ <p>
+ 1/&#8730;(2&#960;)
+ </p>
+ </td>
+<td>
+ <p>
+ 0.398942
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ root_one_div_pi
+ </p>
+ </td>
+<td>
+ <p>
+ &#8730;(1/&#960;
+ </p>
+ </td>
+<td>
+ <p>
+ 0.564189
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ pi_minus_three
+ </p>
+ </td>
+<td>
+ <p>
+ &#960;-3
+ </p>
+ </td>
+<td>
+ <p>
+ 1.41593
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ four_minus_pi
+ </p>
+ </td>
+<td>
+ <p>
+ 4 -&#960;
+ </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> - &#960;
+ </p>
+ </td>
+<td>
+ <p>
+ 0.795316
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ pi_pow_e
+ </p>
+ </td>
+<td>
+ <p>
+ &#960;<sup>e</sup>
+ </p>
+ </td>
+<td>
+ <p>
+ 22.4591
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ pi_sqr
+ </p>
+ </td>
+<td>
+ <p>
+ &#960;<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>
+ &#960;<sup>2</sup>/6
+ </p>
+ </td>
+<td>
+ <p>
+ 1.64493
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ pi_cubed
+ </p>
+ </td>
+<td>
+ <p>
+ &#960;<sup>3</sup>
+ </p>
+ </td>
+<td>
+ <p>
+ 31.00627
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cbrt_pi
+ </p>
+ </td>
+<td>
+ <p>
+ &#8730;<sup>3</sup> &#960;
+ </p>
+ </td>
+<td>
+ <p>
+ 1.46459
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ one_div_cbrt_pi
+ </p>
+ </td>
+<td>
+ <p>
+ 1/&#8730;<sup>3</sup> &#960;
+ </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>&#960;</sup>
+ </p>
+ </td>
+<td>
+ <p>
+ 23.14069
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ root_e
+ </p>
+ </td>
+<td>
+ <p>
+ &#8730; 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 = &#960; / 180
+ </p>
+ </td>
+<td>
+ <p>
+ 0.017453
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ radian
+ </p>
+ </td>
+<td>
+ <p>
+ degrees = 180 / &#960;
+ </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 + &#8730;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(&#966;)
+ </p>
+ </td>
+<td>
+ <p>
+ 0.48121
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ one_div_ln_phi
+ </p>
+ </td>
+<td>
+ <p>
+ 1/ln(&#966;)
+ </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>
+ &#950;(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>
+ &#950;(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&#8730;6 &#950;(3)/ &#960;<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&#8730;&#960;(&#960;-3)/(4 - &#960;)<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&#960;<sup>2</sup>-24&#960;+16)/(4-&#960;)<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&#960;<sup>2</sup>-24&#960;+16)/(4-&#960;)<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">&lt;</span><span class="identifier">cpp_float</span><span class="special">&gt;(</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/constants/intro.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/constants/intro.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,119 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../constants.html" title="Mathematical Constants">
+<link rel="prev" href="../constants.html" title="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_constants_intro">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.constants.intro"></a><a class="link" href="intro.html" title="Introduction">Introduction</a>
+</h3></div></div></div>
+<p>
+ Boost.Math provides a collection of mathematical constants.
+ </p>
+<h5>
+<a name="math_toolkit.constants.intro.h0"></a>
+ <span class="phrase"><a name="math_toolkit.constants.intro.why_use_boost_math_mathematical_constants_"></a></span><a class="link" href="intro.html#math_toolkit.constants.intro.why_use_boost_math_mathematical_constants_">Why
+ use Boost.Math mathematical constants?</a>
+ </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ 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
+<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 <a href="http://en.wikipedia.org/wiki/Corner_case" target="_top">corner
+ cases</a>.
+ </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="identifier">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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/constants/new_const.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/constants/new_const.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,259 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../constants.html" title="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_constants_new_const">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.constants.new_const"></a><a class="link" href="new_const.html" title="Defining New Constants">Defining New Constants</a>
+</h3></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">&lt;</span><span class="keyword">class</span> <span class="identifier">Real</span><span class="special">&gt;</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">&gt;</span>
+<span class="identifier">Real</span> <span class="identifier">constant_my_constant</span><span class="special">&lt;</span><span class="identifier">Real</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">N</span><span class="special">&gt;))</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">&lt;</span><span class="identifier">Real</span><span class="special">&gt;();</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 &#960;/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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">&gt;</span>
+<span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">constant_half_pi</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">N</span><span class="special">&gt;))</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">&lt;</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">&lt;</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">digits2</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;()</span> <span class="special">/</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;()</span></code>; specifying the precision via the
+ policy <code class="computeroutput"><span class="identifier">pi</span><span class="special">&lt;</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">&lt;</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">digits2</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;()</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">&lt;</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">&gt;</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">'&lt;'</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>
+<p>
+ </p>
+</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">&lt;</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">&gt;</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>
+<p>
+</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*,</span> <span class="identifier">T</span><span class="special">&gt;());</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">&lt;</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">&gt;</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">&lt;</span><span class="identifier">construct_from_string</span><span class="special">&gt;&amp;)</span>
+ <span class="special">{</span>
+ <span class="identifier">constant_initializer</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="special">&amp;</span> <span class="identifier">constant_pi</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">get_from_string</span> <span class="special">&gt;::</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">&lt;</span><span class="identifier">construct_from_float</span><span class="special">&gt;)</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">&lt;</span><span class="identifier">construct_from_double</span><span class="special">&gt;&amp;)</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">&lt;</span><span class="identifier">construct_from_long_double</span><span class="special">&gt;&amp;)</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">&lt;</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">&gt;</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">&lt;</span><span class="identifier">N</span><span class="special">&gt;&amp;</span> <span class="identifier">n</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="identifier">constant_initializer2</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">N</span><span class="special">,</span> <span class="special">&amp;</span> <span class="identifier">constant_pi</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="keyword">template</span> <span class="identifier">compute</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">do_nothing</span><span class="special">();</span>
+ <span class="keyword">return</span> <span class="identifier">compute</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;();</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">&lt;</span><span class="number">0</span><span class="special">&gt;&amp;)</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;()</span> <span class="special">&gt;</span> <span class="identifier">max_string_digits</span> <span class="special">?</span> <span class="identifier">compute</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;()</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">&lt;</span><span class="identifier">construct_from_string</span><span class="special">&gt;());</span>
+ <span class="special">}</span>
+ <span class="special">};</span> <span class="comment">// template &lt;class T&gt; 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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">get</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">construction_traits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Policy</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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">&lt;&gt;</span> <span class="special">&gt;()</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>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/constants/tutorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/constants/tutorial.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,44 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../constants.html" title="Mathematical Constants">
+<link rel="prev" href="intro.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="intro.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_constants_tutorial">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.constants.tutorial"></a><a class="link" href="tutorial.html" title="Tutorial">Tutorial</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial/non_templ.html">Use in non-template
+ code</a></span></dt>
+<dt><span class="section"><a href="tutorial/templ.html">Use in template
+ code</a></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/constants/tutorial/non_templ.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/constants/tutorial/non_templ.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,78 @@
+<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.77.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_constants_tutorial_non_templ">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.constants.tutorial.non_templ"></a><a class="link" href="non_templ.html" title="Use in non-template code">Use in non-template
+ code</a>
+</h4></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">&lt;</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">&gt;</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">&lt;</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">&gt;</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.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/constants/tutorial/templ.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/constants/tutorial/templ.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,156 @@
+<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.77.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_constants_tutorial_templ">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.constants.tutorial.templ"></a><a class="link" href="templ.html" title="Use in template code">Use in template
+ code</a>
+</h4></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">&lt;</span><span class="identifier">FPType</span><span class="special">&gt;()</span></code>,
+ of the constants like this:
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Real</span><span class="special">&gt;</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">&lt;</span><span class="identifier">Real</span><span class="special">&gt;()</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 &lt;<em class="replaceable"><code>floating-point-type</code></em>&gt;
+ 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">&lt;</span><span class="keyword">double</span><span class="special">&gt;()</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">&lt;&gt;()</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;();</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>
+<p>
+ </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>
+ 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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Area = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">area</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Area = 12!!!</span></pre>
+<p>
+ </p>
+<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">&lt;&lt;</span> <span class="string">"Area = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">area</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</span><span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Area = 12.566371</span></pre>
+<p>
+ </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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/constants/tutorial/user_def.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/constants/tutorial/user_def.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,327 @@
+<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.77.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_constants_tutorial_user_def">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.constants.tutorial.user_def"></a><a class="link" href="user_def.html" title="Use With User-Defined Types">Use With
+ User-Defined Types</a>
+</h4></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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">UserDefinedType</span><span class="special">&gt;();</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">&lt;</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">&gt;();</span>
+</pre>
+<p>
+ giving &#960; 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">&lt;</span><span class="identifier">T</span><span class="special">&gt;()</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">&lt;</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">&gt;</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">&lt;</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">&lt;</span><span class="number">80</span><span class="special">&gt;</span> <span class="special">&gt;</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">&lt;</span><span class="identifier">MyType</span><span class="special">,</span> <span class="identifier">my_policy_type</span><span class="special">&gt;();</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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">N</span><span class="special">&gt;</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.constants.tutorial.user_def.h0"></a>
+ <span class="phrase"><a name="math_toolkit.constants.tutorial.user_def.custom_specializing_a_constant"></a></span><a class="link" href="user_def.html#math_toolkit.constants.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">&lt;&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">constant_pi</span><span class="special">&lt;</span><span class="identifier">mpfr_class</span><span class="special">&gt;</span>
+<span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">&gt;</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">&lt;</span><span class="identifier">N</span><span class="special">&gt;&amp;)</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.constants.tutorial.user_def.h1"></a>
+ <span class="phrase"><a name="math_toolkit.constants.tutorial.user_def.diagnosing_what_meta_programmed_code_is_doing"></a></span><a class="link" href="user_def.html#math_toolkit.constants.tutorial.user_def.diagnosing_what_meta_programmed_code_is_doing">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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">MyType</span><span class="special">&gt;();</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&lt;class boost::math::concepts::real_concept&gt; specialisation: no
+boost::math::policies::precision&lt;class boost::math::concepts::real_concept, Policy&gt;
+reports that there is no compile type precision available.
+boost::math::tools::digits&lt;class boost::math::concepts::real_concept&gt;()
+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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Statistical Distributions and Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="main_overview/contact.html" title="Contact Info and Support">
+<link rel="next" href="dist/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="main_overview/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="dist/stat_tut.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_dist">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.dist"></a><a class="link" href="dist.html" title="Statistical Distributions and Functions">Statistical Distributions and Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="dist/stat_tut.html">Statistical Distributions
+ Tutorial</a></span></dt>
+<dt><span class="section"><a href="dist/dist_ref.html">Statistical Distributions
+ Reference</a></span></dt>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="main_overview/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="dist/stat_tut.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,43 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../dist.html" title="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_dist_ref">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.dist.dist_ref"></a><a class="link" href="dist_ref.html" title="Statistical Distributions Reference">Statistical Distributions
+ Reference</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Non-Member Properties</span></dt>
+<dt><span class="section">Distributions</span></dt>
+<dt><span class="section"><a href="dist_ref/dist_algorithms.html">Distribution
+ Algorithms</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dist_algorithms.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dist_algorithms.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,135 @@
+<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.77.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_dist_ref_dist_algorithms">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist.dist_ref.dist_algorithms"></a><a class="link" href="dist_algorithms.html" title="Distribution Algorithms">Distribution
+ Algorithms</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dist_algorithms.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dist_algorithms.finding_the_location_and_scale_for_normal_and_similar_distributions"></a></span><a class="link" href="dist_algorithms.html#math_toolkit.dist.dist_ref.dist_algorithms.finding_the_location_and_scale_for_normal_and_similar_distributions">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.dist_ref.dist_algorithms.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dist_algorithms.find_location_function"></a></span><a class="link" href="dist_algorithms.html#math_toolkit.dist.dist_ref.dist_algorithms.find_location_function">find_location
+ function</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &gt; z) == p.</span>
+ <span class="comment">// For example, a nominal minimum acceptable z, so that p * 100 % are &gt; 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% &gt; 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="Policies">Policy</a><span class="special">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">&gt;</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 &gt; z) == p.</span>
+ <span class="comment">// For example, a nominal minimum acceptable z, so that p * 100 % are &gt; 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% &gt; 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.dist_ref.dist_algorithms.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dist_algorithms.find_scale_function"></a></span><a class="link" href="dist_algorithms.html#math_toolkit.dist.dist_ref.dist_algorithms.find_scale_function">find_scale
+ function</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &gt; z) == p.</span>
+ <span class="comment">// For example, a nominal minimum acceptable weight z, so that p * 100 % are &gt; 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% &gt; 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="Policies">Policy</a><span class="special">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">&gt;</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 &gt; z) == p.</span>
+ <span class="comment">// For example, a nominal minimum acceptable z, so that p * 100 % are &gt; 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% &gt; 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="../../main_overview/error_handling.html#domain_error">domain_error</a>
+ is called.
+ </p>
+<p>
+ Probability arguments must be [0, 1], otherwise <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>
+ is called.
+ </p>
+<p>
+ If the choice of arguments would give a negative scale, <a class="link" href="../../main_overview/error_handling.html#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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,98 @@
+<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.77.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_dist_ref_dists">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist.dist_ref.dists"></a><a class="link" href="dists.html" title="Distributions">Distributions</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="dists/bernoulli_dist.html">Bernoulli
+ Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/beta_dist.html">Beta
+ Distribution</a></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"><a href="dists/exp_dist.html">Exponential
+ Distribution</a></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"><a href="dists/laplace_dist.html">Laplace
+ Distribution</a></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"><a href="dists/poisson_dist.html">Poisson
+ Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/rayleigh.html">Rayleigh
+ Distribution</a></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"><a href="dists/uniform_dist.html">Uniform
+ Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/weibull_dist.html">Weibull
+ 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/bernoulli_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,350 @@
+<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.77.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_dist_ref_dists_bernoulli_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist"></a><a class="link" href="bernoulli_dist.html" title="Bernoulli Distribution">Bernoulli
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">bernoulli</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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.dist_ref.dists.bernoulli_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.member_functions"></a></span><a class="link" href="bernoulli_dist.html#math_toolkit.dist.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.dist_ref.dists.bernoulli_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.non_member_accessors"></a></span><a class="link" href="bernoulli_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.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.dist_ref.dists.bernoulli_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.accuracy"></a></span><a class="link" href="bernoulli_dist.html#math_toolkit.dist.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.dist_ref.dists.bernoulli_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.implementation"></a></span><a class="link" href="bernoulli_dist.html#math_toolkit.dist.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 &lt;= (1-p) 0 else 1
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile from the complement
+ </p>
+ </td>
+<td>
+ <p>
+ if x &lt;= (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 &lt; 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.dist_ref.dists.bernoulli_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.references"></a></span><a class="link" href="bernoulli_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/beta_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/beta_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,618 @@
+<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.77.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_dist_ref_dists_beta_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.beta_dist"></a><a class="link" href="beta_dist.html" title="Beta Distribution">Beta
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</span>
+<span class="keyword">class</span> <span class="identifier">beta_distribution</span><span class="special">;</span>
+
+<span class="comment">// typedef beta_distribution&lt;double&gt; 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">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &amp; 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;&#945;,&#946;) = x<sup>&#945; - 1</sup> (1 - x)<sup>&#946; -1</sup> / B(&#945;, &#946;)
+ </p>
+<p>
+ where B(&#945;, &#946;) 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="../../../special/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 &#945; = &#946; = 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 &#945; = &#946; = 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 &#945; __space and &#946; __space are &lt; 1, then the pdf is U-shaped. If &#945; !=
+ &#946;, 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.dist_ref.dists.beta_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.beta_dist.member_functions"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.member_functions">Member
+ Functions</a>
+ </h5>
+<h6>
+<a name="math_toolkit.dist.dist_ref.dists.beta_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.beta_dist.constructor"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist.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 &gt; 0,otherwise <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>
+ is called. Note that technically the beta distribution is defined for
+ alpha,beta &gt;= 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">&lt;&gt;</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.dist_ref.dists.beta_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.beta_dist.parameter_accessors"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist.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">&lt;&gt;</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.dist_ref.dists.beta_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.beta_dist.parameter_estimators"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.parameter_estimators">Parameter
+ Estimators</a>
+ </h5>
+<p>
+ Two pairs of parameter estimators are provided.
+ </p>
+<p>
+ One estimates either &#945; __space or &#946; __space from presumed-known mean and
+ variance.
+ </p>
+<p>
+ The other pair estimates either &#945; __space or &#946; __space from the cdf and x.
+ </p>
+<p>
+ It is also possible to estimate &#945; __space and &#946; __space from 'known' mode
+ &amp; 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 &#945; &#160; 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 &#946; &#160; 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 &#945; &#160; that gives: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">beta_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</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 &#946; &#160; that gives: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">beta_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</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.dist_ref.dists.beta_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.beta_dist.non_member_accessor_functions"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.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.dist_ref.dists.beta_dist.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.beta_dist.applications"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist.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.dist_ref.dists.beta_dist.h6"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.beta_dist.related_distributions"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.related_distributions">Related
+ distributions</a>
+ </h5>
+<p>
+ The beta distribution with both &#945; __space and &#946; = 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 &#945; __space and &#946; __space are
+ integers.
+ </p>
+<p>
+ With integer values of &#945; __space and &#946; __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.dist_ref.dists.beta_dist.h7"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.beta_dist.accuracy"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.accuracy">Accuracy</a>
+ </h5>
+<p>
+ This distribution is implemented using the <a class="link" href="../../../special/sf_beta/beta_function.html" title="Beta">beta
+ functions</a> <a class="link" href="../../../special/sf_beta/beta_function.html" title="Beta">beta</a>
+ and <a class="link" href="../../../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">incomplete
+ beta functions</a> <a class="link" href="../../../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+ and <a class="link" href="../../../special/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.dist_ref.dists.beta_dist.h8"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.beta_dist.implementation"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist.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 &#945; &#160; and &#946;, <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;&#945;,&#946;) = x<sup>&#945; - 1</sup> (1 - x)<sup>&#946; -1</sup> / B(&#945;, &#946;)
+ </p>
+ <p>
+ Implemented using <a class="link" href="../../../special/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="../../../special/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="../../../special/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="../../../special/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="../../../special/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="../../../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>,
+ and <a class="link" href="../../../special/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.dist_ref.dists.beta_dist.h9"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.beta_dist.references"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/binomial_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,911 @@
+<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.77.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_dist_ref_dists_binomial_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.binomial_dist"></a><a class="link" href="binomial_dist.html" title="Binomial Distribution">Binomial
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">binomial</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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="../../../policy/pol_overview.html" title="Policy Overview">Policies</a>.
+ It is strongly recommended that you read the tutorial <a class="link" href="../../../policy/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="../../../policy/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.dist_ref.dists.binomial_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.member_functions"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.member_functions">Member
+ Functions</a>
+ </h5>
+<h6>
+<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.construct"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.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">&lt;=</span>
+ <span class="identifier">p</span> <span class="special">&lt;=</span>
+ <span class="number">1</span></code>, and <code class="computeroutput"><span class="identifier">n</span>
+ <span class="special">&gt;=</span> <span class="number">0</span></code>,
+ otherwise calls <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<h6>
+<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.accessors"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.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.dist_ref.dists.binomial_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.lower_bound_on_the_success_fraction"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.lower_bound_on_the_success_fraction">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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.binomial_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.upper_bound_on_the_success_fraction"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.upper_bound_on_the_success_fraction">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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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 &#945;, then you pass &#945;/2 to these functions.
+ </p>
+<p>
+ So for example a two sided 95% confidence interval would be obtained
+ by passing &#945; = 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.dist_ref.dists.binomial_dist.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_number_of_trials_required_for_a_certain_number_of_successes"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_number_of_trials_required_for_a_certain_number_of_successes">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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.binomial_dist.h6"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_maximum_number_of_trials_to_ensure_no_more_than_a_certain_number_of_successes"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_maximum_number_of_trials_to_ensure_no_more_than_a_certain_number_of_successes">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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.binomial_dist.h7"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.non_member_accessors"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.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">&lt;=</span> <span class="identifier">k</span> <span class="special">&lt;=</span> <span class="identifier">N</span></code>, otherwise a <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.binomial_dist.meaning_of_the_non_member_accessors"></a><p class="title"><b>Table&#160;13.&#160;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.dist.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.dist.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.dist.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.dist.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.dist.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.dist_ref.dists.binomial_dist.h8"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.examples"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.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.dist_ref.dists.binomial_dist.h9"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.accuracy"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.accuracy">Accuracy</a>
+ </h5>
+<p>
+ This distribution is implemented using the incomplete beta functions
+ <a class="link" href="../../../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+ and <a class="link" href="../../../special/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.dist_ref.dists.binomial_dist.h10"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.implementation"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.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="../../../special/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="../../../special/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>
+ <p>
+</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="../../../special/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>
+ </p>
+ <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="../../../special/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="../../../toolkit/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="../../../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a>,
+ <a class="link" href="../../../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>,
+ and <a class="link" href="../../../special/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.dist_ref.dists.binomial_dist.h11"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.references"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/cauchy_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,300 @@
+<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.77.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_dist_ref_dists_cauchy_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.cauchy_dist"></a><a class="link" href="cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy-Lorentz
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">cauchy</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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> &#160; is the location of the peak of the distribution
+ (the mode of the distribution), while the scale parameter &#947; &#160; 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.dist_ref.dists.cauchy_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.member_functions"></a></span><a class="link" href="cauchy_dist.html#math_toolkit.dist.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 &gt; 0, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.cauchy_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.non_member_accessors"></a></span><a class="link" href="cauchy_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ Note however that the Cauchy distribution does not have a mean, standard
+ deviation, etc. See <a class="link" href="../../../policy/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.dist.mean">mean</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>, <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>
+ and <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>
+ will all return a <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.cauchy_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.accuracy"></a></span><a class="link" href="cauchy_dist.html#math_toolkit.dist.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.dist_ref.dists.cauchy_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.implementation"></a></span><a class="link" href="cauchy_dist.html#math_toolkit.dist.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,
+ &#947; &#160; 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 / (&#960; * &#947; * (1 + ((x - x<sub>0 </sub>) / &#947;)<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)/&#960;
+ </p>
+ <p>
+ But that suffers from cancellation error as x -&gt; -&#8734;. So recall
+ that for <code class="computeroutput"><span class="identifier">x</span> <span class="special">&lt;</span> <span class="number">0</span></code>:
+ </p>
+ <p>
+ atan(x) = -&#960;/2 - atan(1/x)
+ </p>
+ <p>
+ Substituting into the above we get:
+ </p>
+ <p>
+ p = -atan(1/x) ; x &lt; 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>) / &#947; &#160; 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> &#177; &#947; &#160; / tan(&#960; * 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.dist_ref.dists.cauchy_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.references"></a></span><a class="link" href="cauchy_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/chi_squared_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,406 @@
+<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.77.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_dist_ref_dists_chi_squared_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist"></a><a class="link" href="chi_squared_dist.html" title="Chi Squared Distribution">Chi
+ Squared Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">chi_squared</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &#967;<sub>i</sub> &#160; are &#957; &#160;
+independent, normally distributed random
+ variables with means &#956;<sub>i</sub> &#160; and variances &#963;<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 &#957; &#160; that specifies the number of degrees of freedom.
+ The following graph illustrates how the distribution changes for different
+ values of &#957;:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../../graphs/chi_squared_pdf.png" align="middle"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.member_functions"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist.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 &gt; 0, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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">&gt;</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.dist_ref.dists.chi_squared_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.non_member_accessors"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ (We have followed the usual restriction of the mode to degrees of freedom
+ &gt;= 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, +&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.examples"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist.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.dist_ref.dists.chi_squared_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.accuracy"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist.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="../../../special/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.dist_ref.dists.chi_squared_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.implementation"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist.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="../../../special/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="../../../special/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="../../../special/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="../../../special/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="../../../special/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 &gt;= 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.dist_ref.dists.chi_squared_dist.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.references"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/exp_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/exp_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,324 @@
+<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.77.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_dist_ref_dists_exp_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.exp_dist"></a><a class="link" href="exp_dist.html" title="Exponential Distribution">Exponential
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">exponential</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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.dist_ref.dists.exp_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.exp_dist.member_functions"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist.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 &gt; 0, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.exp_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.exp_dist.non_member_accessors"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [0, +&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.exp_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.exp_dist.accuracy"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist.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.dist_ref.dists.exp_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.exp_dist.implementation"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.implementation">Implementation</a>
+ </h5>
+<p>
+ In the following table &#955; 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 = &#955; * exp(-&#955; * x)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: p = 1 - exp(-x * &#955;) = -expm1(-x * &#955;)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: q = exp(-x * &#955;)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = -log(1-p) / &#955; = -log1p(-p) / &#955;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile from the complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = -log(q) / &#955;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mean
+ </p>
+ </td>
+<td>
+ <p>
+ 1/&#955;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ standard deviation
+ </p>
+ </td>
+<td>
+ <p>
+ 1/&#955;
+ </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.dist_ref.dists.exp_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.exp_dist.references"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist.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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/extreme_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,326 @@
+<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.77.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_dist_ref_dists_extreme_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.extreme_dist"></a><a class="link" href="extreme_dist.html" title="Extreme Value Distribution">Extreme
+ Value Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">extreme_value</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &amp; 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.dist_ref.dists.extreme_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.extreme_dist.member_functions"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist.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">&gt;</span>
+ <span class="number">0</span></code>, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.extreme_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.extreme_dist.non_member_accessors"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random parameter is [-&#8734;, +&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.extreme_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.extreme_dist.accuracy"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist.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.dist_ref.dists.extreme_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.extreme_dist.implementation"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/f_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/f_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,433 @@
+<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.77.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_dist_ref_dists_f_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.f_dist"></a><a class="link" href="f_dist.html" title="F Distribution">F Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">fisher_f</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&amp;</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</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 &#967;<sup>2</sup><sub>m</sub> &#160; and &#967;<sup>2</sup><sub>n</sub> &#160; 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> &#160; = (&#967;<sup>2</sup><sub>n</sub> &#160; / n) / (&#967;<sup>2</sup><sub>m</sub> &#160; / m)
+ </p>
+<p>
+ Is distributed over the range [0, &#8734;] 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.dist_ref.dists.f_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.f_dist.member_functions"></a></span><a class="link" href="f_dist.html#math_toolkit.dist.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">&amp;</span> <span class="identifier">df1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</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="../../../main_overview/error_handling.html#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.dist_ref.dists.f_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.f_dist.non_member_accessors"></a></span><a class="link" href="f_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [0, +&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.f_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.f_dist.examples"></a></span><a class="link" href="f_dist.html#math_toolkit.dist.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.dist_ref.dists.f_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.f_dist.accuracy"></a></span><a class="link" href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.accuracy">Accuracy</a>
+ </h5>
+<p>
+ The normal distribution is implemented in terms of the <a class="link" href="../../../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">incomplete
+ beta function</a> and its <a class="link" href="../../../special/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.dist_ref.dists.f_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.f_dist.implementation"></a></span><a class="link" href="f_dist.html#math_toolkit.dist.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="../../../special/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="../../../special/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 &gt; 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="../../../special/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="../../../special/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="../../../special/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 &gt; 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="../../../special/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="../../../special/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="../../../special/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 &lt; 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="../../../special/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="../../../special/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="../../../special/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="../../../special/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="../../../special/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/gamma_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,367 @@
+<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.77.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_dist_ref_dists_gamma_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.gamma_dist"></a><a class="link" href="gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma
+ (and Erlang) Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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
+ <a href="http://en.wikipedia.org/wiki/Erlang_distribution" target="_top">Erlang
+ distribution</a>. Since this can be produced by ensuring that the
+ shape parameter has an integer value &gt; 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>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">gamma_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">gamma</span><span class="special">;</span></pre>
+<p>
+ </p>
+<p>
+ Instead if you want a double precision gamma distribution you can write
+ </p>
+<p>
+</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">&lt;&gt;</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>
+<p>
+ </p>
+</td></tr>
+</table></div>
+<p>
+ For shape parameter <span class="emphasis"><em>k</em></span> and scale parameter &#952; &#160; 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 &#945; &#160;= k and
+ &#946; &#160;= 1 / &#952;, 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.dist_ref.dists.gamma_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.gamma_dist.member_functions"></a></span><a class="link" href="gamma_dist.html#math_toolkit.dist.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="../../../main_overview/error_handling.html#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.dist_ref.dists.gamma_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.gamma_dist.non_member_accessors"></a></span><a class="link" href="gamma_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [0,+&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.gamma_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.gamma_dist.accuracy"></a></span><a class="link" href="gamma_dist.html#math_toolkit.dist.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="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+ and <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>
+ and their inverses <a class="link" href="../../../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+ and <a class="link" href="../../../special/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.dist_ref.dists.gamma_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.gamma_dist.implementation"></a></span><a class="link" href="gamma_dist.html#math_toolkit.dist.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, &#952; &#160; 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="../../../special/sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">gamma_p_derivative</a>(k,
+ x / &#952;) / &#952;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: p = <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>(k,
+ x / &#952;)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: q = <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>(k,
+ x / &#952;)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = &#952; &#160;* <a class="link" href="../../../special/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 = &#952; &#160;* <a class="link" href="../../../special/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&#952;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ variance
+ </p>
+ </td>
+<td>
+ <p>
+ k&#952;<sup>2</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mode
+ </p>
+ </td>
+<td>
+ <p>
+ (k-1)&#952; &#160; for <span class="emphasis"><em>k&gt;1</em></span> otherwise a <a class="link" href="../../../main_overview/error_handling.html#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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/geometric_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,855 @@
+<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.77.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_dist_ref_dists_geometric_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.geometric_dist"></a><a class="link" href="geometric_dist.html" title="Geometric Distribution">Geometric
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">geometric</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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>
+ &#8192;&#8192; 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&#8202;&#775; &#160;. 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>
+ &#8192;&#8192; (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.dist_ref.dists.geometric_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.related_distributions"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.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
+ &#8192;&#8192; <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="../../../policy/pol_overview.html" title="Policy Overview">Policies</a>.
+ It is strongly recommended that you read the tutorial <a class="link" href="../../../policy/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="../../../policy/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.dist_ref.dists.geometric_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.member_functions"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.dist_ref.dists.geometric_dist.member_functions">Member
+ Functions</a>
+ </h5>
+<h6>
+<a name="math_toolkit.dist.dist_ref.dists.geometric_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.constructor"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.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">&lt;=</span>
+ <span class="identifier">p</span> <span class="special">&lt;=</span>
+ <span class="number">1</span></code>.
+ </p>
+<h6>
+<a name="math_toolkit.dist.dist_ref.dists.geometric_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.accessors"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.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 &lt;= p &lt;= 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.dist_ref.dists.geometric_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.lower_bound_on_success_fraction_parameter__emphasis_p__emphasis_"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.dist_ref.dists.geometric_dist.lower_bound_on_success_fraction_parameter__emphasis_p__emphasis_">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 &lt;= alpha &lt;= 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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.geometric_dist.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.upper_bound_on_success_fraction_parameter_p"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.dist_ref.dists.geometric_dist.upper_bound_on_success_fraction_parameter_p">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 &lt;= alpha &lt;= 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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.geometric_dist.h6"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.estimating_number_of_trials_to_ensure_at_least_a_certain_number_of_failures"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.dist_ref.dists.geometric_dist.estimating_number_of_trials_to_ensure_at_least_a_certain_number_of_failures">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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.geometric_dist.h7"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.estimating_number_of_trials_to_ensure_a_maximum_number_of_failures_or_less"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.dist_ref.dists.geometric_dist.estimating_number_of_trials_to_ensure_a_maximum_number_of_failures_or_less">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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.geometric_dist.h8"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.non_member_accessors"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.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.dist_ref.dists.geometric_dist.meaning_of_the_non_member_accessors_"></a><p class="title"><b>Table&#160;14.&#160;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.dist.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>
+ <p>
+</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>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="../nmp.html#math.dist.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>
+ <p>
+</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>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="../nmp.html#math.dist.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>
+ <p>
+</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>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="../nmp.html#math.dist.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>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="../nmp.html#math.dist.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>
+<p>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.dist.dist_ref.dists.geometric_dist.h9"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.accuracy"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.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.dist_ref.dists.geometric_dist.h10"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.geometric_dist.implementation"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist.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&#178;
+ </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)/&#8730;q
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis
+ </p>
+ </td>
+<td>
+ <p>
+ 9+p&#178;/q
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis excess
+ </p>
+ </td>
+<td>
+ <p>
+ 6 +p&#178;/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/hypergeometric_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,334 @@
+<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.77.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_dist_ref_dists_hypergeometric_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.hypergeometric_dist"></a><a class="link" href="hypergeometric_dist.html" title="Hypergeometric Distribution">Hypergeometric
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</span>
+<span class="keyword">class</span> <span class="identifier">hypergeometric_distribution</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;&gt;</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.dist_ref.dists.hypergeometric_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.hypergeometric_dist.member_functions"></a></span><a class="link" href="hypergeometric_dist.html#math_toolkit.dist.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.dist_ref.dists.hypergeometric_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.hypergeometric_dist.non_member_accessors"></a></span><a class="link" href="hypergeometric_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.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="../../../main_overview/error_handling.html#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="../../../policy/pol_overview.html" title="Policy Overview">Policies</a>.
+ It is strongly recommended that you read the tutorial <a class="link" href="../../../policy/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="../../../policy/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="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.dist_ref.dists.hypergeometric_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.hypergeometric_dist.accuracy"></a></span><a class="link" href="hypergeometric_dist.html#math_toolkit.dist.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">&lt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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">&lt;</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 &lt; 20 epsilon. This
+ takes care of N up to 104729.
+ </p>
+<p>
+ For <code class="computeroutput"><span class="identifier">N</span> <span class="special">&gt;</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 &gt;= 10<sup>15</sup>.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.hypergeometric_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.hypergeometric_dist.testing"></a></span><a class="link" href="hypergeometric_dist.html#math_toolkit.dist.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.dist_ref.dists.hypergeometric_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.hypergeometric_dist.implementation"></a></span><a class="link" href="hypergeometric_dist.html#math_toolkit.dist.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">&lt;</span> <span class="identifier">max_factorial</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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 &gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/inverse_chi_squared_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,473 @@
+<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.77.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_dist_ref_dists_inverse_chi_squared_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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 &#963;&#178; (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 &#957; (degrees_of_freedom) shape (&#945;) and scale (&#946;) where
+ </p>
+<p>
+ &#8192;&#8192; &#945;= &#957; /2 and &#946; = &#189;.
+ </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>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">inverse_chi_squared_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">inverse_chi_squared</span><span class="special">;</span></pre>
+<p>
+ </p>
+<p>
+ If you want a <code class="computeroutput"><span class="keyword">double</span></code> precision
+ inverse_chi_squared distribution you can use
+ </p>
+<p>
+</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">&lt;&gt;</span></pre>
+<p>
+ </p>
+<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 &#957;, the (<span class="bold"><strong>unscaled</strong></span>)
+ inverse chi_squared distribution is defined by the probability density
+ function (PDF):
+ </p>
+<p>
+ &#8192;&#8192; f(x;&#957;) = 2<sup>-&#957;/2</sup> x<sup>-&#957;/2-1</sup> e<sup>-1/2x</sup> / &#915;(&#957;/2)
+ </p>
+<p>
+ and Cumulative Density Function (CDF)
+ </p>
+<p>
+ &#8192;&#8192; F(x;&#957;) = &#915;(&#957;/2, 1/2x) / &#915;(&#957;/2)
+ </p>
+<p>
+ For degrees of freedom parameter &#957; and scale parameter &#958;, the <span class="bold"><strong>scaled</strong></span> inverse chi_squared distribution is defined
+ by the probability density function (PDF):
+ </p>
+<p>
+ &#8192;&#8192; f(x;&#957;, &#958;) = (&#958;&#957;/2)<sup>&#957;/2</sup> e<sup>-&#957;&#958;/2x</sup> x<sup>-1-&#957;/2</sup> / &#915;(&#957;/2)
+ </p>
+<p>
+ and Cumulative Density Function (CDF)
+ </p>
+<p>
+ &#8192;&#8192; F(x;&#957;, &#958;) = &#915;(&#957;/2, &#957;&#958;/2x) / &#915;(&#957;/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 &#957; and &#958;:
+ </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.dist_ref.dists.inverse_chi_squared_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_chi_squared_dist.member_functions"></a></span><a class="link" href="inverse_chi_squared_dist.html#math_toolkit.dist.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 &#957; 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 &#957; parameter is greater than zero,
+ otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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 &#957; 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 &#958; parameter of this distribution.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.inverse_chi_squared_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_chi_squared_dist.non_member_accessors"></a></span><a class="link" href="inverse_chi_squared_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variate is [0,+&#8734;].
+ </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.dist_ref.dists.inverse_chi_squared_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_chi_squared_dist.accuracy"></a></span><a class="link" href="inverse_chi_squared_dist.html#math_toolkit.dist.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="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+ and <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>
+ and their inverses <a class="link" href="../../../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+ and <a class="link" href="../../../special/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, &gt;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.dist_ref.dists.inverse_chi_squared_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_chi_squared_dist.implementation"></a></span><a class="link" href="inverse_chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.inverse_chi_squared_dist.implementation">Implementation</a>
+ </h5>
+<p>
+ In the following table &#957; is the degrees of freedom parameter and &#958; 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 &#945; for shape and &#946; for scale are
+ used for the inverse gamma function: &#945; = &#957;/2 and &#946; = &#957; * &#958;/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="../../../special/sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">gamma_p_derivative</a>(&#945;,
+ &#946;/ x, &#946;) / x * x
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: p = <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>(&#945;,
+ &#946; / x)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: q = <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>(&#945;,
+ &#946; / x)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = &#946; &#160;/ <a class="link" href="../../../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>(&#945;,
+ p)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile from the complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = &#945; &#160;/ <a class="link" href="../../../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>(&#945;,
+ q)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mode
+ </p>
+ </td>
+<td>
+ <p>
+ &#957; * &#958; / (&#957; + 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>
+ &#957;&#958; / (&#957; - 2) for &#957; &gt; 2, else a <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ variance
+ </p>
+ </td>
+<td>
+ <p>
+ 2 &#957;&#178; &#958;&#178; / ((&#957; -2)&#178; (&#957; -4)) for &#957; &gt;4, else a <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ skewness
+ </p>
+ </td>
+<td>
+ <p>
+ 4 &#8730;2 &#8730;(&#957;-4) /(&#957;-6) for &#957; &gt;6, else a <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis_excess
+ </p>
+ </td>
+<td>
+ <p>
+ 12 * (5&#957; - 22) / ((&#957; - 6) * (&#957; - 8)) for &#957; &gt;8, else a <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis
+ </p>
+ </td>
+<td>
+ <p>
+ 3 + 12 * (5&#957; - 22) / ((&#957; - 6) * (&#957;-8)) for &#957; &gt;8, else a <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.inverse_chi_squared_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_chi_squared_dist.references"></a></span><a class="link" href="inverse_chi_squared_dist.html#math_toolkit.dist.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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/inverse_gamma_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,370 @@
+<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.77.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_dist_ref_dists_inverse_gamma_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.inverse_gamma_dist"></a><a class="link" href="inverse_gamma_dist.html" title="Inverse Gamma Distribution">Inverse
+ Gamma Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">inverse_gamma_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">gamma</span><span class="special">;</span></pre>
+<p>
+ </p>
+<p>
+ If you want a <code class="computeroutput"><span class="keyword">double</span></code> precision
+ gamma distribution you can use
+ </p>
+<p>
+</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">&lt;&gt;</span></pre>
+<p>
+ </p>
+<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 &#945; and scale parameter &#946;, it is defined by the probability
+ density function (PDF):
+ </p>
+<p>
+ &#8192;&#8192; f(x;&#945;, &#946;) = &#946;<sup>&#945;</sup> * (1/x) <sup>&#945;+1</sup> exp(-&#946;/x) / &#915;(&#945;)
+ </p>
+<p>
+ and cumulative density function (CDF)
+ </p>
+<p>
+ &#8192;&#8192; F(x;&#945;, &#946;) = &#915;(&#945;, &#946;/x) / &#915;(&#945;)
+ </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.dist_ref.dists.inverse_gamma_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_gamma_dist.member_functions"></a></span><a class="link" href="inverse_gamma_dist.html#math_toolkit.dist.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 &#945; and scale &#946;.
+ </p>
+<p>
+ Requires that the shape and scale parameters are greater than zero, otherwise
+ calls <a class="link" href="../../../main_overview/error_handling.html#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 &#945; 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 &#946; scale parameter of this inverse gamma distribution.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.inverse_gamma_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_gamma_dist.non_member_accessors"></a></span><a class="link" href="inverse_gamma_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variate is [0,+&#8734;].
+ </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.dist_ref.dists.inverse_gamma_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_gamma_dist.accuracy"></a></span><a class="link" href="inverse_gamma_dist.html#math_toolkit.dist.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="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+ and <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>
+ and their inverses <a class="link" href="../../../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+ and <a class="link" href="../../../special/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,
+ &gt;14 decimal digits accuracy for 64-bit double.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.inverse_gamma_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_gamma_dist.implementation"></a></span><a class="link" href="inverse_gamma_dist.html#math_toolkit.dist.dist_ref.dists.inverse_gamma_dist.implementation">Implementation</a>
+ </h5>
+<p>
+ In the following table &#945; is the shape parameter of the distribution, &#945; &#160; 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="../../../special/sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">gamma_p_derivative</a>(&#945;,
+ &#946;/ x, &#946;) / x * x
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: p = <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>(&#945;,
+ &#946; / x)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: q = <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>(&#945;,
+ &#946; / x)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = &#946; &#160;/ <a class="link" href="../../../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>(&#945;,
+ p)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile from the complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = &#945; &#160;/ <a class="link" href="../../../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>(&#945;,
+ q)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mode
+ </p>
+ </td>
+<td>
+ <p>
+ &#946; / (&#945; + 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>
+ &#946; / (&#945; - 1) for &#945; &gt; 1, else a <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ variance
+ </p>
+ </td>
+<td>
+ <p>
+ (&#946; * &#946;) / ((&#945; - 1) * (&#945; - 1) * (&#945; - 2)) for &#945; &gt;2, else a <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ skewness
+ </p>
+ </td>
+<td>
+ <p>
+ 4 * sqrt (&#945; -2) / (&#945; -3) for &#945; &gt;3, else a <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis_excess
+ </p>
+ </td>
+<td>
+ <p>
+ (30 * &#945; - 66) / ((&#945;-3)*(&#945; - 4)) for &#945; &gt;4, else a <a class="link" href="../../../main_overview/error_handling.html#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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/inverse_gaussian_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,443 @@
+<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.77.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_dist_ref_dists_inverse_gaussian_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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>
+<p>
+</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">&lt;&gt;</span></pre>
+<p>
+ </p>
+<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 &#956; and scale (also called precision) parameter &#955;, and
+ random variate x, the inverse_gaussian distribution is defined by the
+ probability density function (PDF):
+ </p>
+<p>
+ &#8192;&#8192; f(x;&#956;, &#955;) = &#8730;(&#955;/2&#960;x<sup>3</sup>) e<sup>-&#955;(x-&#956;)&#178;/2&#956;&#178;x</sup>
+ </p>
+<p>
+ and Cumulative Density Function (CDF):
+ </p>
+<p>
+ &#8192;&#8192; F(x;&#956;, &#955;) = &#934;{&#8730;(&#955;<span class="emphasis"><em>x) (x</em></span>&#956;-1)} + e<sup>2&#956;/&#955;</sup> &#934;{-&#8730;(&#955;/&#956;) (1+x/&#956;)}
+ </p>
+<p>
+ where &#934; 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 &#956; and &#955;:
+ </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 (&#956; and &#955;) are replaced
+ by their ratio &#966; = &#955;/&#956; and by 1/&#956;: 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 &#956; is unity) is also provided.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist.member_functions"></a></span><a class="link" href="inverse_gaussian_dist.html#math_toolkit.dist.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 &#956; mean, and scale &#955;, with
+ both default values 1.
+ </p>
+<p>
+ Requires that both the mean &#956; parameter and scale &#955; are greater than zero,
+ otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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 &#956; 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 &#955; parameter of this distribution.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist.non_member_accessors"></a></span><a class="link" href="inverse_gaussian_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variate is [0,+&#8734;).
+ </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.dist_ref.dists.inverse_gaussian_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist.accuracy"></a></span><a class="link" href="inverse_gaussian_dist.html#math_toolkit.dist.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 &#934; :
+ 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, &gt;14 decimal digits accuracy for 64-bit double.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist.implementation"></a></span><a class="link" href="inverse_gaussian_dist.html#math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist.implementation">Implementation</a>
+ </h5>
+<p>
+ In the following table &#956; is the mean parameter and &#955; 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 &#956; for shape and &#955; 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>
+ &#8730;(&#955;/ 2&#960;x<sup>3</sup>) e<sup>-&#955;(x - &#956;)&#178;/ 2&#956;&#178;x</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf
+ </p>
+ </td>
+<td>
+ <p>
+ &#934;{&#8730;(&#955;<span class="emphasis"><em>x) (x</em></span>&#956;-1)} + e<sup>2&#956;/&#955;</sup> &#934;{-&#8730;(&#955;/&#956;) (1+x/&#956;)}
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ using complement of &#934; 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>
+ &#956; {&#8730;(1+9&#956;&#178;/4&#955;&#178;)&#178; - 3&#956;/2&#955;}
+ </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>
+ &#956;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ variance
+ </p>
+ </td>
+<td>
+ <p>
+ &#956;&#179;/&#955;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ skewness
+ </p>
+ </td>
+<td>
+ <p>
+ 3 &#8730; (&#956;/&#955;)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis_excess
+ </p>
+ </td>
+<td>
+ <p>
+ 15&#956;/&#955;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis
+ </p>
+ </td>
+<td>
+ <p>
+ 12&#956;/&#955;
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist.references"></a></span><a class="link" href="inverse_gaussian_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/laplace_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,356 @@
+<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.77.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_dist_ref_dists_laplace_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.laplace_dist"></a><a class="link" href="laplace_dist.html" title="Laplace Distribution">Laplace
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">laplace</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &#956; &#160; and scale parameter &#963; &#160; 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 &#956; &#160; and &#963; &#160; on the
+ PDF. Note that the range of the random variable remains [-&#8734;,+&#8734;] 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.dist_ref.dists.laplace_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.laplace_dist.member_functions"></a></span><a class="link" href="laplace_dist.html#math_toolkit.dist.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="../../../main_overview/error_handling.html#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.dist_ref.dists.laplace_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.laplace_dist.non_member_accessors"></a></span><a class="link" href="laplace_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [-&#8734;,+&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.laplace_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.laplace_dist.accuracy"></a></span><a class="link" href="laplace_dist.html#math_toolkit.dist.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.dist_ref.dists.laplace_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.laplace_dist.implementation"></a></span><a class="link" href="laplace_dist.html#math_toolkit.dist.dist_ref.dists.laplace_dist.implementation">Implementation</a>
+ </h5>
+<p>
+ In the following table &#956; is the location parameter of the distribution,
+ &#963; 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-&#956;) / &#963;</sup> / (2 * &#963;)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relations:
+ </p>
+ <p>
+ x &lt; &#956; : p = e<sup>(x-&#956;)/&#963; </sup> / &#963;
+ </p>
+ <p>
+ x &gt;= &#956; : p = 1 - e<sup>(&#956;-x)/&#963; </sup> / &#963;
+
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation:
+ </p>
+ <p>
+ -x &lt; &#956; : q = e<sup>(-x-&#956;)/&#963; </sup> / &#963;
+ </p>
+ <p>
+ -x &gt;= &#956; : q = 1 - e<sup>(&#956;+x)/&#963; </sup> / &#963;
+
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relations:
+ </p>
+ <p>
+ p &lt; 0.5 : x = &#956; + &#963; * log(2*p)
+ </p>
+ <p>
+ p &gt;= 0.5 : x = &#956; - &#963; * log(2-2*p)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile from the complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation:
+ </p>
+ <p>
+ q &gt; 0.5: x = &#956; + &#963;*log(2-2*q)
+ </p>
+ <p>
+ q &lt;=0.5: x = &#956; - &#963;*log( 2*q )
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mean
+ </p>
+ </td>
+<td>
+ <p>
+ &#956;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ variance
+ </p>
+ </td>
+<td>
+ <p>
+ 2 * &#963;<sup>2</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mode
+ </p>
+ </td>
+<td>
+ <p>
+ &#956;
+ </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.dist_ref.dists.laplace_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.laplace_dist.references"></a></span><a class="link" href="laplace_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/logistic_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,292 @@
+<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.77.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_dist_ref_dists_logistic_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.logistic_dist"></a><a class="link" href="logistic_dist.html" title="Logistic Distribution">Logistic
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</span>
+<span class="keyword">class</span> <span class="identifier">logistic_distribution</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;&gt;</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.dist_ref.dists.logistic_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.logistic_dist.member_functions"></a></span><a class="link" href="logistic_dist.html#math_toolkit.dist.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">&gt;</span>
+ <span class="number">0</span></code>, otherwise a <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.logistic_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.logistic_dist.non_member_accessors"></a></span><a class="link" href="logistic_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [-[max_value], +[min_value]]. However,
+ the pdf and cdf support inputs of +&#8734; and -&#8734;
+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="../../../main_overview/error_handling.html#overflow_error">overflow_error</a>
+ and -<a class="link" href="../../../main_overview/error_handling.html#overflow_error">overflow_error</a>, while the
+ complement quantile function returns the result of -<a class="link" href="../../../main_overview/error_handling.html#overflow_error">overflow_error</a>
+ and +<a class="link" href="../../../main_overview/error_handling.html#overflow_error">overflow_error</a> respectively.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.logistic_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.logistic_dist.accuracy"></a></span><a class="link" href="logistic_dist.html#math_toolkit.dist.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.dist_ref.dists.logistic_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.logistic_dist.implementation"></a></span><a class="link" href="logistic_dist.html#math_toolkit.dist.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>
+ (&#960;*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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/lognormal_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,324 @@
+<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.77.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_dist_ref_dists_lognormal_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.lognormal_dist"></a><a class="link" href="lognormal_dist.html" title="Log Normal Distribution">Log
+ Normal Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">lognormal</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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,+&#8734;]
+ 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.dist_ref.dists.lognormal_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.member_functions"></a></span><a class="link" href="lognormal_dist.html#math_toolkit.dist.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="../../../main_overview/error_handling.html#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.dist_ref.dists.lognormal_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.non_member_accessors"></a></span><a class="link" href="lognormal_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [0,+&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.accuracy"></a></span><a class="link" href="lognormal_dist.html#math_toolkit.dist.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="../../../special/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.dist_ref.dists.lognormal_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.implementation"></a></span><a class="link" href="lognormal_dist.html#math_toolkit.dist.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&lt;RealType&gt;(m,
+ s), log(x))
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: q = cdf(complement(normal_distribtion&lt;RealType&gt;(m,
+ s), log(x)))
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = exp(quantile(normal_distribtion&lt;RealType&gt;(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&lt;RealType&gt;(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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/nc_beta_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,408 @@
+<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.77.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_dist_ref_dists_nc_beta_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.nc_beta_dist"></a><a class="link" href="nc_beta_dist.html" title="Noncentral Beta Distribution">Noncentral
+ Beta Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">non_central_beta</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 = &#967;<sub>m</sub><sup>2</sup>(&#955;) / (&#967;<sub>m</sub><sup>2</sup>(&#955;) + &#967;<sub>n</sub><sup>2</sup>) where &#967;<sub>m</sub><sup>2</sup>(&#955;) is a noncentral
+ &#967;<sup>2</sup>
+random variable with <span class="emphasis"><em>m</em></span> degrees of freedom, and
+ &#967;<sub>n</sub><sup>2</sup>
+is a central &#967;<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;&#955;/2) is the discrete Poisson probablity at <span class="emphasis"><em>i</em></span>,
+ with mean &#955;/2, and I<sub>x</sub><sup>'</sup>(&#945;, &#946;) 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 &#955;:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../../graphs/nc_beta_pdf.png" align="middle"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.nc_beta_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_beta_dist.member_functions"></a></span><a class="link" href="nc_beta_dist.html#math_toolkit.dist.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 &gt; 0, b &gt; 0 and lambda &gt;= 0, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.nc_beta_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_beta_dist.non_member_accessors"></a></span><a class="link" href="nc_beta_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative
+ Distribution Function</a>, <a class="link" href="../nmp.html#math.dist.pdf">Probability
+ Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.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.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a> and <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>.
+ </p>
+<p>
+ The domain of the random variable is [0, 1].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.nc_beta_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_beta_dist.accuracy"></a></span><a class="link" href="nc_beta_dist.html#math_toolkit.dist.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="../../../backgrounders/relative_error.html#zero_error">effectively
+ zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.dist.dist_ref.dists.nc_beta_dist.errors_in_cdf_of_the_noncentral_beta"></a><p class="title"><b>Table&#160;16.&#160;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>
+ &#945;, &#946;,&#955; &lt; 200
+ </p>
+ </th>
+<th>
+ <p>
+ &#945;,&#946;,&#955; &gt; 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.dist_ref.dists.nc_beta_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_beta_dist.tests"></a></span><a class="link" href="nc_beta_dist.html#math_toolkit.dist.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.dist_ref.dists.nc_beta_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_beta_dist.implementation"></a></span><a class="link" href="nc_beta_dist.html#math_toolkit.dist.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 = &#955;/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 &amp; 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 &#955;/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="../../../toolkit/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/nc_chi_squared_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,506 @@
+<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.77.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_dist_ref_dists_nc_chi_squared_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">non_central_chi_squared</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;&amp;</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">&lt;</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">&gt;</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">&lt;</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">&gt;&amp;</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 &#957; independent, normally distributed random
+ variables with means &#956;<sub>i</sub> and variances &#963;<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: &#957; which specifies
+ the number of degrees of freedom (i.e. the number of X<sub>i</sub>), and &#955; 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 &#955; 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 &#955;:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../../graphs/nccs_pdf.png" align="middle"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist.member_functions"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist.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 &gt; 0 and lambda &gt;= 0, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span>
+ <span class="identifier">Policy</span><span class="special">&gt;(</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">&lt;</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">&gt;</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">&lt;</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">&gt;&amp;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span>
+ <span class="identifier">Policy</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span>
+ <span class="identifier">Policy</span><span class="special">&gt;(</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">&lt;</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">&gt;</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">&lt;</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">&gt;&amp;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span>
+ <span class="identifier">Policy</span><span class="special">&gt;(</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.dist_ref.dists.nc_chi_squared_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist.non_member_accessors"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [0, +&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist.examples"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist.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.dist_ref.dists.nc_chi_squared_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist.accuracy"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist.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="../../../backgrounders/relative_error.html#zero_error">effectively
+ zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist.errors_in_cdf_of_the_noncentral_chi_squared"></a><p class="title"><b>Table&#160;17.&#160;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>
+ &#957;,&#955; &lt; 200
+ </p>
+ </th>
+<th>
+ <p>
+ &#957;,&#955; &gt; 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.dist_ref.dists.nc_chi_squared_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist.tests"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist.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.dist_ref.dists.nc_chi_squared_dist.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist.implementation"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist.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(&#957;,&#955;;&#957;+&#955;) &#8776; 0.5
+ </p>
+<p>
+ and so compute the CDF when the random variable is less than &#957;+&#955;, and its
+ complement when the random variable is greater than &#957;+&#955;. 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="../../../special/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 &amp; 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 &#955;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 &#955;'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="../../../special/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="../../../special/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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/nc_f_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,408 @@
+<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.77.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_dist_ref_dists_nc_f_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.nc_f_dist"></a><a class="link" href="nc_f_dist.html" title="Noncentral F Distribution">Noncentral
+ F Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">non_central_f</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &amp; 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 &#967;<sup>2</sup>
+random variable with <span class="emphasis"><em>v1</em></span>
+ degrees of freedom and non-centrality parameter &#955;, and Y is a central
+ &#967;<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="../../../special/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 &#955;:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../../graphs/nc_f_pdf.png" align="middle"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.nc_f_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_f_dist.member_functions"></a></span><a class="link" href="nc_f_dist.html#math_toolkit.dist.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 &gt; 0, v2 &gt; 0 and lambda &gt;= 0, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.nc_f_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_f_dist.non_member_accessors"></a></span><a class="link" href="nc_f_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [0, +&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.nc_f_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_f_dist.accuracy"></a></span><a class="link" href="nc_f_dist.html#math_toolkit.dist.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.dist_ref.dists.nc_f_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_f_dist.tests"></a></span><a class="link" href="nc_f_dist.html#math_toolkit.dist.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.dist_ref.dists.nc_f_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_f_dist.implementation"></a></span><a class="link" href="nc_f_dist.html#math_toolkit.dist.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,
+ &#955;
+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;&#955;) = (v1/v2) / ((1+y)*(1+y)) * g(y/(1+y);v1/2,v2/2;&#955;)
+ </p>
+ <p>
+ where g(x; a, b; &#955;) 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; &#955;)
+ </p>
+ <p>
+ where B<sub>x</sub>(a, b; &#955;) 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; &#955;)
+ </p>
+ <p>
+ where 1 - B<sub>x</sub>(a, b; &#955;) 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; &#955;)
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ Q<sub>p</sub><sup>-1</sup>(v1/2, v2/2; &#955;)
+ </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; &#955;)
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ QC<sub>q</sub><sup>-1</sup>(v1/2, v2/2; &#955;)
+ </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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/nc_t_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,407 @@
+<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.77.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_dist_ref_dists_nc_t_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.nc_t_dist"></a><a class="link" href="nc_t_dist.html" title="Noncentral T Distribution">Noncentral
+ T Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">non_central_t</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &#948; and
+ variance 1, and let &#957; S<sup>2</sup> have a chi-squared distribution with degrees of
+ freedom &#957;. Assume that X and S<sup>2</sup> are independent. The distribution of t<sub>&#957;</sub>(&#948;)=X/S
+ is called a noncentral t distribution with degrees of freedom &#957; and noncentrality
+ parameter &#948;.
+ </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 &#957; and &#948;:
+ </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.dist_ref.dists.nc_t_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_t_dist.member_functions"></a></span><a class="link" href="nc_t_dist.html#math_toolkit.dist.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> &gt; 0 (including positive infinity)
+ and finite <span class="emphasis"><em>delta</em></span>, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.nc_t_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_t_dist.non_member_accessors"></a></span><a class="link" href="nc_t_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [-&#8734;, +&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.nc_t_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_t_dist.accuracy"></a></span><a class="link" href="nc_t_dist.html#math_toolkit.dist.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="../../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.dist.dist_ref.dists.nc_t_dist.errors_in_cdf_of_the_noncentral_t_distribution"></a><p class="title"><b>Table&#160;18.&#160;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>
+ &#957;, &#948; &lt; 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 &#948;<sup>2</sup>: consequently
+ the time taken to evaluate the CDF increases rapidly for &#948; &gt; 500,
+ likewise the accuracy decreases rapidly for very large &#948;.
+ </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">&lt;</span><span class="identifier">FPT</span><span class="special">&gt;()</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.dist_ref.dists.nc_t_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_t_dist.tests"></a></span><a class="link" href="nc_t_dist.html#math_toolkit.dist.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 &amp; 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) &#957; and/or large &#948; 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 &#957; can be +&#8734;
+when the normal distribution
+ located at &#948;
+(equivalent to the central Student's t distribution) is used
+ in place for accuracy and speed.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.nc_t_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.nc_t_dist.implementation"></a></span><a class="link" href="nc_t_dist.html#math_toolkit.dist.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 &amp; 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 &#934;(x) is the normal
+ CDF at x.
+ </p>
+<p>
+ Iteration starts at the largest of the Poisson weighting terms (at i
+ = &#948;<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 = &#8734;, 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 &#948; when &#957; is very large. The crossover
+ location appears to be when &#948;/(4&#957;) &lt; &#949;, 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 &#948;/(4&#957;), so when this term become negligible,
+ this and following terms can be ignored, leaving just Student's t distribution
+ centred on &#948;.
+ </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="../../../toolkit/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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/negative_binomial_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,901 @@
+<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.77.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_dist_ref_dists_negative_binomial_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist"></a><a class="link" href="negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+ Binomial Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">negative_binomial</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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.dist_ref.dists.negative_binomial_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.related_distributions"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.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(&#955;) = lim <sub>r &#8594; &#8734;</sub> &#160; negative_binomial(r, r / (&#955; + 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="../../../policy/pol_overview.html" title="Policy Overview">Policies</a>.
+ It is strongly recommended that you read the tutorial <a class="link" href="../../../policy/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="../../../policy/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.dist_ref.dists.negative_binomial_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.member_functions"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.member_functions">Member
+ Functions</a>
+ </h5>
+<h6>
+<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.construct"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.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">&gt;</span>
+ <span class="number">0</span></code> and <code class="computeroutput"><span class="number">0</span>
+ <span class="special">&lt;=</span> <span class="identifier">p</span>
+ <span class="special">&lt;=</span> <span class="number">1</span></code>.
+ </p>
+<h6>
+<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accessors"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.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 &lt;= p &lt;= 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 &gt; 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.dist_ref.dists.negative_binomial_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.lower_bound_on_parameter_p"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.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 &lt;= alpha &lt;= 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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.negative_binomial_dist.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.upper_bound_on_parameter_p"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.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 &lt;= alpha &lt;= 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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.negative_binomial_dist.h6"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_at_least_a_certain_number_of_failures"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_at_least_a_certain_number_of_failures">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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.negative_binomial_dist.h7"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_a_maximum_number_of_failures_or_less"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_a_maximum_number_of_failures_or_less">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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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.dist_ref.dists.negative_binomial_dist.h8"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.non_member_accessors"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.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.dist_ref.dists.negative_binomial_dist.meaning_of_the_non_member_accessors_"></a><p class="title"><b>Table&#160;15.&#160;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.dist.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>
+ <p>
+</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>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="../nmp.html#math.dist.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>
+ <p>
+</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>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="../nmp.html#math.dist.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>
+ <p>
+</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>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="../nmp.html#math.dist.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>
+ <p>
+</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>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="../nmp.html#math.dist.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>
+<p>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.h9"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accuracy"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accuracy">Accuracy</a>
+ </h5>
+<p>
+ This distribution is implemented using the incomplete beta functions
+ <a class="link" href="../../../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+ and <a class="link" href="../../../special/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.dist_ref.dists.negative_binomial_dist.h10"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.implementation"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist.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="../../../special/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&lt;RealType&gt;(k+1),
+ p) The function <a class="link" href="../../../special/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&lt;RealType&gt;(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&lt;RealType&gt;(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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/normal_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/normal_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,319 @@
+<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.77.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_dist_ref_dists_normal_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.normal_dist"></a><a class="link" href="normal_dist.html" title="Normal (Gaussian) Distribution">Normal
+ (Gaussian) Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">normal</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &#956; &#160;and standard deviation &#963; &#160;it has the PDF:
+ </p>
+<p>
+ &#160; <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>
+ &#160; <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.dist_ref.dists.normal_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.normal_dist.member_functions"></a></span><a class="link" href="normal_dist.html#math_toolkit.dist.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 &gt; 0, otherwise <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.normal_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.normal_dist.non_member_accessors"></a></span><a class="link" href="normal_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [-[max_value], +[min_value]]. However,
+ the pdf of +&#8734; and -&#8734; = 0 is also supported, and cdf at -&#8734; = 0, cdf at +&#8734; = 1,
+ and complement cdf -&#8734; = 1 and +&#8734; = 0, if RealType permits.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.normal_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.normal_dist.accuracy"></a></span><a class="link" href="normal_dist.html#math_toolkit.dist.dist_ref.dists.normal_dist.accuracy">Accuracy</a>
+ </h5>
+<p>
+ The normal distribution is implemented in terms of the <a class="link" href="../../../special/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.dist_ref.dists.normal_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.normal_dist.implementation"></a></span><a class="link" href="normal_dist.html#math_toolkit.dist.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="../../../special/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="../../../special/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="../../../special/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="../../../special/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/pareto.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/pareto.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,346 @@
+<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.77.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_dist_ref_dists_pareto">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.pareto"></a><a class="link" href="pareto.html" title="Pareto Distribution">Pareto Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">pareto</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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; &#945;, &#946;) = &#945;&#946;<sup>&#945;</sup> / x<sup>&#945;+ 1</sup>
+ </p>
+<p>
+ For shape parameter &#945; &#160; &gt; 0, and scale parameter &#946; &#160; &gt; 0. If x &lt; &#946; &#160;, 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
+ &#946;:
+ </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
+ &#945;:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../../graphs/pareto_pdf2.png" align="middle"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.pareto.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.pareto.related_distributions"></a></span><a class="link" href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.related_distributions">Related
+ distributions</a>
+ </h5>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.pareto.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.pareto.member_functions"></a></span><a class="link" href="pareto.html#math_toolkit.dist.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="../../../main_overview/error_handling.html#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.dist_ref.dists.pareto.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.pareto.non_member_accessors"></a></span><a class="link" href="pareto.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The supported domain of the random variable is [scale, &#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.pareto.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.pareto.accuracy"></a></span><a class="link" href="pareto.html#math_toolkit.dist.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="../../../special/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.dist_ref.dists.pareto.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.pareto.implementation"></a></span><a class="link" href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.implementation">Implementation</a>
+ </h5>
+<p>
+ In the following table &#945; &#160; is the shape parameter of the distribution, and
+ &#946; &#160; 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 = &#945;&#946;<sup>&#945;</sup>/x<sup>&#945; +1</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: cdf p = 1 - (&#946; &#160; / x)<sup>&#945;</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: q = 1 - p = -(&#946; &#160; / x)<sup>&#945;</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = &#946; / (1 - p)<sup>1/&#945;</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile from the complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = &#946; / (q)<sup>1/&#945;</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mean
+ </p>
+ </td>
+<td>
+ <p>
+ &#945;&#946; / (&#946; - 1)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ variance
+ </p>
+ </td>
+<td>
+ <p>
+ &#946;&#945;<sup>2</sup> / (&#946; - 1)<sup>2</sup> (&#946; - 2)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mode
+ </p>
+ </td>
+<td>
+ <p>
+ &#945;
+ </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.dist_ref.dists.pareto.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.pareto.references"></a></span><a class="link" href="pareto.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/poisson_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,326 @@
+<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.77.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_dist_ref_dists_poisson_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.poisson_dist"></a><a class="link" href="poisson_dist.html" title="Poisson Distribution">Poisson
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">poisson</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &#955; &#160;
+(events/time), and are independent
+ of the time since the last event.
+ </p>
+<p>
+ The distribution was discovered by Sim&#233; 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 &#955;.
+ </p>
+<p>
+ The following graph illustrates how the PDF varies with the parameter
+ &#955;:
+ </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="../../../policy/pol_overview.html" title="Policy Overview">Policies</a>.
+ It is strongly recommended that you read the tutorial <a class="link" href="../../../policy/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="../../../policy/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.dist_ref.dists.poisson_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.poisson_dist.member_functions"></a></span><a class="link" href="poisson_dist.html#math_toolkit.dist.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.dist_ref.dists.poisson_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.poisson_dist.non_member_accessors"></a></span><a class="link" href="poisson_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [0, &#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.poisson_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.poisson_dist.accuracy"></a></span><a class="link" href="poisson_dist.html#math_toolkit.dist.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="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+ and <a class="link" href="../../../special/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.dist_ref.dists.poisson_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.poisson_dist.implementation"></a></span><a class="link" href="poisson_dist.html#math_toolkit.dist.dist_ref.dists.poisson_dist.implementation">Implementation</a>
+ </h5>
+<p>
+ In the following table &#955; &#160; 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>-&#955;</sup> &#955;<sup>k</sup> / k!
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: p = &#915;(k+1, &#955;) / k! = <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>(k+1,
+ &#955;)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: q = <a class="link" href="../../../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>(k+1,
+ &#955;)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: k = <a class="link" href="../../../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inva</a>(&#955;,
+ p) - 1
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile from the complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: k = <a class="link" href="../../../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a>(&#955;,
+ q) - 1
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mean
+ </p>
+ </td>
+<td>
+ <p>
+ &#955;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mode
+ </p>
+ </td>
+<td>
+ <p>
+ floor (&#955;) or &#8970;&#955;&#8971;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ skewness
+ </p>
+ </td>
+<td>
+ <p>
+ 1/&#8730;&#955;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis
+ </p>
+ </td>
+<td>
+ <p>
+ 3 + 1/&#955;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis excess
+ </p>
+ </td>
+<td>
+ <p>
+ 1/&#955;
+ </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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/rayleigh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/rayleigh.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,342 @@
+<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.77.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_dist_ref_dists_rayleigh">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.rayleigh"></a><a class="link" href="rayleigh.html" title="Rayleigh Distribution">Rayleigh
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">rayleigh</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &#963;<sup>2</sup>) / &#963;<sup>2</sup>
+ </p>
+<p>
+ For sigma parameter &#963; &#160; &gt; 0, and x &gt; 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 &#963;:
+ </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.dist_ref.dists.rayleigh.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.rayleigh.related_distributions"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.related_distributions">Related
+ distributions</a>
+ </h5>
+<p>
+ The absolute value of two independent normal distributions X and Y, &#8730; (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.dist_ref.dists.rayleigh.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.rayleigh.member_functions"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist.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 &#963; <span class="emphasis"><em>sigma</em></span>.
+ </p>
+<p>
+ Requires that the &#963; parameter is greater than zero, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.rayleigh.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.rayleigh.non_member_accessors"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [0, max_value].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.rayleigh.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.rayleigh.accuracy"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist.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.dist_ref.dists.rayleigh.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.rayleigh.implementation"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.implementation">Implementation</a>
+ </h5>
+<p>
+ In the following table &#963; &#160; 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 &#963;<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) &#963;<sup>2</sup> &#160; = -<a class="link" href="../../../special/powers/expm1.html" title="expm1">expm1</a>(-x<sup>2</sup>/2)
+ &#963;<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) * &#963;<sup>2</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = sqrt(-2 * &#963; <sup>2</sup>) * log(1 - p)) = sqrt(-2
+ * &#963; <sup>2</sup>) * <a class="link" href="../../../special/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 * &#963; <sup>2</sup>) * log(q))
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mean
+ </p>
+ </td>
+<td>
+ <p>
+ &#963; * sqrt(&#960;/2)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ variance
+ </p>
+ </td>
+<td>
+ <p>
+ &#963;<sup>2</sup> * (4 - &#960;/2)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mode
+ </p>
+ </td>
+<td>
+ <p>
+ &#963;
+ </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.dist_ref.dists.rayleigh.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.rayleigh.references"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/skew_normal_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/skew_normal_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,496 @@
+<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.77.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_dist_ref_dists_skew_normal_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.skew_normal_dist"></a><a class="link" href="skew_normal_dist.html" title="Skew Normal Distribution">Skew
+ Normal Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">normal</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &gt; 0 and is left skewed if shape &lt; 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>
+ &#160; &#160; <span class="inlinemediaobject"><img src="../../../../../equations/normal01_pdf.png"></span>
+ </p>
+<p>
+ and the cumulative distribution function
+ </p>
+<p>
+ &#160; &#160; <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 &#945;, defined by O'Hagan
+ and Leonhard (1976) is
+ </p>
+<p>
+ &#160; &#160; <span class="inlinemediaobject"><img src="../../../../../equations/skew_normal_pdf0.png"></span>
+ </p>
+<p>
+ Given location
+ &#958;, scale
+ &#969;, and shape
+ &#945;, it can be transformed,
+ to the form:
+ </p>
+<p>
+ &#160; &#160; <span class="inlinemediaobject"><img src="../../../../../equations/skew_normal_pdf.png"></span>
+ </p>
+<p>
+ and CDF:
+ </p>
+<p>
+ &#160; &#160; <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>&#934;(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.dist_ref.dists.skew_normal_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.skew_normal_dist.member_functions"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist.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 &#958;, scale &#969; and shape
+ &#945;.
+ </p>
+<p>
+ Requires scale &gt; 0, otherwise <a class="link" href="../../../main_overview/error_handling.html#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 &#958; 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 &#969; 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 &#945; 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 &#948; is related to the shape &#945; by &#948; = &#945; / (1 + &#945;&#178;), 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.dist_ref.dists.skew_normal_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.skew_normal_dist.references"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist.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.dist_ref.dists.skew_normal_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.skew_normal_dist.non_member_accessors"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is <span class="emphasis"><em>-[max_value</em></span>,
+ +[min_value]]. 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.dist_ref.dists.skew_normal_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.skew_normal_dist.testing"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist.dist_ref.dists.skew_normal_dist.testing">Testing</a>
+ </h5>
+<p>
+ <a href="http://www.r-project.org/" target="_top">The R Project for Statistical
+ Computing</a> 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.dist_ref.dists.skew_normal_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.skew_normal_dist.accuracy"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist.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="../../../special/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="../../../special/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="../../../special/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.dist_ref.dists.skew_normal_dist.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.skew_normal_dist.implementation"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist.dist_ref.dists.skew_normal_dist.implementation">Implementation</a>
+ </h5>
+<p>
+ In the following table, &#958; is the location of the distribution, and &#969; is its
+ scale, and &#945; 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>&#934;(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 &#958;, scale &#969;, -shape&#945;), p)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ location
+ </p>
+ </td>
+<td>
+ <p>
+ location &#958;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ scale
+ </p>
+ </td>
+<td>
+ <p>
+ scale &#969;
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ shape
+ </p>
+ </td>
+<td>
+ <p>
+ shape &#945;
+ </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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/students_t_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,425 @@
+<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.77.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_dist_ref_dists_students_t_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.students_t_dist"></a><a class="link" href="students_t_dist.html" title="Students t Distribution">Students
+ t Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">students_t</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&amp;</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>&#956;</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 &#957;:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../../graphs/students_t_pdf.png" align="middle"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.students_t_dist.member_functions"></a></span><a class="link" href="students_t_dist.html#math_toolkit.dist.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">&amp;</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> &gt; 0, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#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.dist_ref.dists.students_t_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.students_t_dist.non_member_accessors"></a></span><a class="link" href="students_t_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [-&#8734;, +&#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.students_t_dist.examples"></a></span><a class="link" href="students_t_dist.html#math_toolkit.dist.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.dist_ref.dists.students_t_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.students_t_dist.accuracy"></a></span><a class="link" href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.accuracy">Accuracy</a>
+ </h5>
+<p>
+ The normal distribution is implemented in terms of the <a class="link" href="../../../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">incomplete
+ beta function</a> and <a class="link" href="../../../special/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.dist_ref.dists.students_t_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.students_t_dist.implementation"></a></span><a class="link" href="students_t_dist.html#math_toolkit.dist.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="../../../special/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 &gt; 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="../../../special/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 &lt; 2t<sup>2</sup></em></span>
+ </p>
+ <p>
+ <a class="link" href="../../../special/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="../../../special/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="../../../special/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 &gt; 2) v / (v - 2) else NaN
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ skewness
+ </p>
+ </td>
+<td>
+ <p>
+ if (v &gt; 3) 0 else NaN
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis
+ </p>
+ </td>
+<td>
+ <p>
+ if (v &gt; 4) 3 * (v - 2) / (v - 4) else NaN
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis excess
+ </p>
+ </td>
+<td>
+ <p>
+ if (v &gt; 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="../../../main_overview/error_handling.html#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">&lt;&gt;::</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/triangular_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,420 @@
+<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.77.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_dist_ref_dists_triangular_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.triangular_dist"></a><a class="link" href="triangular_dist.html" title="Triangular Distribution">Triangular
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">triangular</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &lt;= x &lt;= c
+ </li>
+<li class="listitem">
+ 2(b-x)/(b-a)(b-c) for c &lt; x &lt;= b
+ </li>
+</ul></div>
+<p>
+ Parameter a (lower) can be any finite value. Parameter b (upper) can
+ be any finite value &gt; a (lower). Parameter c (mode) a &lt;= c &lt;=
+ b. This is the most probable value.
+ </p>
+<p>
+ The random variate
+ x must also be finite, and is supported lower &lt;= x &lt;= 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.dist_ref.dists.triangular_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.triangular_dist.member_functions"></a></span><a class="link" href="triangular_dist.html#math_toolkit.dist.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="../../../main_overview/error_handling.html#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.dist_ref.dists.triangular_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.triangular_dist.non_member_accessors"></a></span><a class="link" href="triangular_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is \lowerto \upper, and the supported
+ range is lower &lt;= x &lt;= upper.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.triangular_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.triangular_dist.accuracy"></a></span><a class="link" href="triangular_dist.html#math_toolkit.dist.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.dist_ref.dists.triangular_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.triangular_dist.implementation"></a></span><a class="link" href="triangular_dist.html#math_toolkit.dist.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 &lt; 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 &lt; 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 &lt; p0
+ </p>
+ <p>
+ x = c ; for p == p0
+ </p>
+ <p>
+ x = b - sqrt((b-a)(b-c)q) ; for p &gt; 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.dist_ref.dists.triangular_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.triangular_dist.references"></a></span><a class="link" href="triangular_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/uniform_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,363 @@
+<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.77.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_dist_ref_dists_uniform_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.uniform_dist"></a><a class="link" href="uniform_dist.html" title="Uniform Distribution">Uniform
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">uniform</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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 &lt; x &lt; upper
+ </li>
+<li class="listitem">
+ zero for x &lt; lower or x &gt; 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 &lt;= x &lt;= 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.dist_ref.dists.uniform_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.uniform_dist.member_functions"></a></span><a class="link" href="uniform_dist.html#math_toolkit.dist.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="../../../main_overview/error_handling.html#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.dist_ref.dists.uniform_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.uniform_dist.non_member_accessors"></a></span><a class="link" href="uniform_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.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> &lt;= x &lt;= <span class="emphasis"><em>upper</em></span>.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.uniform_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.uniform_dist.accuracy"></a></span><a class="link" href="uniform_dist.html#math_toolkit.dist.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.dist_ref.dists.uniform_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.uniform_dist.implementation"></a></span><a class="link" href="uniform_dist.html#math_toolkit.dist.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 &lt; a, 1 / (b - a) for a
+ &lt;= x &lt;= b, 0 for x &gt; b
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: cdf = 0 for x &lt; a, (x - a) / (b - a)
+ for a &lt;= x &lt;= b, 1 for x &gt; 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.dist_ref.dists.uniform_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.uniform_dist.references"></a></span><a class="link" href="uniform_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/dists/weibull_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,363 @@
+<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.77.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_dist_ref_dists_weibull_dist">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.dist_ref.dists.weibull_dist"></a><a class="link" href="weibull_dist.html" title="Weibull Distribution">Weibull
+ Distribution</a>
+</h5></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">&lt;</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="Policies">Policy</a> <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</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">&lt;&gt;</span> <span class="identifier">weibull</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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; &#945;, &#946;) = (&#945;/&#946;) * (x / &#946;)<sup>&#945; - 1</sup> * e<sup>-(x/&#946;)<sup>&#945;</sup></sup>
+ </p>
+<p>
+ For shape parameter &#945; &#160; &gt; 0, and scale parameter &#946; &#160; &gt; 0, and x &gt; 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 &#945; &#160; = 1, suggests that items are failing from
+ random events.
+ </li>
+<li class="listitem">
+ decreases over time, then &#945; &#160; &lt; 1, suggesting "infant mortality".
+ </li>
+<li class="listitem">
+ increases over time, then &#945; &#160; &gt; 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
+ &#945;:
+ </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
+ &#946;:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../../graphs/weibull_pdf2.png" align="middle"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.weibull_dist.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.weibull_dist.related_distributions"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist.dist_ref.dists.weibull_dist.related_distributions">Related
+ distributions</a>
+ </h5>
+<p>
+ When &#945; &#160; = 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 &#945; &#160; = 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 &amp; Saralees Nadarajah</a>.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.weibull_dist.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.weibull_dist.member_functions"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist.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="../../../main_overview/error_handling.html#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.dist_ref.dists.weibull_dist.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.weibull_dist.non_member_accessors"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist.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.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
+ </p>
+<p>
+ The domain of the random variable is [0, &#8734;].
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.weibull_dist.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.weibull_dist.accuracy"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist.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="../../../special/powers/expm1.html" title="expm1">expm1</a>
+ and <a class="link" href="../../../special/powers/log1p.html" title="log1p">log1p</a> and
+ as such should have very low error rates.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.dists.weibull_dist.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.weibull_dist.implementation"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist.dist_ref.dists.weibull_dist.implementation">Implementation</a>
+ </h5>
+<p>
+ In the following table &#945; &#160; is the shape parameter of the distribution, &#946; &#160; 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 = &#945;&#946;<sup>-&#945; </sup>x<sup>&#945; - 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="../../../special/powers/expm1.html" title="expm1">expm1</a>(-(x/&#946;)<sup>&#945;</sup>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: q = e<sup>-(x/&#946;)<sup>&#945;</sup></sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = &#946; * (-<a class="link" href="../../../special/powers/log1p.html" title="log1p">log1p</a>(-p))<sup>1/&#945;</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile from the complement
+ </p>
+ </td>
+<td>
+ <p>
+ Using the relation: x = &#946; * (-log(q))<sup>1/&#945;</sup>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mean
+ </p>
+ </td>
+<td>
+ <p>
+ &#946; * &#915;(1 + 1/&#945;)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ variance
+ </p>
+ </td>
+<td>
+ <p>
+ &#946;<sup>2</sup>(&#915;(1 + 2/&#945;) - &#915;<sup>2</sup>(1 + 1/&#945;))
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mode
+ </p>
+ </td>
+<td>
+ <p>
+ &#946;((&#945; - 1) / &#945;)<sup>1/&#945;</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.dist_ref.dists.weibull_dist.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.dists.weibull_dist.references"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist_ref/nmp.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/dist_ref/nmp.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,667 @@
+<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.77.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_dist_ref_nmp">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist.dist_ref.nmp"></a><a class="link" href="nmp.html" title="Non-Member Properties">Non-Member Properties</a>
+</h4></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#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#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.dist_ref.nmp.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__function_index___function_index"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__function_index___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.dist.cdf">cdf</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.ccdf">cdf complement</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.chf">chf</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.hazard">hazard</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.kurtosis">kurtosis</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.mean">mean</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.median">median</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.mode">mode</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.pdf">pdf</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.range">range</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.quantile">quantile</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.quantile_c">quantile from the complement</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.skewness">skewness</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.sd">standard_deviation</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.support">support</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.variance">variance</a>.
+ </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__concept_index___conceptual_index"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__concept_index___conceptual_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.dist.ccdf">Complement of the Cumulative Distribution
+ Function</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.cdf">Cumulative Distribution Function</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.chf">Cumulative Hazard Function</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#cdf_inv">Inverse Cumulative Distribution Function</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#survival_inv">Inverse Survival Function</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.hazard">Hazard Function</a>
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#lower_critical">Lower Critical Value</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.kurtosis">kurtosis</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.mean">mean</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.median">median</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.mode">mode</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#cdfPQ">P</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#percent">Percent Point Function</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.pdf">Probability Density Function</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#pmf">Probability Mass Function</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.range">range</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#cdfPQ">Q</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.quantile">Quantile</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.quantile_c">Quantile from the complement of
+ the probability</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.skewness">skewness</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.sd">standard deviation</a>
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#survival">Survival Function</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.support">support</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#upper_critical">Upper Critical Value</a>.
+ </li>
+<li class="listitem">
+ <a class="link" href="nmp.html#math.dist.variance">variance</a>.
+ </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_cdf___cumulative_distribution_function"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_cdf___cumulative_distribution_function">Cumulative Distribution Function</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+ The <a class="link" href="nmp.html#math.dist.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.dist.pdf">Probability
+ Density Function</a>.
+ </p>
+<p>
+ This function may return a <a class="link" href="../../main_overview/error_handling.html#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" alt="cdf"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_ccdf___complement_of_the_cumulative_distribution_function"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_ccdf___complement_of_the_cumulative_distribution_function">Complement of the Cumulative Distribution Function</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">Distribution</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">&gt;&amp;</span> <span class="identifier">comp</span><span class="special">);</span>
+</pre>
+<p>
+ The complement of the <a class="link" href="nmp.html#math.dist.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.dist.pdf">Probability Density Function</a>, or 1 minus
+ the <a class="link" href="nmp.html#math.dist.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="../../main_overview/error_handling.html#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">&lt;&lt;</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">&lt;&lt;</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" alt="survival"></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.dist_ref.nmp.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_hazard___hazard_function"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_hazard___hazard_function">Hazard Function</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+ Returns the <a class="link" href="nmp.html#math.dist.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="../../main_overview/error_handling.html#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.dist_ref.nmp.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_chf___cumulative_hazard_function"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_chf___cumulative_hazard_function">Cumulative Hazard Function</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+ Returns the <a class="link" href="nmp.html#math.dist.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="../../main_overview/error_handling.html#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.dist_ref.nmp.h6"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_mean___mean"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_mean___mean">mean</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</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="../../main_overview/error_handling.html#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.dist_ref.nmp.h7"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_median___median"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_median___median">median</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</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.dist_ref.nmp.h8"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_mode___mode"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_mode___mode">mode</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</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="../../main_overview/error_handling.html#domain_error">domain_error</a>
+ if the distribution does not have a defined mode.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h9"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_pdf___probability_density_function"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_pdf___probability_density_function">Probability Density Function</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</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.dist.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="../../main_overview/error_handling.html#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" alt="pdf"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h10"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_range___range"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_range___range">Range</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</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.dist_ref.nmp.h11"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_quantile___quantile"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_quantile___quantile">Quantile</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</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.dist.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="../../main_overview/error_handling.html#domain_error">domain_error</a>
+ if the probability lies outside [0,1]. The function may return an <a class="link" href="../../main_overview/error_handling.html#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" alt="quantile"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h12"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_quantile_c___quantile_from_the_complement_of_the_probability_"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_quantile_c___quantile_from_the_complement_of_the_probability_">Quantile from the complement of the probability.</a>
+ </h5>
+<p>
+ <a class="link" href="../stat_tut/overview/complements.html#complements">complements</a>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">Distribution</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">&gt;&amp;</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.dist.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">&lt;&lt;</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">&lt;&lt;</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="../../main_overview/error_handling.html#domain_error">domain_error</a>
+ if the probablity lies outside [0,1]. The function may return an <a class="link" href="../../main_overview/error_handling.html#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" alt="survival_inv"></span>
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h13"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_sd___standard_deviation"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_sd___standard_deviation">Standard Deviation</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</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="../../main_overview/error_handling.html#domain_error">domain_error</a>
+ if the distribution does not have a defined standard deviation.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h14"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_support___support"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_support___support">support</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</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.dist_ref.nmp.h15"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_variance___variance"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_variance___variance">Variance</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</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="../../main_overview/error_handling.html#domain_error">domain_error</a>
+ if the distribution does not have a defined variance.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h16"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_skewness___skewness"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_skewness___skewness">Skewness</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</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="../../main_overview/error_handling.html#domain_error">domain_error</a>
+ if the distribution does not have a defined skewness.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h17"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_kurtosis___kurtosis"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_kurtosis___kurtosis">Kurtosis</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</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 = &#946;<sub>2</sub> &#160;= &#956;<sub>4</sub> &#160; / &#956;<sub>2</sub><sup>2</sup>
+ </p>
+<p>
+ Where &#956;<sub>i</sub> &#160; is the i'th central moment of the distribution, and in particular
+ &#956;<sub>2</sub> &#160; 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="../../main_overview/error_handling.html#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.dist_ref.nmp.h18"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_kurtosis_excess___kurtosis_excess"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__math_dist_kurtosis_excess___kurtosis_excess">Kurtosis excess</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&gt;&amp;</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 = &#947;<sub>2</sub> &#160;= &#956;<sub>4</sub> &#160; / &#956;<sub>2</sub><sup>2</sup> &#160;- 3 = kurtosis - 3
+ </p>
+<p>
+ Where &#956;<sub>i</sub> &#160; is the i'th central moment of the distribution, and in particular
+ &#956;<sub>2</sub> &#160; 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="../../main_overview/error_handling.html#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.dist_ref.nmp.h19"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__cdfpq___p_and_q"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__cdfpq___p_and_q">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.dist.cdf">Cumulative
+ Distribution Function</a> and its <a class="link" href="nmp.html#math.dist.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.dist_ref.nmp.h20"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__percent___percent_point_function_or_percentile"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__percent___percent_point_function_or_percentile">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.dist.quantile">Quantile</a>.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h21"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__cdf_inv___inverse_cdf_function_"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__cdf_inv___inverse_cdf_function_">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.dist.quantile">Quantile</a>.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h22"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__survival_inv___inverse_survival_function_"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__survival_inv___inverse_survival_function_">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.dist.quantile_c">quantile from the complement of the probability</a>.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h23"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__pmf___probability_mass_function"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__pmf___probability_mass_function">Probability Mass Function</a>
+ </h5>
+<p>
+ The Probability Mass Function is the same as the <a class="link" href="nmp.html#math.dist.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.dist.pdf">Probability Density Function</a>
+ applies to continuous distributions.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h24"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__lower_critical___lower_critical_value_"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__lower_critical___lower_critical_value_">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.dist.quantile">Quantile</a>.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h25"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__upper_critical___upper_critical_value_"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__upper_critical___upper_critical_value_">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.dist.quantile_c">quantile from the
+ complement of the probability</a>.
+ </p>
+<h5>
+<a name="math_toolkit.dist.dist_ref.nmp.h26"></a>
+ <span class="phrase"><a name="math_toolkit.dist.dist_ref.nmp._anchor_id__survival___survival_function"></a></span><a class="link" href="nmp.html#math_toolkit.dist.dist_ref.nmp._anchor_id__survival___survival_function">Survival Function</a>
+ </h5>
+<p>
+ Refer to the <a class="link" href="nmp.html#math.dist.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/future.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/future.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,140 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../dist.html" title="Statistical Distributions and Functions">
+<link rel="prev" href="dist_ref/dist_algorithms.html" title="Distribution Algorithms">
+<link rel="next" href="../special.html" title="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_dist_future">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.dist.future"></a><a class="link" href="future.html" title="Extras/Future Directions">Extras/Future Directions</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.dist.future.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.future.adding_additional_location_and_scale_parameters"></a></span><a class="link" href="future.html#math_toolkit.dist.future.adding_additional_location_and_scale_parameters">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">&lt;</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">&gt;</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.dist.future.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.future.an__quot_any_distribution_quot__class"></a></span><a class="link" href="future.html#math_toolkit.dist.future.an__quot_any_distribution_quot__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">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">Distribution</span><span class="special">&gt;</span>
+ <span class="identifier">any_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Distribution</span><span class="special">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;&amp;</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.dist.future.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.future.higher_level_hypothesis_tests"></a></span><a class="link" href="future.html#math_toolkit.dist.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">&lt;</span><span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">InputIterator</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">InputIterator</span><span class="special">&gt;::</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.dist.future.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.future.integration_with_statistical_accumulators"></a></span><a class="link" href="future.html#math_toolkit.dist.future.integration_with_statistical_accumulators">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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">features</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">test_expected_mean</span><span class="special">&gt;</span> <span class="special">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,50 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../dist.html" title="Statistical Distributions and Functions">
+<link rel="prev" href="../dist.html" title="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_dist_stat_tut">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.dist.stat_tut"></a><a class="link" href="stat_tut.html" title="Statistical Distributions Tutorial">Statistical Distributions
+ Tutorial</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Overview of Distributions</span></dt>
+<dt><span class="section">Worked Examples</span></dt>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/dist_params.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/dist_params.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,91 @@
+<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.77.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_dist_stat_tut_dist_params">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist.stat_tut.dist_params"></a><a class="link" href="dist_params.html" title="Discrete Probability Distributions">Discrete Probability
+ Distributions</a>
+</h4></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
+ &amp; 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 <a href="http://en.wikipedia.org/wiki/Random_variate" target="_top">random
+ variate</a>, 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="../../policy/pol_overview.html" title="Policy Overview">Policies</a>.
+ It is strongly recommended that you read the tutorial <a class="link" href="../../policy/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="../../policy/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_overview">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist.stat_tut.overview"></a><a class="link" href="overview.html" title="Overview of Distributions">Overview of Distributions</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/overview/complements.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/complements.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,192 @@
+<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.77.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_dist_stat_tut_overview_complements">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.overview.complements"></a><a name="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>
+</h5></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">&lt;&lt;</span> <span class="string">"CDF at t = 1 is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Complement of CDF at t = 1 is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">i</span> <span class="special">&lt;&lt;</span> <span class="string">" chance is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">t</span> <span class="special">&lt;&lt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/overview/generic.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/generic.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,248 @@
+<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.77.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_dist_stat_tut_overview_generic">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</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="../../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.handling_of_floating_point_infinity">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
+ &amp; 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="../../../policy/pol_overview.html" title="Policy Overview">Policies</a>.
+ It is strongly recommended that you read the tutorial <a class="link" href="../../../policy/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="../../../policy/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/overview/headers.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/headers.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,69 @@
+<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.77.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_dist_stat_tut_overview_headers">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.overview.headers"></a><a class="link" href="headers.html" title="Headers and Namespaces">Headers
+ and Namespaces</a>
+</h5></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 &lt;boost/math/my_distribution.hpp&gt;
+ or the "include all the distributions" header: &lt;boost/math/distributions.hpp&gt;.
+ </p>
+<p>
+ For example, to use the Students-t distribution include either &lt;boost/math/students_t.hpp&gt;
+ or &lt;boost/math/distributions.hpp&gt;
+ </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
+ &lt;random&gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/overview/objects.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/objects.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,126 @@
+<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.77.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_dist_stat_tut_overview_objects">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.overview.objects"></a><a class="link" href="objects.html" title="Distributions are Objects">Distributions
+ are Objects</a>
+</h5></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="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 &lt;random&gt;</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">&lt;&gt;</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&lt;&gt; 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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/overview/parameters.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/parameters.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,64 @@
+<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.77.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_dist_stat_tut_overview_parameters">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.overview.parameters"></a><a class="link" href="parameters.html" title="Parameters can be calculated">Parameters
+ can be calculated</a>
+</h5></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/overview/summary.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/overview/summary.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_overview_summary">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.overview.summary"></a><a class="link" href="summary.html" title="Summary">Summary</a>
+</h5></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/variates.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/variates.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,68 @@
+<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.77.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_dist_stat_tut_variates">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist.stat_tut.variates"></a><a class="link" href="variates.html" title="Random Variates and Distribution Parameters">Random Variates
+ and Distribution Parameters</a>
+</h4></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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,66 @@
+<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.77.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_dist_stat_tut_weg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist.stat_tut.weg"></a><a class="link" href="weg.html" title="Worked Examples">Worked Examples</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<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>
+<dt><span class="section"><a href="weg/cs_eg.html">Chi Squared
+ Distribution Examples</a></span></dt>
+<dt><span class="section"><a href="weg/f_eg.html">F Distribution
+ Examples</a></span></dt>
+<dt><span class="section"><a href="weg/binom_eg.html">Binomial
+ Distribution Examples</a></span></dt>
+<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>
+<dt><span class="section"><a href="weg/normal_example.html">Normal
+ Distribution Examples</a></span></dt>
+<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>
+<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>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/binom_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_binom_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.weg.binom_eg"></a><a class="link" href="binom_eg.html" title="Binomial Distribution Examples">Binomial
+ Distribution Examples</a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/binom_eg/binom_conf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_conf.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,233 @@
+<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.77.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_dist_stat_tut_weg_binom_eg_binom_conf">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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">&lt;&gt;::</span><span class="identifier">find_lower_bound_on_p</span></code>
+ and <code class="computeroutput"><span class="identifier">binomial_distribution</span><span class="special">&lt;&gt;::</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Number of Observations"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">trials</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Number of successes"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">successes</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Sample frequency of occurrence"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</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 &#945; &#160;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 &#945;, 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 &#945;.
+ </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 &#945;.
+ </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 &#945;/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">&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;&gt;::</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">&lt;&gt;::</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;&gt;::</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">&lt;&gt;::</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">&lt;&gt;::</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">&lt;&gt;::</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">u</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/binom_eg/binom_size_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_size_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_binom_eg_binom_size_eg">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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">&lt;&gt;::</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">&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">t</span> <span class="special">&lt;&lt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,320 @@
+<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.77.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_dist_stat_tut_weg_binom_eg_binomial_coinflip_example">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;&lt;</span> <span class="string">"Using Binomial distribution to predict how many heads and tails."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">try</span>
+ <span class="special">{</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ Then some examples of using Binomial moments (and echoing the parameters).
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"From "</span> <span class="special">&lt;&lt;</span> <span class="identifier">flips</span> <span class="special">&lt;&lt;</span> <span class="string">" one can expect to get on average "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" heads (or tails)."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Mode is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mode</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard deviation is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"So about 2/3 will lie within 1 standard deviation and get between "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" and "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" correct."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Skewness is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">skewness</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Skewness if success_fraction is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">flip</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">skewness</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Expect zero for a 'fair' coin.</span>
+</pre>
+<p>
+ </p>
+<p>
+ Now we show a variety of predictions on the probability of heads:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"For "</span> <span class="special">&lt;&lt;</span> <span class="identifier">flip</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" coin flips: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting no heads is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting at least one head is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ When we want to calculate the probability for a range or values we
+ can sum the PDF's:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 0 or 1 heads is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// sum of exactly == probabilities</span>
+</pre>
+<p>
+ </p>
+<p>
+ Or we can use the cdf.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 0 or 1 (&lt;= 1) heads is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Note that using
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ is less accurate than using the complement
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ But this is probably less efficient than using the cdf
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of between 4 and 6 heads (4 or 5 or 6) is "</span>
+ <span class="comment">// P(X &lt;= 6) - P(X &lt;= 3) == P(X &lt; 4)</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Certainly for a bigger range like, 3 to 7
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of between 3 and 7 heads (3, 4, 5, 6 or 7) is "</span>
+ <span class="comment">// P(X &lt;= 7) - P(X &lt;= 2) == P(X &lt; 3)</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Probability of getting exactly (==) heads"</span> <span class="special">&lt;&lt;</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">&lt;=</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">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">successes</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">probability</span> <span class="special">&lt;&lt;</span> <span class="string">" or 1 in "</span> <span class="special">&lt;&lt;</span> <span class="number">1.</span> <span class="special">/</span> <span class="identifier">probability</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", or "</span> <span class="special">&lt;&lt;</span> <span class="identifier">probability</span> <span class="special">*</span> <span class="number">100.</span> <span class="special">&lt;&lt;</span> <span class="string">"%"</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Probability of getting upto (&lt;=) heads"</span> <span class="special">&lt;&lt;</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">&lt;=</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 &lt;= heads)</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">successes</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">probability</span> <span class="special">&lt;&lt;</span> <span class="string">" or 1 in "</span> <span class="special">&lt;&lt;</span> <span class="number">1.</span> <span class="special">/</span> <span class="identifier">probability</span> <span class="special">&lt;&lt;</span> <span class="string">", or "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">probability</span> <span class="special">*</span> <span class="number">100.</span> <span class="special">&lt;&lt;</span> <span class="string">"%"</span><span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// for i</span>
+</pre>
+<p>
+ </p>
+<p>
+ The last (0 to 10 heads) must, of course, be 100% probability.
+ </p>
+<p>
+</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">&amp;</span> <span class="identifier">e</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="comment">//</span>
+</pre>
+<p>
+ </p>
+<p>
+ <a name="coinflip_eg_catch"></a>It is always essential to include try
+ &amp; 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 &amp; 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>
+<p>
+</p>
+<pre class="programlisting"> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span>
+ <span class="string">"\n"</span><span class="string">"Message from thrown exception was:\n "</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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 (&lt;= 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 (&lt;=) 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,551 @@
+<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.77.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_dist_stat_tut_weg_binom_eg_binomial_quiz_example">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;</span><span class="identifier">exception</span><span class="special">&gt;</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>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ and display the distribution parameters we used thus:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"In a quiz with "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quiz</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" questions and with a probability of guessing right of "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" %"</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" or 1 in "</span> <span class="special">&lt;&lt;</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Show a few probabilities of just guessing:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting none right is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.010023</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting exactly one right is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting exactly two right is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Probability of getting exactly "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span> <span class="special">&lt;&lt;</span> <span class="string">" answers right by chance is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting all "</span> <span class="special">&lt;&lt;</span> <span class="identifier">questions</span> <span class="special">&lt;&lt;</span> <span class="string">" answers right by chance is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span> <span class="string">"Guessed Probability"</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;=</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">successes</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</span> <span class="identifier">probability</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting none or one right is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting none or one right is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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 ( &lt;= )
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting &lt;= 10 right (to fail) is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">Probability of getting &lt;= 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 &gt; 10
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting &gt; 10 right (to pass) is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">Probability of getting &gt; 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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting &gt; 10 right (to pass) is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">Probability of getting &gt; 10 right (to pass) is 0.000285239
+</pre>
+<p>
+ And we can check that these two, &lt;= 10 and &gt; 10, add up to unity.
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ If we want a &lt; rather than a &lt;= test, because the CDF is inclusive,
+ we must subtract one from the score.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting less than "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" (&lt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span> <span class="special">&lt;&lt;</span> <span class="string">") answers right by guessing is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">Probability of getting less than 11 (&lt; 11) answers right by guessing is 0.999715
+</pre>
+<p>
+ and similarly to get a &gt;= rather than a &gt; 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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting at least "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"(&gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span> <span class="special">&lt;&lt;</span> <span class="string">") answers right by guessing is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", only 1 in "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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>
+<p>
+ </p>
+<pre class="programlisting">Probability of getting at least 11 (&gt;= 11) answers right by guessing is 0.000285239, only 1 in 3505.83
+</pre>
+<p>
+ Finally we can tabulate some probabilities:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span> <span class="string">"At most (&lt;=)"</span><span class="string">"\n"</span><span class="string">"Guessed OK Probability"</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;=</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">score</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">10</span><span class="special">)</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">At most (&lt;=)
+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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span> <span class="string">"At least (&gt;)"</span><span class="string">"\n"</span><span class="string">"Guessed OK Probability"</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;=</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">score</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">10</span><span class="special">)</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">At least (&gt;)
+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>
+<p>
+</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">&lt;=</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">&lt;&lt;</span> <span class="string">"Probability of getting between "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">low</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="identifier">high</span> <span class="special">&lt;&lt;</span> <span class="string">" answers right by guessing is "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">sum</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.61323</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting between "</span> <span class="special">&lt;&lt;</span> <span class="identifier">low</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="identifier">high</span> <span class="special">&lt;&lt;</span> <span class="string">" answers right by guessing is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.61323</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Probability of getting between "</span> <span class="special">&lt;&lt;</span> <span class="identifier">low</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="identifier">high</span> <span class="special">&lt;&lt;</span> <span class="string">" answers right by guessing is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Probability of getting between "</span> <span class="special">&lt;&lt;</span> <span class="identifier">low</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="identifier">high</span> <span class="special">&lt;&lt;</span> <span class="string">" answers right by guessing is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1 &lt;= 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">&lt;&lt;</span> <span class="string">"Probability of getting between "</span> <span class="special">&lt;&lt;</span> <span class="identifier">low</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="identifier">high</span> <span class="special">&lt;&lt;</span> <span class="string">" answers right by guessing is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 4 &lt;= x 4 P = 0.22520</span>
+</pre>
+<p>
+ </p>
+<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.dist.stat_tut.weg.binom_eg.binomial_quiz_example.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.using_binomial_distribution_moments"></a></span><a class="link" href="binomial_quiz_example.html#math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.using_binomial_distribution_moments">Using
+ Binomial distribution moments</a>
+ </h5>
+<p>
+ Using moments of the distribution, we can say more about the spread
+ of results from guessing.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"By guessing, on average, one can expect to get "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" correct answers."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard deviation is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"So about 2/3 will lie within 1 standard deviation and get between "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" and "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" correct."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Mode (the most frequent) is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mode</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Skewness is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">skewness</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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.dist.stat_tut.weg.binom_eg.binomial_quiz_example.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.quantiles"></a></span><a class="link" href="binomial_quiz_example.html#math_toolkit.dist.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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quartiles "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Quartiles</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"1 standard deviation "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1 sd</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Deciles "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">))&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Deciles</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"5 to 95% "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">))&lt;&lt;</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">&lt;&lt;</span> <span class="string">"2.5 to 97.5% "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"2 to 98% "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"If guessing then percentiles 1 to 99% will get "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" right."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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="../../../../policy/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="../../../../policy/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>
+<p>
+</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">&lt;</span><span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">real</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">real_quantile_policy</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+ </p>
+<p>
+</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">binomial_distribution</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">real_quantile_policy</span><span class="special">&gt;</span> <span class="identifier">real_quantile_binomial</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Construct an object of this custom distribution:
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ And use this to show some quantiles - that now have real rather than
+ integer values.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quartiles "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"1 standard deviation "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Deciles "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">))&lt;&lt;</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">&lt;&lt;</span> <span class="string">"5 to 95% "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">))&lt;&lt;</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">&lt;&lt;</span> <span class="string">"2.5 to 97.5% "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"2 to 98% "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"If guessing, then percentiles 1 to 99% will get "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" to "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" right."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/c_sharp.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/c_sharp.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,49 @@
+<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.77.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_dist_stat_tut_weg_c_sharp">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/cs_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/cs_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_cs_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.weg.cs_eg"></a><a class="link" href="cs_eg.html" title="Chi Squared Distribution Examples">Chi Squared
+ Distribution Examples</a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,227 @@
+<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.77.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_dist_stat_tut_weg_cs_eg_chi_sq_intervals">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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 &amp; 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">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Number of Observations"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard Deviation"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">Sd</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">lower_limit</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">upper_limit</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</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.dist.stat_tut.weg.cs_eg.chi_sq_intervals.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.cs_eg.chi_sq_intervals.confidence_intervals_as_a_function_of_the_number_of_observations"></a></span><a class="link" href="chi_sq_intervals.html#math_toolkit.dist.stat_tut.weg.cs_eg.chi_sq_intervals.confidence_intervals_as_a_function_of_the_number_of_observations">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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/cs_eg/chi_sq_size.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_cs_eg_chi_sq_size">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"True Variance"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">variance</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Difference to detect"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">diff</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">16</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">16</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">size</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/cs_eg/chi_sq_test.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_cs_eg_chi_sq_test">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Number of Observations"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Sample Standard Deviation"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">Sd</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Expected True Standard Deviation"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">D</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Test Statistic"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">t_stat</span> <span class="special">&lt;&lt;</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 &lt; &#967;<sup>2</sup><sub>(1-alpha/2; N-1)</sub> or T &gt; &#967;<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 &#967;<sup>2</sup><sub>(1-alpha/2; N-1)</sub> &gt;= T &gt;= &#967;<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 &#967;<sup>2</sup><sub>(1-alpha; N-1)</sub> &lt;= 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 &#967;<sup>2</sup><sub>(alpha; N-1)</sub> &gt;= T
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ Where &#967;<sup>2</sup><sub>(alpha; N-1)</sub> is the upper critical value of the Chi Squared distribution,
+ and &#967;<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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Upper Critical Value at alpha: "</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="identifier">ucv</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Upper Critical Value at alpha/2: "</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="identifier">ucv2</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Lower Critical Value at alpha: "</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="identifier">lcv</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Lower Critical Value at alpha/2: "</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="identifier">lcv2</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span>
+ <span class="string">"Results for Alternative Hypothesis and alpha"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">4</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Alternative Hypothesis Conclusion\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard Deviation != "</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">D</span> <span class="special">&lt;&lt;</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">&lt;</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">&gt;</span> <span class="identifier">t_stat</span><span class="special">))</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard Deviation &lt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">D</span> <span class="special">&lt;&lt;</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">&gt;</span> <span class="identifier">t_stat</span><span class="special">)</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard Deviation &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">D</span> <span class="special">&lt;&lt;</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">&lt;</span> <span class="identifier">t_stat</span><span class="special">)</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span> <span class="special">&lt;&lt;</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 &lt; 0.100 ACCEPTED
+Standard Deviation &gt; 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 &lt; 10.000 REJECTED
+Standard Deviation &gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/dist_construct_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,401 @@
+<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.77.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_dist_stat_tut_weg_dist_construct_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.weg.dist_construct_eg"></a><a class="link" href="dist_construct_eg.html" title="Distribution Construction Examples">Distribution
+ Construction Examples</a>
+</h5></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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</span> <span class="comment">// for binomial_distribution.</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span> <span class="comment">// for beta_distribution.</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span> <span class="comment">// for gamma_distribution.</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span> <span class="comment">// for normal_distribution.</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span> <span class="comment">// for cpp_dec_float_100</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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>
+ </p>
+<p>
+ But this is inconveniently long, so we might be tempted to write
+ </p>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special">&lt;&gt;</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>
+ </p>
+<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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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>
+<p>
+</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>
+ </p>
+<p>
+ we have a convenient typedef to <code class="computeroutput"><span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span></code>:
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ Some more examples using the convenience typedef:
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ And automatic conversion takes place, so you can use integers and floats:
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ This is probably the most common usage.
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ Similarly for most other distributions like the binomial.
+ </p>
+<p>
+</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">&lt;&gt;</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>
+ </p>
+<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>
+<p>
+</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">&lt;&gt;</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>
+ </p>
+<p>
+ or for the gamma distribution:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">gamma_distribution</span><span class="special">&lt;&gt;</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>
+ </p>
+<p>
+ We can, of course, still provide the type explicitly thus:
+ </p>
+<p>
+</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</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 &amp; double arguments converted to float:</span>
+<span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</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>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;</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">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;</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">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;</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">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;::</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ A correct way from a multi-digit string value is
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </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>
+ 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.dist.stat_tut.weg.dist_construct_eg.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.dist_construct_eg.default_arguments_to_distribution_constructors_"></a></span><a class="link" href="dist_construct_eg.html#math_toolkit.dist.stat_tut.weg.dist_construct_eg.default_arguments_to_distribution_constructors_">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">&lt;&gt;</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>
+<p>
+</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">&amp;</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">&lt;&lt;</span> <span class="identifier">ex</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/error_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/error_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,207 @@
+<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.77.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_dist_stat_tut_weg_error_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.weg.error_eg"></a><a class="link" href="error_eg.html" title="Error Handling Example">Error Handling
+ Example</a>
+</h5></div></div></div>
+<p>
+ See <a class="link" href="../../../main_overview/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="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>
+<p>
+</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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">stdexcept</span><span class="special">&gt;</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">&lt;</span><span class="identifier">cstddef</span><span class="special">&gt;</span>
+ <span class="comment">// using ::errno</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Example error handling using Student's t function. "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"BOOST_MATH_DOMAIN_ERROR_POLICY is set to: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"cdf returned a NaN!"</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"errno is set to: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Probability of Student's t is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</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">&amp;</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">&lt;&lt;</span>
+ <span class="string">"\n"</span><span class="string">"Message from thrown exception was:\n "</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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&lt;double&gt;::students_t_distribution:
+ Degrees of freedom argument is -1, but must be &gt; 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 &amp; 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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/f_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/f_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,322 @@
+<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.77.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_dist_stat_tut_weg_f_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.weg.f_eg"></a><a class="link" href="f_eg.html" title="F Distribution Examples">F Distribution
+ Examples</a>
+</h5></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">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Sample 1:\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Number of Observations"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N1</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Sample Standard Deviation"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sd1</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Sample 2:\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Number of Observations"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N2</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Sample Standard Deviation"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sd2</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Test Statistic"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">F</span> <span class="special">&lt;&lt;</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 &lt;= F<sub>(1-alpha/2; N1-1, N2-1)</sub> or F &gt;= 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> &lt;= F &lt;= 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 &lt; 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 &gt; 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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Upper Critical Value at alpha: "</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="identifier">ucv</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Upper Critical Value at alpha/2: "</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="identifier">ucv2</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Lower Critical Value at alpha: "</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="identifier">lcv</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Lower Critical Value at alpha/2: "</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="identifier">lcv2</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span>
+ <span class="string">"Results for Alternative Hypothesis and alpha"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">4</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Alternative Hypothesis Conclusion\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;</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">&gt;</span> <span class="identifier">F</span><span class="special">))</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&gt;</span> <span class="identifier">F</span><span class="special">)</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;</span> <span class="identifier">F</span><span class="special">)</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span> <span class="special">&lt;&lt;</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 &lt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/find_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/find_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_find_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/find_eg/find_location_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,217 @@
+<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.77.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_dist_stat_tut_weg_find_eg_find_location_eg">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</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>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", standard deviation "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">scale</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", has "</span> <span class="special">&lt;&lt;</span> <span class="string">"fraction &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", p = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", standard deviation "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">scale</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", has "</span> <span class="special">&lt;&lt;</span> <span class="string">"fraction &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", p = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Note: uses complement.</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">Normal distribution with mean = 0, standard deviation 1, has fraction &lt;= -2, p = 0.0227501
+Normal distribution with mean = 0, standard deviation 1, has fraction &gt; -2, p = 0.97725
+</pre>
+<p>
+ We can now use ''find_location'' to give a new offset mean.
+ </p>
+<p>
+</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"offset location (mean) = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ And re-calculating the fraction below our chosen limit.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" has "</span> <span class="special">&lt;&lt;</span> <span class="string">"fraction &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", p = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" has "</span> <span class="special">&lt;&lt;</span> <span class="string">"fraction &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", p = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">Normal distribution with mean = 1.09023 has fraction &lt;= -2, p = 0.001
+Normal distribution with mean = 1.09023 has fraction &gt; -2, p = 0.999
+</pre>
+<h5>
+<a name="math_toolkit.dist.stat_tut.weg.find_eg.find_location_eg.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.find_eg.find_location_eg.controlling_error_handling_from_find_location"></a></span><a class="link" href="find_location_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_location_eg.controlling_error_handling_from_find_location">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>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</span> <span class="special">&gt;</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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&lt;&gt;, 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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&gt;());</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&gt;());</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</span> <span class="special">&gt;());</span>
+</pre>
+<p>
+ </p>
+<p>
+ If we want to use a probability that is the <a class="link" href="../../overview/complements.html#complements">complement
+ of our probability</a>, we should not even think of writing <code class="computeroutput"><span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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>
+<p>
+</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span> <span class="special">&lt;&lt;</span> <span class="string">" has "</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"fraction &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span> <span class="special">&lt;&lt;</span> <span class="string">" has "</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"fraction &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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 &lt;= -2, p = 0.0227501
+Normal distribution with mean = 0, standard deviation 1, has fraction &gt; -2, p = 0.97725
+offset location (mean) = 1.09023
+Normal distribution with mean = 1.09023 has fraction &lt;= -2, p = 0.001
+Normal distribution with mean = 1.09023 has fraction &gt; -2, p = 0.999
+Normal distribution with mean = 0.355146 has fraction &lt;= 2 = 0.95
+Normal distribution with mean = 0.355146 has fraction &gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,541 @@
+<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.77.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_dist_stat_tut_weg_find_eg_find_mean_and_sd_eg">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</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">&lt;</span><span class="identifier">stdexcept</span><span class="special">&gt;</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>
+ </p>
+<h5>
+<a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_find_location_and_find_scale_to_meet_dispensing_and_measurement_specifications"></a></span><a class="link" href="find_mean_and_sd_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_find_location_and_find_scale_to_meet_dispensing_and_measurement_specifications">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>
+<p>
+</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>
+ </p>
+<p>
+ We can then find the fraction (or %) of packages that weigh more than
+ 3.1 kg.
+ </p>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Percentage of packs &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">max_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span>
+<span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// P(X &gt; 3.1)</span>
+</pre>
+<p>
+ </p>
+<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 &lt;
+ 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>
+<p>
+</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">&lt;&lt;</span><span class="string">"Fraction of packs &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// fraction of packs &lt;= 2.9 with a mean of 3 is 0.841345</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
+<span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">xpacks</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// fraction of packs &gt;= 2.9 with a mean of 3.06449 is 0.950005</span>
+</pre>
+<p>
+ </p>
+<p>
+ Using this Math Toolkit, we can calculate the required mean directly
+ thus:
+ </p>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Setting the packer to "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nominal_mean</span> <span class="special">&lt;&lt;</span> <span class="string">" will mean that "</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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 &gt;= 2.9 is 0.95</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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>
+ </p>
+<p>
+ and then use find_location function to find safe_mean, &amp; construct
+ a new normal distribution called 'goodpacks'.
+ </p>
+<p>
+</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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>
+ </p>
+<p>
+ with the same confirmation as before:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Setting the packer to "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nominal_mean</span> <span class="special">&lt;&lt;</span> <span class="string">" will mean that "</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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 &gt;= 2.9 is 0.95</span>
+</pre>
+<p>
+ </p>
+<h5>
+<a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_cauchy_lorentz_instead_of_normal_distribution"></a></span><a class="link" href="find_mean_and_sd_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_cauchy_lorentz_instead_of_normal_distribution">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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Cauchy Setting the packer to "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span> <span class="special">&lt;&lt;</span> <span class="string">" will mean that "</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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 &gt;= 2.9 is 0.75</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="identifier">cauchy</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"find_location&lt;cauchy&gt;(minimum_weight, over fraction, standard_deviation); "</span> <span class="special">&lt;&lt;</span> <span class="identifier">lc</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// find_location&lt;cauchy&gt;(minimum_weight, over fraction, packs.standard_deviation()); 3.53138</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Cauchy Setting the packer to "</span> <span class="special">&lt;&lt;</span> <span class="identifier">lc</span> <span class="special">&lt;&lt;</span> <span class="string">" will mean that "</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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 &gt;= 2.9 is 0.95</span>
+</pre>
+<p>
+ </p>
+<p>
+ Finally we could estimate the effect of a much tighter specification,
+ that 99% of packs met the specification.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Cauchy Setting the packer to "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">cauchy</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">" will mean that "</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Setting the packer to 3.13263 will mean that fraction of packs &gt;=
+ 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.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.changing_the_scale_or_standard_deviation"></a></span><a class="link" href="find_mean_and_sd_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.changing_the_scale_or_standard_deviation">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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span><span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" and standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Fraction of packs &gt;= 2.9 with a mean of 3 and standard deviation of 0.05 is 0.97725</span>
+</pre>
+<p>
+ </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 standard deviation
+ to 0.06 kg, constructing another new distribution called pack06.
+ </p>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span><span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" and standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Fraction of packs &gt;= 2.9 with a mean of 3 and standard deviation of 0.06 is 0.95221</span>
+</pre>
+<p>
+ </p>
+<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="../../../../toolkit/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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"For the "</span><span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">"th quantile to be located at "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span> <span class="special">&lt;&lt;</span> <span class="string">", would need a standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sd95</span> <span class="special">&lt;&lt;</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>
+ </p>
+<p>
+ We can now construct a new (normal) distribution pack95 for the 'better'
+ packer, and check that our distribution will meet the specification.
+ </p>
+<p>
+</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">&lt;&lt;</span><span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" and standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack95</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Fraction of packs &gt;= 2.9 with a mean of 3 and standard deviation of 0.0607957 is 0.95</span>
+</pre>
+<p>
+ </p>
+<p>
+ This calculation is generalized in the free function find_scale, as
+ shown below, giving the same standard deviation.
+ </p>
+<p>
+</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"find_scale&lt;normal&gt;(minimum_weight, under_fraction, packs.mean()); "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ss</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// find_scale&lt;normal&gt;(minimum_weight, under_fraction, packs.mean()); 0.0607957</span>
+</pre>
+<p>
+ </p>
+<p>
+ If we had defined an over_fraction, or percentage that must pass specification
+ </p>
+<p>
+</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>
+ </p>
+<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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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&lt;Dist, Policy&gt;(double, double, double, Policy):
+ Computed scale (-0.060795683191176959) is &lt;= 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>
+<p>
+</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"find_scale&lt;normal&gt;(minimum_weight, under_fraction, packs.mean()); "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ss1o</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// find_scale&lt;normal&gt;(minimum_weight, under_fraction, packs.mean()); 0.0607957</span>
+</pre>
+<p>
+ </p>
+<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#complements">complements</a>,
+ giving the most accurate result.
+ </p>
+<p>
+</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"find_scale&lt;normal&gt;(complement(minimum_weight, over_fraction, packs.mean())); "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ssc</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// find_scale&lt;normal&gt;(complement(minimum_weight, over_fraction, packs.mean())); 0.0607957</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span><span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" and standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack95c</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Fraction of packs &gt;= 2.9 with a mean of 3 and standard deviation of 0.0607957 is 0.95</span>
+</pre>
+<p>
+ </p>
+<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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/find_eg/find_scale_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,232 @@
+<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.77.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_dist_stat_tut_weg_find_eg_find_scale_eg">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</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>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", standard deviation "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", has "</span> <span class="special">&lt;&lt;</span> <span class="string">"fraction &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", p = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", standard deviation "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">scale</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", has "</span> <span class="special">&lt;&lt;</span> <span class="string">"fraction &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", p = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Note: uses complement.</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">Normal distribution with mean = 0 has fraction &lt;= -2, p = 0.0227501
+Normal distribution with mean = 0 has fraction &gt; -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>
+<p>
+</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"scale (standard deviation) = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">s</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ And re-calculating the fraction below (and above) our chosen limit.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" has "</span> <span class="special">&lt;&lt;</span> <span class="string">"fraction &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", p = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" has "</span> <span class="special">&lt;&lt;</span> <span class="string">"fraction &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", p = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">Normal distribution with mean = 0 has fraction &lt;= -2, p = 0.001
+Normal distribution with mean = 0 has fraction &gt; -2, p = 0.999
+</pre>
+<h5>
+<a name="math_toolkit.dist.stat_tut.weg.find_eg.find_scale_eg.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.find_eg.find_scale_eg.controlling_how_errors_from_find_scale_are_handled"></a></span><a class="link" href="find_scale_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_scale_eg.controlling_how_errors_from_find_scale_are_handled">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>
+<p>
+</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>
+ </p>
+<p>
+ Using a typedef is convenient, especially if it is re-used, although
+ it is not required, as the various examples below show.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</span> <span class="special">&gt;</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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&lt;&gt;, 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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&gt;());</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&gt;());</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</span> <span class="special">&gt;());</span>
+</pre>
+<p>
+ </p>
+<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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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#complements">complements</a> version.
+ </p>
+<p>
+</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">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span> <span class="special">&lt;&lt;</span> <span class="string">" has "</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"fraction &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span> <span class="special">&lt;&lt;</span> <span class="string">" has "</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"fraction &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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&lt;Dist, Policy&gt;(complement(double, double, double, Policy)):
+ Computed scale (-0.48043523852179076) is &lt;= 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 &lt;= -2, p = 0.0227501
+Normal distribution with mean = 0, standard deviation 1, has fraction &gt; -2, p = 0.97725
+scale (standard deviation) = 0.647201
+Normal distribution with mean = 0 has fraction &lt;= -2, p = 0.001
+Normal distribution with mean = 0 has fraction &gt; -2, p = 0.999
+Normal distribution with mean = 0.946339 has fraction &lt;= -2 = 0.001
+Normal distribution with mean = 0.946339 has fraction &gt; -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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/geometric_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,504 @@
+<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.77.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_dist_stat_tut_weg_geometric_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.weg.geometric_eg"></a><a class="link" href="geometric_eg.html" title="Geometric Distribution Examples">Geometric
+ Distribution Examples</a>
+</h5></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>
+<p>
+</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>
+ </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>
+ 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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</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>
+ </p>
+<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>
+<h6>
+<a name="math_toolkit.dist.stat_tut.weg.geometric_eg.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.geometric_eg.throwing_a_dice"></a></span><a class="link" href="geometric_eg.html#math_toolkit.dist.stat_tut.weg.geometric_eg.throwing_a_dice">Throwing
+ a dice</a>
+ </h6>
+<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>
+<p>
+</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>
+ </p>
+<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&#8202;&#775;.
+ </p>
+<p>
+ We therefore start by constructing a geometric distribution with the
+ one parameter success_fraction, the probability of success.
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ To confirm, we can echo the success_fraction parameter of the distribution.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"success fraction of a six-sided dice is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">g6</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ So the probability of getting a three at the first throw (zero failures)
+ is
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.1667</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.1667</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.1389</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"pdf(g6, 0) + pdf(g6, 1) = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Or more conveniently, and more generally, we can use the Cumulative Distribution
+ Function CDF.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"cdf(g6, 1) = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.3056</span>
+</pre>
+<p>
+ </p>
+<p>
+ If we allow many more (12) throws, the probability of getting our <span class="emphasis"><em>three</em></span>
+ gets very high:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"cdf(g6, 12) = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.9065 or 90% probability.</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"quantile(g6, 0.99) = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 24.26</span>
+</pre>
+<p>
+ </p>
+<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="../../../policy/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 &#8192;&#8192; <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>
+<p>
+</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.1389</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.3056</span>
+</pre>
+<p>
+ </p>
+<p>
+ We could also the complement to express the required probability as 1
+ - 0.99 = 0.01 (and get the same result):
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"quantile(complement(g6, 1 - p)) "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 24.26</span>
+</pre>
+<p>
+ </p>
+<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">&#8192;&#8192; R&gt; formatC(pgeom(0.0001,0.5, FALSE), digits=17) " 0.5"
+</pre>
+<p>
+ So in Boost.Math the equivalent is
+ </p>
+<p>
+</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">&lt;</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">&lt;&gt;</span> <span class="special">&gt;()</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">&lt;&lt;</span> <span class="string">"BOOST_NO_CXX11_NUMERIC_LIMITS is defined"</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">max_digits10</span><span class="special">;</span>
+<span class="preprocessor">#endif</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Show all potentially significant decimal digits std::numeric_limits&lt;double&gt;::max_digits10 = "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">max_digits10</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// returns 0.5000346561579232, not exact 0.5.</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// returns exactly 0.5</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting"><code class="computeroutput"><span class="special">&gt;</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">&gt;</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">&gt;</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>
+<h6>
+<a name="math_toolkit.dist.stat_tut.weg.geometric_eg.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.geometric_eg.surveying_customers_to_find_one_with_a_faulty_product"></a></span><a class="link" href="geometric_eg.html#math_toolkit.dist.stat_tut.weg.geometric_eg.surveying_customers_to_find_one_with_a_faulty_product">Surveying
+ customers to find one with a faulty product</a>
+ </h6>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">" quantile(g, "</span> <span class="special">&lt;&lt;</span> <span class="identifier">c</span> <span class="special">&lt;&lt;</span> <span class="string">") = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"To be "</span> <span class="special">&lt;&lt;</span> <span class="identifier">c</span> <span class="special">*</span> <span class="number">100</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"% confident of finding we customer with a fault, need to survey "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" customers."</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"To be "</span> <span class="special">&lt;&lt;</span> <span class="identifier">c</span> <span class="special">*</span> <span class="number">100</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"% confident of finding we customer with a fault, need to survey "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" customers."</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"To be "</span> <span class="special">&lt;&lt;</span> <span class="identifier">c</span> <span class="special">*</span> <span class="number">100</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"% confident of finding we customer with a fault, need to survey "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" customers."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 79</span>
+</pre>
+<p>
+ </p>
+<h6>
+<a name="math_toolkit.dist.stat_tut.weg.geometric_eg.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.geometric_eg.basket_ball_shooters"></a></span><a class="link" href="geometric_eg.html#math_toolkit.dist.stat_tut.weg.geometric_eg.basket_ball_shooters">Basket
+ Ball Shooters</a>
+ </h6>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ What is probability of getting 1st try in the basket, that is with no
+ failures?
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of score on 1st try = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.75</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of score on 5th try = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.0029</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Probability of score on 5th try = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Probability of score on 5th try = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.031</span>
+</pre>
+<p>
+ </p>
+<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>
+<h6>
+<a name="math_toolkit.dist.stat_tut.weg.geometric_eg.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.geometric_eg.estimating_failures"></a></span><a class="link" href="geometric_eg.html#math_toolkit.dist.stat_tut.weg.geometric_eg.estimating_failures">Estimating
+ failures</a>
+ </h6>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Probability is failure is "</span> <span class="special">&lt;&lt;</span> <span class="number">1</span><span class="special">/</span><span class="identifier">k</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"geometric::find_lower_bound_on_p("</span> <span class="special">&lt;&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special">&lt;&lt;</span> <span class="string">") = "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">t</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"geometric::find_upper_bound_on_p("</span> <span class="special">&lt;&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special">&lt;&lt;</span> <span class="string">") = "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">t</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.037</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"geometric::find_lower_bound_on_p("</span> <span class="special">&lt;&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special">&lt;&lt;</span> <span class="string">") = "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">t</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"geometric::find_upper_bound_on_p("</span> <span class="special">&lt;&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special">&lt;&lt;</span> <span class="string">") = "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">t</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"geometric::find_lower_bound_on_p("</span> <span class="special">&lt;&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special">&lt;&lt;</span> <span class="string">") = "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">t</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"geometric::find_upper_bound_on_p("</span> <span class="special">&lt;&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special">&lt;&lt;</span> <span class="string">") = "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">t</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.052</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&amp;</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">&lt;&lt;</span> <span class="string">"\nMessage from thrown exception was:\n "</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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&lt;double&gt;&amp;, double):
+ Number of failures argument is -1, but must be &gt;= 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/inverse_chi_squared_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/inverse_chi_squared_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,367 @@
+<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.77.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_dist_stat_tut_weg_inverse_chi_squared_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></div></div></div>
+<p>
+ The scaled-inversed-chi-squared distribution is the conjugate prior distribution
+ for the variance (&#963;<sup>2</sup>) parameter of a normal distribution with known expectation
+ (&#956;). 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 &#956;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 &#956;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 &#956;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 &#956;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.dist.stat_tut.weg.inverse_chi_squared_eg.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.inverse_chi_squared_eg.step_one__using_the_survey_information_"></a></span><a class="link" href="inverse_chi_squared_eg.html#math_toolkit.dist.stat_tut.weg.inverse_chi_squared_eg.step_one__using_the_survey_information_">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 &#956;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
+ (&#957;<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Prior distribution:"</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" 2.5% quantile: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" 50% quantile: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" 97.5% quantile: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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 &lt;=
+ 15 or &gt; 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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" probability variance &lt;= 15: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" probability variance &lt;= 25: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" probability variance &gt; 50: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ This produces this output:
+ </p>
+<pre class="programlisting"><span class="identifier">probability</span> <span class="identifier">variance</span> <span class="special">&lt;=</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">&lt;=</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">&gt;</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.dist.stat_tut.weg.inverse_chi_squared_eg.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.inverse_chi_squared_eg.step_2__investigate_a_single_machine"></a></span><a class="link" href="inverse_chi_squared_eg.html#math_toolkit.dist.stat_tut.weg.inverse_chi_squared_eg.step_2__investigate_a_single_machine">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>
+ &#8192;&#8192; &#957;<sub>posterior</sub> = &#957;<sub>prior</sub> + n
+ </p>
+<p>
+ which gives the posteriorDF below, and
+ </p>
+<p>
+ &#8192;&#8192; s<sub>posterior</sub> = (&#957;<sub>prior</sub>s<sub>prior</sub> + &#931;<sup>n</sup><sub>i=1</sub>(x<sub>i</sub> - &#956;)<sup>2</sup>) / (&#957;<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 &#956;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 &#931;<sup>n</sup><sub>i=1</sub>(x<sub>i</sub> - &#956;)<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 (&#957;<sub>posterior</sub>) = 120 and scale (s<sub>posterior</sub>) = 49.54.
+ </p>
+<p>
+</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">&lt;&lt;</span><span class="string">"balls sample size: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ballsSampleSize</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span><span class="string">"balls sample variance: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ballsSampleVariance</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"prior degrees-of-freedom: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">priorDF</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"posterior degrees-of-freedom: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">posteriorDF</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"prior scale: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">priorScale</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"posterior scale: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">posteriorScale</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Posterior distribution:"</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" 2.5% quantile: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" 50% quantile: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" 97.5% quantile: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" probability variance &lt;= 15: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" probability variance &lt;= 25: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" probability variance &gt; 50: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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">&lt;=</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">&lt;=</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">&gt;</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 (&lt;=
+ 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 &gt; 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 &lt;= 15: 0.031
+ probability variance &lt;= 25: 0.458
+ probability variance &gt; 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 &lt;= 15: 2.97e-031
+ probability variance &lt;= 25: 8.85e-010
+ probability variance &gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/nag_library.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/nag_library.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_nag_library">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></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">&amp;</span><span class="identifier">plek</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">pgtk</span><span class="special">,</span> <span class="special">&amp;</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">&lt;&lt;</span> <span class="identifier">my_dist</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="comment">// Echo the NAG input n = 4 trials.</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">my_dist</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="comment">// Echo the NAG input p = 0.5</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" "</span> <span class="comment">// NAG plek with k = 2</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" "</span> <span class="comment">// NAG pgtk with k = 2</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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 &lt;= 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 &gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/nccs_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/nccs_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_nccs_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></div></div></div>
+<div class="toc"><dl><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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/nccs_eg/nccs_power_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/nccs_eg/nccs_power_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,1301 @@
+<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.77.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_dist_stat_tut_weg_nccs_eg_nccs_power_eg">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></div></div></div>
+<p>
+ This example computes a table of the power of the &#967;<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
+ &#967;<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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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>
+ </p>
+<p>
+ Create a table of the power of the &#967;<sup>2</sup> test at 5% significance level,
+ start with a table header:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;=</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">&lt;&lt;</span> <span class="string">"[[lambda]="</span> <span class="special">&lt;&lt;</span> <span class="identifier">lam</span> <span class="special">&lt;&lt;</span> <span class="string">"]"</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"]\n"</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;=</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">&lt;&lt;</span> <span class="string">"[["</span> <span class="special">&lt;&lt;</span> <span class="identifier">n</span> <span class="special">&lt;&lt;</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">&lt;=</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>
+ </p>
+<p>
+ Calculate the &#967;<sup>2</sup> statistic for a 5% significance:
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ The power of the test is given by the complement of the CDF of the
+ non-central &#967;<sup>2</sup> distribution:
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ Then output the cell value:
+ </p>
+<p>
+</p>
+<pre class="programlisting"> <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"["</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">beta</span> <span class="special">&lt;&lt;</span> <span class="string">"]"</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"]"</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"]"</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<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 &#957;=10 and &#955;=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>
+ &#957;
+ </p>
+ </th>
+<th>
+ <p>
+ &#955;=2
+ </p>
+ </th>
+<th>
+ <p>
+ &#955;=4
+ </p>
+ </th>
+<th>
+ <p>
+ &#955;=6
+ </p>
+ </th>
+<th>
+ <p>
+ &#955;=8
+ </p>
+ </th>
+<th>
+ <p>
+ &#955;=10
+ </p>
+ </th>
+<th>
+ <p>
+ &#955;=12
+ </p>
+ </th>
+<th>
+ <p>
+ &#955;=14
+ </p>
+ </th>
+<th>
+ <p>
+ &#955;=16
+ </p>
+ </th>
+<th>
+ <p>
+ &#955;=18
+ </p>
+ </th>
+<th>
+ <p>
+ &#955;=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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/neg_binom_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_neg_binom_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,233 @@
+<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.77.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_dist_stat_tut_weg_neg_binom_eg_neg_binom_conf">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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">&lt;&gt;::</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">&lt;&gt;::</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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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>
+ </p>
+<p>
+ First define a table of significance levels: these are the probabilities
+ that the true occurrence frequency lies outside the calculated interval:
+ </p>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Number of trials"</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">trials</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Number of successes"</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">successes</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Number of failures"</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">trials</span> <span class="special">-</span> <span class="identifier">successes</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Observed frequency of occurrence"</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</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>
+ </p>
+<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>
+<p>
+</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">&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">lower</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">upper</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,213 @@
+<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.77.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_dist_stat_tut_weg_neg_binom_eg_neg_binom_size_eg">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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">&lt;&gt;::</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>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</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 &lt;= p &lt;= 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">&lt;&lt;</span> <span class="string">"\n"</span><span class="string">"Target number of failures = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", Success fraction = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="number">100</span> <span class="special">*</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">"%"</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" "</span>
+ <span class="comment">// find_minimum_number_of_trials</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">6</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</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>
+ </p>
+<p>
+ finally we can produce some tables of minimum trials for the chosen
+ confidence levels:
+ </p>
+<p>
+</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>
+<p>
+ </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>
+ 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,603 @@
+<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.77.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_dist_stat_tut_weg_neg_binom_eg_negative_binomial_example1">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">try</span>
+<span class="special">{</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</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>
+ </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).
+ </p>
+<p>
+ We therefore start by constructing a negative binomial distribution
+ with parameters sales_quota (required successes) and probability of
+ success.
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ To confirm, display the success_fraction &amp; successes parameters
+ of the distribution.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Pat has a sales per house success rate of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">success_fraction</span>
+ <span class="special">&lt;&lt;</span> <span class="string">".\nTherefore he would, on average, sell "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" bars after trying 100 houses."</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"With a success rate of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nb</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", he might expect, on average,\n"</span>
+ <span class="string">"to need to visit about "</span> <span class="special">&lt;&lt;</span> <span class="identifier">success_fraction</span> <span class="special">*</span> <span class="identifier">all_houses</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" houses in order to sell all "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nb</span><span class="special">.</span><span class="identifier">successes</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" bars. "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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.dist.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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// == pdf(nb, 0)</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the 6th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the 7th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the 8th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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, &amp; 8.</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" bars\non or before the "</span> <span class="special">&lt;&lt;</span> <span class="number">8</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">Probability of selling his quota of 5 bars on or before the 8th house is 0.17367
+</pre>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability that Pat finishes exactly on the 10th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" bars\non or before the "</span> <span class="special">&lt;&lt;</span> <span class="number">10</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes exactly on the 11th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" bars\non or before the "</span> <span class="special">&lt;&lt;</span> <span class="number">11</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes exactly on the 12th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" bars\non or before the "</span> <span class="special">&lt;&lt;</span> <span class="number">12</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the "</span> <span class="special">&lt;&lt;</span> <span class="identifier">all_houses</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" house is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" bars\non or before the "</span> <span class="special">&lt;&lt;</span> <span class="identifier">all_houses</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of failing to sell his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" bars\neven after visiting all "</span> <span class="special">&lt;&lt;</span> <span class="identifier">all_houses</span> <span class="special">&lt;&lt;</span> <span class="string">" houses is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Probability of meeting sales quota on or before 8th house is "</span><span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting">Probability of meeting sales quota on or before 8th house is 0.174
+</pre>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", then the finishing house is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span><span class="special">&lt;&lt;</span> <span class="string">" quantile(nb, p) = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="number">1.</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", then the finishing house is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// 1.#INF == infinity.</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="number">0.</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", then the finishing house is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="number">0.5</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", then the finishing house is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", then the finishing house is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;</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">&lt;&lt;</span> <span class="string">"If confidence of meeting quota is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ps</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", then finishing house is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nHouse for "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="string">"th (last) sale. Probability (%)"</span> <span class="special">&lt;&lt;</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">&lt;</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">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">i</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">8</span><span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</spa
n>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&amp;</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">&lt;&lt;</span> <span class="string">"\nMessage from thrown exception was:\n "</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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&lt;double&gt;&amp;, double):
+ Number of failures argument is -1, but must be &gt;= 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,134 @@
+<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.77.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_dist_stat_tut_weg_neg_binom_eg_negative_binomial_example2">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></div></div></div>
+<p>
+ Example program showing output of a table of values of cdf and pdf
+ for various k failures.
+ </p>
+<p>
+</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">&lt;&lt;</span> <span class="identifier">showpoint</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"\n"</span><span class="string">" k pdf cdf"</span><span class="string">"\n"</span> <span class="special">&lt;&lt;</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">&lt;</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">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">17</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">showpoint</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">k</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</span><span class="identifier">k</span><span class="special">))</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</span><span class="identifier">k</span><span class="special">))</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+</p>
+<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>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/normal_example.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/normal_example.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_normal_example">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.stat_tut.weg.normal_example"></a><a class="link" href="normal_example.html" title="Normal Distribution Examples">Normal
+ Distribution Examples</a>
+</h5></div></div></div>
+<div class="toc"><dl><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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/normal_example/normal_misc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,604 @@
+<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.77.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_dist_stat_tut_weg_normal_example_normal_misc">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></div></div></div>
+<p>
+ The sample program normal_misc_examples.cpp
+ illustrates their use.
+ </p>
+<h5>
+<a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.h0"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.traditional_tables"></a></span><a class="link" href="normal_misc.html#math_toolkit.dist.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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</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">&lt;&lt;</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>
+ </p>
+<p>
+ Let's start by printing some traditional tables.
+ </p>
+<p>
+</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&lt;double&gt;::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&lt;double&gt;::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">&lt;&lt;</span> <span class="string">"Standard normal distribution, mean = "</span><span class="special">&lt;&lt;</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", standard deviation = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ First the probability distribution function (pdf).
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability distribution function values"</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" z "</span> <span class="string">" pdf "</span> <span class="special">&lt;&lt;</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">&lt;</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">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">6</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="identifier">precision</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">12</span><span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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>
+ </p>
+<p>
+ And the area under the normal curve from -&#8734; up to z, the cumulative distribution
+ function (cdf).
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="comment">// For a standard normal distribution </span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard normal mean = "</span><span class="special">&lt;&lt;</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", standard deviation = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Integral (area under the curve) from - infinity up to z "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" z "</span> <span class="string">" cdf "</span> <span class="special">&lt;&lt;</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">&lt;</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">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">6</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="identifier">precision</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">12</span><span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Area for z = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// to get the area for z.</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"> <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"95% of area has a z below "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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>
+ </p>
+<p>
+ and a two-sided test (a comparison between two levels, rather than
+ a one-sided test)
+ </p>
+<p>
+</p>
+<pre class="programlisting"> <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"95% of area has a z between "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">17</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">"Significance level for z == 1 is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha1</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ and place in our array of favorite alpha values.
+ </p>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"level of significance (alpha)"</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">4</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"2-sided 1 -sided z(alpha) "</span> <span class="special">&lt;&lt;</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">&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Notice the distinction between one-sided (also called one-tailed) where
+ we are using a &gt; <span class="bold"><strong>or</strong></span> &lt; test (and
+ not both) and considering the area of the tail (integral) from z up
+ to +&#8734;, and a two-sided test where we are using two &gt; <span class="bold"><strong>and</strong></span>
+ &lt; tests, and thus considering two tails, from -&#8734; up to z low and z
+ high up to +&#8734;.
+ </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 -&#8734; 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.dist.stat_tut.weg.normal_example.normal_misc.h1"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.standard_deviations_either_side_of_the_mean"></a></span><a class="link" href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.standard_deviations_either_side_of_the_mean">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>
+<p>
+</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">&lt;&lt;</span> <span class="identifier">showpoint</span> <span class="special">&lt;&lt;</span> <span class="string">"cdf(s, s.standard_deviation()) = "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"cdf(complement(s, s.standard_deviation())) = "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction 1 standard deviation within either side of mean is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction 2 standard deviations within either side of mean is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction 3 standard deviations within either side of mean is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ To a useful precision, the 1, 2 &amp; 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 confidence intervals
+ 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.dist.stat_tut.weg.normal_example.normal_misc.h2"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.some_simple_examples"></a></span><a class="link" href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.some_simple_examples">Some
+ simple examples</a>
+ </h5>
+<h5>
+<a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.h3"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.life_of_light_bulbs"></a></span><a class="link" href="normal_misc.html#math_toolkit.dist.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>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ The we can use the Cumulative distribution function to predict fractions
+ (or percentages, if * 100) that will last various lifetimes.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction of bulbs that will last at best (&lt;=) "</span> <span class="comment">// P(X &lt;= 1000)</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">expected_life</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span><span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction of bulbs that will last at least (&gt;) "</span> <span class="comment">// P(X &gt; 1000)</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">expected_life</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span><span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Fraction of bulbs that will last between "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">min_life</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="identifier">max_life</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span>
+ <span class="special">&lt;&lt;</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 &lt;= 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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// P(X &lt;= 900)</span>
+</pre>
+<p>
+ </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>
+ 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.dist.stat_tut.weg.normal_example.normal_misc.h4"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.how_many_onions_"></a></span><a class="link" href="normal_misc.html#math_toolkit.dist.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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Percentage of weeks overstocked "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// P(X &lt;=160)</span>
+<span class="comment">// Percentage of weeks overstocked 97.7</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Store should stock "</span> <span class="special">&lt;&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">stock_95</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" sacks to meet 95% of demands."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ And it is easy to estimate how to meet 80% of demand, and waste even
+ less.
+ </p>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Store should stock "</span> <span class="special">&lt;&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">stock_80</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" sacks to meet 8 out of 10 demands."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<h5>
+<a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.h5"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.packing_beef"></a></span><a class="link" href="normal_misc.html#math_toolkit.dist.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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Percentage of packs &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">max_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span>
+<span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// P(X &gt; 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">&lt;&lt;</span><span class="string">"fraction of packs &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">under_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// fraction of packs &lt;= 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">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">under_weight</span>
+<span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">xpacks</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// fraction of packs &gt;= 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">&lt;&lt;</span> <span class="string">"Setting the packer to "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nominal_mean</span> <span class="special">&lt;&lt;</span> <span class="string">" will mean that "</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">under_weight</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Setting the packer to 3.06449 will mean that fraction of packs &gt;=
+ 2.9 is 0.95.
+ </p>
+<p>
+ Setting the packer to 3.13263 will mean that fraction of packs &gt;=
+ 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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">//</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span><span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">under_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" and standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">//</span>
+</pre>
+<p>
+ </p>
+<p>
+ Fraction of packs &gt;= 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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span><span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">under_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" and standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Fraction of packs &gt;= 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="../../../../toolkit/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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"prob = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">prob</span> <span class="special">&lt;&lt;</span> <span class="string">", quantile(p) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">qp</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"If we want the "</span><span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" th quantile to be located at "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">x</span> <span class="special">&lt;&lt;</span> <span class="string">", would need a standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sd95</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span><span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">under_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" and standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack95</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="comment">// Fraction of packs &gt;= 2.9 with a mean of 3 and standard deviation of 0.0608 is 0.95</span>
+</pre>
+<p>
+ </p>
+<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.dist.stat_tut.weg.normal_example.normal_misc.h6"></a>
+ <span class="phrase"><a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.length_of_bolts"></a></span><a class="link" href="normal_misc.html#math_toolkit.dist.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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Fraction long enough [ P(X &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">top</span> <span class="special">&lt;&lt;</span> <span class="string">") ] is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction too short [ P(X &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">bottom</span> <span class="special">&lt;&lt;</span> <span class="string">") ] is "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction OK -between "</span> <span class="special">&lt;&lt;</span> <span class="identifier">bottom</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="identifier">top</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"[ P(X &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">top</span> <span class="special">&lt;&lt;</span> <span class="string">") - P(X&lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">bottom</span> <span class="special">&lt;&lt;</span> <span class="string">" ) ] is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction too long [ P(X &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">top</span> <span class="special">&lt;&lt;</span> <span class="string">") ] is "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"95% of bolts are shorter than "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/st_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_st_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.dist.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>
+</h5></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/st_eg/paired_st.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/paired_st.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_dist_stat_tut_weg_st_eg_paired_st">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/st_eg/tut_mean_intervals.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_intervals.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,260 @@
+<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.77.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_dist_stat_tut_weg_st_eg_tut_mean_intervals">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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, /&#945;/ is the desired significance level and <span class="emphasis"><em>t<sub>(&#945;/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 &#945; &#160; is the maximum acceptable risk of falsely rejecting
+ the null-hypothesis. The smaller the value of &#945; the greater the strength
+ of the test.
+ </p>
+<p>
+ The confidence level of the test is defined as 1 - &#945;, 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 normal distribution
+ 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">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Number of Observations"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">Sn</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Mean"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">Sm</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard Deviation"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">Sd</span> <span class="special">&lt;&lt;</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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/st_eg/tut_mean_size.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_size.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,171 @@
+<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.77.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_dist_stat_tut_weg_st_eg_tut_mean_size">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;&lt;</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">&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">16</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">16</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">size</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/st_eg/tut_mean_test.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_test.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,326 @@
+<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.77.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_dist_stat_tut_weg_st_eg_tut_mean_test">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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| &lt; 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">&lt;</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| &gt; 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">&gt;</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 &gt; 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">&gt;</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 &gt; 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">&gt;</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 &lt; 5.000 REJECTED
+ Mean &gt; 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 &amp; 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 &lt; 38.900 REJECTED
+ Mean &gt; 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 &lt; 38.900 NOT REJECTED
+Mean &gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/dist/stat_tut/weg/st_eg/two_sample_students_t.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,350 @@
+<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.77.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_dist_stat_tut_weg_st_eg_two_sample_students_t">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="math_toolkit.dist.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>
+</h6></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">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Degrees of Freedom"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">v</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Pooled Standard Deviation"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sp</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"T Statistic"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">t_stat</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that difference is due to chance"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="number">2</span> <span class="special">*</span> <span class="identifier">q</span> <span class="special">&lt;&lt;</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| &lt; 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">&lt;</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| &gt; 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">&lt;</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 &gt; 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">&gt;</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 &gt; 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">&gt;</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 &lt; Sample 2 Mean NOT REJECTED
+ Sample 1 Mean &gt; 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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Degrees of Freedom"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">v</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"T Statistic"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">t_stat</span> <span class="special">&lt;&lt;</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 &lt; Sample 2 Mean NOT REJECTED
+ Sample 1 Mean &gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/extern_c.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/extern_c.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>TR1 and C99 external "C" Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="utils/next_float/float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance">
+<link rel="next" href="extern_c/tr1.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="utils/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="extern_c/tr1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_extern_c">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.extern_c"></a><a class="link" href="extern_c.html" title='TR1 and C99 external "C" Functions'>TR1 and C99 external "C"
+ Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<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"><a href="extern_c/tr1_ref.html">TR1 C Functions Quick
+ Reference</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="extern_c/tr1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/extern_c/c99.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/extern_c/c99.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,469 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../extern_c.html" title='TR1 and C99 external "C" Functions'>
+<link rel="prev" href="tr1.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.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_extern_c_c99">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.extern_c.c99"></a><a class="link" href="c99.html" title="C99 C Functions">C99 C Functions</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.extern_c.c99.h0"></a>
+ <span class="phrase"><a name="math_toolkit.extern_c.c99.supported_c99_functions"></a></span><a class="link" href="c99.html#math_toolkit.extern_c.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="../main_overview/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.extern_c.c99.h1"></a>
+ <span class="phrase"><a name="math_toolkit.extern_c.c99.quick_reference"></a></span><a class="link" href="c99.html#math_toolkit.extern_c.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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../utils/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="../special/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="../utils/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="../utils/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="../special/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="../utils/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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.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/extern_c/tr1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/extern_c/tr1.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,611 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../extern_c.html" title='TR1 and C99 external "C" Functions'>
+<link rel="prev" href="../extern_c.html" title='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_extern_c_tr1">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.extern_c.tr1"></a><a class="link" href="tr1.html" title="C99 and TR1 C Functions Overview">C99 and TR1 C Functions Overview</a>
+</h3></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-&lt;suffix&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ float
+ </p>
+ </td>
+<td>
+ <p>
+ C99 Functions
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ boost_math_c99-&lt;suffix&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ double
+ </p>
+ </td>
+<td>
+ <p>
+ C99 Functions
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ boost_math_c99l-&lt;suffix&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ long double
+ </p>
+ </td>
+<td>
+ <p>
+ C99 Functions
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ boost_math_tr1f-&lt;suffix&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ float
+ </p>
+ </td>
+<td>
+ <p>
+ TR1 Functions
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ boost_math_tr1-&lt;suffix&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ double
+ </p>
+ </td>
+<td>
+ <p>
+ TR1 Functions
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ boost_math_tr1l-&lt;suffix&gt;
+ </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">&lt;</span><span class="identifier">suffix</span><span class="special">&gt;</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">&lt;</span><span class="identifier">suffix</span><span class="special">&gt;</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.extern_c.tr1.h0"></a>
+ <span class="phrase"><a name="math_toolkit.extern_c.tr1.usage_recomendations"></a></span><a class="link" href="tr1.html#math_toolkit.extern_c.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">&lt;</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">&gt;</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">&lt;</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">&gt;</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="../perf/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.extern_c.tr1.h1"></a>
+ <span class="phrase"><a name="math_toolkit.extern_c.tr1.supported_c99_functions"></a></span><a class="link" href="tr1.html#math_toolkit.extern_c.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.extern_c.tr1.h2"></a>
+ <span class="phrase"><a name="math_toolkit.extern_c.tr1.supported_tr1_functions"></a></span><a class="link" href="tr1.html#math_toolkit.extern_c.tr1.supported_tr1_functions">Supported
+ TR1 Functions</a>
+ </h5>
+<p>
+ See also the <a class="link" href="tr1.html" title="C99 and TR1 C Functions Overview">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="../main_overview/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.extern_c.tr1.h3"></a>
+ <span class="phrase"><a name="math_toolkit.extern_c.tr1.currently_unsupported_c99_functions"></a></span><a class="link" href="tr1.html#math_toolkit.extern_c.tr1.currently_unsupported_c99_functions">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.extern_c.tr1.h4"></a>
+ <span class="phrase"><a name="math_toolkit.extern_c.tr1.currently_unsupported_tr1_functions"></a></span><a class="link" href="tr1.html#math_toolkit.extern_c.tr1.currently_unsupported_tr1_functions">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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/extern_c/tr1_ref.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/extern_c/tr1_ref.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,530 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../extern_c.html" title='TR1 and C99 external "C" Functions'>
+<link rel="prev" href="c99.html" title="C99 C Functions">
+<link rel="next" href="../constants.html" title="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_extern_c_tr1_ref">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.extern_c.tr1_ref"></a><a class="link" href="tr1_ref.html" title="TR1 C Functions Quick Reference">TR1 C Functions Quick
+ Reference</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.extern_c.tr1_ref.h0"></a>
+ <span class="phrase"><a name="math_toolkit.extern_c.tr1_ref.supported_tr1_functions"></a></span><a class="link" href="tr1_ref.html#math_toolkit.extern_c.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="../main_overview/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.extern_c.tr1_ref.h1"></a>
+ <span class="phrase"><a name="math_toolkit.extern_c.tr1_ref.quick_reference"></a></span><a class="link" href="tr1_ref.html#math_toolkit.extern_c.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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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.extern_c.tr1_ref.h2"></a>
+ <span class="phrase"><a name="math_toolkit.extern_c.tr1_ref.currently_unsupported_tr1_functions"></a></span><a class="link" href="tr1_ref.html#math_toolkit.extern_c.tr1_ref.currently_unsupported_tr1_functions">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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/gcd_lcm.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>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.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="octonions/todo.html" title="To Do">
+<link rel="next" href="gcd_lcm/introduction.html" title="Introduction">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="octonions/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="gcd_lcm/introduction.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_gcd_lcm">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.gcd_lcm"></a><a class="link" href="gcd_lcm.html" title="Integer Utilities (Greatest Common Divisor and Least Common Multiple)">Integer Utilities (Greatest Common
+ Divisor and Least Common Multiple)</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Synopsis</span></dt>
+<dt><span class="section"><a href="gcd_lcm/gcd_function_object.html">GCD Function
+ Object</a></span></dt>
+<dt><span class="section"><a href="gcd_lcm/lcm_function_object.html">LCM Function
+ Object</a></span></dt>
+<dt><span class="section"><a href="gcd_lcm/run_time.html">Run-time GCD &amp; LCM
+ Determination</a></span></dt>
+<dt><span class="section"><a href="gcd_lcm/compile_time.html">Compile time GCD and
+ LCM determination</a></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="gcd_lcm/introduction.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/compile_time.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/compile_time.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,98 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="run_time.html" title="Run-time GCD &amp; LCM Determination">
+<link rel="next" href="header.html" title="Header &lt;boost/math/common_factor.hpp&gt;">
+</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="header.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_gcd_lcm_compile_time">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.compile_time"></a><a class="link" href="compile_time.html" title="Compile time GCD and LCM determination">Compile time GCD and
+ LCM determination</a>
+</h3></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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">static_gcd_type</span><span class="special">,</span> <span class="identifier">implementation_defined</span><span class="special">&gt;</span>
+<span class="special">{</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">static_gcd_type</span><span class="special">,</span> <span class="identifier">implementation_defined</span><span class="special">&gt;</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.gcd_lcm.compile_time.h0"></a>
+ <span class="phrase"><a name="math_toolkit.gcd_lcm.compile_time.example"></a></span><a class="link" href="compile_time.html#math_toolkit.gcd_lcm.compile_time.example">Example</a>
+ </h4>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">algorithm</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;&lt;</span> <span class="string">"The GCD and LCM of 6 and 15 are "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">" and "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">", respectively."</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"The GCD and LCM of 8 and 9 are "</span>
+ <span class="special">&lt;&lt;</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">&lt;</span><span class="number">8</span><span class="special">,</span> <span class="number">9</span><span class="special">&gt;::</span><span class="identifier">value</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" and "</span>
+ <span class="special">&lt;&lt;</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">&lt;</span><span class="number">8</span><span class="special">,</span> <span class="number">9</span><span class="special">&gt;::</span><span class="identifier">value</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", respectively."</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;()</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="header.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/credits.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/credits.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="history.html" title="History">
+<link rel="next" href="../toolkit.html" title="Internals and Internal Details">
+</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="../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_gcd_lcm_credits">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.credits"></a><a class="link" href="credits.html" title="Credits">Credits</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/gcd_lcm/demo.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/demo.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="header.html" title="Header &lt;boost/math/common_factor.hpp&gt;">
+<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="header.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_gcd_lcm_demo">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.demo"></a><a class="link" href="demo.html" title="Demonstration Program">Demonstration Program</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/gcd_lcm/gcd_function_object.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/gcd_function_object.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,67 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="synopsis.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="synopsis.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_lcm_gcd_function_object">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.gcd_function_object"></a><a class="link" href="gcd_function_object.html" title="GCD Function Object">GCD Function
+ Object</a>
+</h3></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">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</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">&amp;</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">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/gcd_lcm/header.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/header.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Header &lt;boost/math/common_factor.hpp&gt;</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="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_gcd_lcm_header">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.header"></a><a class="link" href="header.html" title="Header &lt;boost/math/common_factor.hpp&gt;">Header &lt;boost/math/common_factor.hpp&gt;</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/gcd_lcm/history.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/history.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="rationale.html" title="Rationale">
+<link rel="next" href="credits.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="credits.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_gcd_lcm_history">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.history"></a><a class="link" href="history.html" title="History">History</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="credits.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/introduction.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/introduction.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="../gcd_lcm.html" title="Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<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="../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="synopsis.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_gcd_lcm_introduction">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
+</h3></div></div></div>
+<p>
+ The class and function templates in &lt;boost/math/common_factor.hpp&gt;
+ 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="synopsis.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/lcm_function_object.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/lcm_function_object.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,69 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="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 &amp; 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_gcd_lcm_lcm_function_object">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.lcm_function_object"></a><a class="link" href="lcm_function_object.html" title="LCM Function Object">LCM Function
+ Object</a>
+</h3></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">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</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">&amp;</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">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/gcd_lcm/rationale.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/rationale.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="demo.html" title="Demonstration Program">
+<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="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="history.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_gcd_lcm_rationale">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="history.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/run_time.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/run_time.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,55 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Run-time GCD &amp; LCM Determination</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="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_gcd_lcm_run_time">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.run_time"></a><a class="link" href="run_time.html" title="Run-time GCD &amp; LCM Determination">Run-time GCD &amp; LCM
+ Determination</a>
+</h3></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">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</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">&amp;</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">b</span> <span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</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">&amp;</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/gcd_lcm/synopsis.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_lcm/synopsis.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="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_gcd_lcm_synopsis">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.gcd_lcm.synopsis"></a><a class="link" href="synopsis.html" title="Synopsis">Synopsis</a>
+</h3></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">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <span class="identifier">gcd_evaluator</span><span class="special">;</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <span class="identifier">lcm_evaluator</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</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">&amp;</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">b</span> <span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</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">&amp;</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">static_gcd</span><span class="special">;</span>
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/indexes.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/indexes.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Indexes</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="status/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="status/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="section math_toolkit_indexes">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.indexes"></a><a class="link" href="indexes.html" title="Indexes">Indexes</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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/math_toolkit/indexes/s01.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/indexes/s01.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,2483 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../indexes.html" title="Indexes">
+<link rel="prev" href="../indexes.html" title="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 id1427305">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1427305"></a>Function Index</h3></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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/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="../special/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../dist/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_beta_a__b__x_" title="Table&#160;28.&#160;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="../special/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="../dist/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="../special/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="../extern_c/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="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_betac_a_b_x_" title="Table&#160;29.&#160;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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../backgrounders/implementation.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="../dist/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="../policy/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="../dist/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="../dist/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="../dist/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="../utils/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="../main_overview/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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../octonions/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="../quaternions/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="../quaternions/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="../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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../octonions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../status/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../status/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/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="../special/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="../special/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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erf_z_" title="Table&#160;30.&#160;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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erfc_z_" title="Table&#160;31.&#160;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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../policy/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="../special/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="../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="../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="../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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/expint/expint_n.html#math_toolkit.special.expint.expint_n.errors_in_the_function_expint_n__z_" title="Table&#160;49.&#160;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="../special/expint/expint_i.html#math_toolkit.special.expint.expint_i.errors_in_the_function_expint_z_" title="Table&#160;50.&#160;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="../special/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="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../using_udt/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_p_a_z_" title="Table&#160;21.&#160;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="../special/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="../special/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="../special/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="../dist/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="../dist/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="../special/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="../special/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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_q_a_z_" title="Table&#160;22.&#160;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="../special/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="../dist/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="../dist/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="../special/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="../special/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="../gcd_lcm/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">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="../constants/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="../constants/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="../constants/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="../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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../dist/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="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b_x_" title="Table&#160;26.&#160;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="../special/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="../dist/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="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_b_x_" title="Table&#160;27.&#160;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="../special/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="../dist/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="../dist/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="../dist/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="../special/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="../dist/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="../special/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="../dist/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="../special/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="../dist/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="../dist/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="../special/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="../dist/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="../dist/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="../dist/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="../special/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="../dist/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="../dist/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="../special/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="../dist/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="../dist/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../backgrounders/implementation.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="../dist/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="../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="../using_udt/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../using_udt/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="../utils/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../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="../dist/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="../dist/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="../dist/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="../octonions/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="../quaternions/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="../quaternions/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../gcd_lcm/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">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="../using_udt/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../policy/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../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="../policy/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="../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="../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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../backgrounders/implementation.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="../dist/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="../dist/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="../main_overview/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="../dist/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="../dist/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="../policy/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="../octonions/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="../quaternions/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="../quaternions/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../utils/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../main_overview/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../octonions/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="../quaternions/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="../policy/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="../quaternions/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="../octonions/mem_fun.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="../octonions/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="../octonions/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="../special/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="../dist/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="../dist/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="../dist/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="../dist/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="../special/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="../dist/stat_tut/overview.html" title="Overview of Distributions"><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="../using_udt/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../policy/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="../dist/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="../dist/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="../dist/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="../quaternions/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="../quaternions/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="../quaternions/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="../dist/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="../main_overview/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="../dist/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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../using_udt/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../backgrounders/implementation.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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../quaternions/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="../quaternions/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../utils/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="../utils/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="../special/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="../special/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="../special/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="../dist/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="../dist/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="../dist/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="../dist/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="../octonions/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="../quaternions/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="../quaternions/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">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="../special/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../dist/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="../dist/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="../dist/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="../dist/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="../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="../octonions/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="../quaternions/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="../quaternions/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="../dist/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="../status/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="../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="../dist/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="../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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../policy/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="../policy/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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_a_z_" title="Table&#160;24.&#160;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="../special/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="../special/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="../special/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="../policy/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="../policy/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_delta_ratio_a__delta_" title="Table&#160;19.&#160;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="../special/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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_lower_a_z_" title="Table&#160;23.&#160;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="../special/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="../special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ratio_a__b_" title="Table&#160;20.&#160;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="../special/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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../using_udt/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../octonions/mem_fun.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="../octonions/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="../octonions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../octonions/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="../quaternions/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../special/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../utils/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="../dist/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="../dist/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="../main_overview/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../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="../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="../special/zetas/zeta.html#math_toolkit.special.zetas.zeta.errors_in_the_function_zeta_z_" title="Table&#160;48.&#160;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="../special/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="../special/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/math_toolkit/indexes/s02.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/indexes/s02.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../indexes.html" title="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 id1445150">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1445150"></a>Class Index</h3></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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../constants/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="../policy/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="../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="../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="../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="../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="../dist/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="../dist/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="../dist/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="../dist/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="../gcd_lcm/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../gcd_lcm/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="../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="../dist/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="../dist/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="../special/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="../dist/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="../utils/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="../utils/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="../dist/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="../dist/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="../dist/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="../dist/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="../policy/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="../dist/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="../octonions/non_mem.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="../octonions/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="../octonions/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="../dist/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="../dist/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="../policy/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="../policy/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="../quaternions/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="../quaternions/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="../quaternions/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="../dist/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="../dist/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="../dist/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="../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="../backgrounders/implementation.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="../dist/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="../dist/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="../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="../dist/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/math_toolkit/indexes/s03.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/indexes/s03.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../indexes.html" title="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 id1446233">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1446233"></a>Typedef Index</h3></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="../policy/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../policy/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="../policy/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="../dist/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="../policy/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="../policy/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="../policy/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../policy/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="../dist/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="../dist/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="../dist/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="../policy/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../dist/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="../dist/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="../policy/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="../dist/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="../dist/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="../policy/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../policy/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="../dist/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="../policy/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="../dist/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="../dist/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="../policy/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../policy/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="../policy/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="../policy/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="../dist/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="../policy/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="../gcd_lcm/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="../gcd_lcm/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="../main_overview/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="../dist/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="../dist/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="../policy/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../octonions/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="../octonions/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="../dist/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="../dist/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="../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="../quaternions/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="../quaternions/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="../dist/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="../dist/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="../dist/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="../octonions/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="../quaternions/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="../dist/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="../dist/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="../dist/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="../dist/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/math_toolkit/indexes/s04.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/indexes/s04.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,295 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../indexes.html" title="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 id1448128">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1448128"></a>Macro Index</h3></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="../constants/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="../backgrounders/implementation.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="../constants/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="../constants/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../special/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../policy/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="../policy/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../dist/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="../dist/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="../dist/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="../policy/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="../backgrounders/implementation.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="../policy/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="../dist/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="../policy/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../constants/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../perf/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../perf/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="../policy/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="../policy/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="../policy/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/compilers_overview.html#math_toolkit.main_overview.compilers_overview.supported_tested_compilers" title="Table&#160;9.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../policy/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="../special/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="../dist/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="../dist/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="../dist/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="../policy/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../perf/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="../perf/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="../policy/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../perf/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../constants/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/math_toolkit/indexes/s05.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/indexes/s05.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,5254 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../indexes.html" title="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 id1450720">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1450720"></a>Index</h3></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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../utils/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../policy/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../special/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="../special/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="../special/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="../special/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="../special/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="../dist/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_beta_a__b__x_" title="Table&#160;28.&#160;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="../special/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="../dist/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="../special/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="../extern_c/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_betac_a_b_x_" title="Table&#160;29.&#160;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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../dist/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="../dist/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="../special/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="../special/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 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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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_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="../special/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="../dist/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../constants/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="../backgrounders/implementation.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="../constants/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="../constants/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../special/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../policy/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="../policy/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../dist/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="../dist/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="../dist/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="../policy/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="../backgrounders/implementation.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="../policy/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="../dist/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="../policy/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../constants/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../perf/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../perf/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="../policy/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="../policy/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="../policy/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/compilers_overview.html#math_toolkit.main_overview.compilers_overview.supported_tested_compilers" title="Table&#160;9.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../policy/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="../special/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="../dist/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="../dist/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="../dist/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="../policy/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../perf/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="../perf/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="../policy/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../perf/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../constants/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="../policy/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../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="../dist/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/tr1.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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../dist/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="../dist/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="../dist/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="../policy/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="../policy/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../backgrounders/implementation.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="../dist/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="../policy/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="../dist/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="../dist/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="../dist/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="../utils/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="../policy/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="../policy/pol_tutorial/changing_policy_defaults.html" title="Changing 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="../policy/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="../policy/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="../main_overview/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../gcd_lcm/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="../gcd_lcm/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="../special/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="../special/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="../special/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="../special/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="../main_overview/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="../dist/stat_tut/overview.html" title="Overview of Distributions"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/stat_tut/overview.html" title="Overview of Distributions"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/stat_tut/overview.html" title="Overview of Distributions"><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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../using_udt/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="../using_udt/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="../using_udt/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="../using_udt/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="../using_udt/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="../using_udt/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="../using_udt/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="../using_udt/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="../using_udt/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="../using_udt/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="../dist/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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../octonions/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="../quaternions/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="../quaternions/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="../backgrounders/implementation.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="../dist/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="../dist/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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_macros" title="Table&#160;11.&#160;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="../main_overview/config_macros.html#math_toolkit.main_overview.config_macros.boost_math_tuning" title="Table&#160;12.&#160;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="../gcd_lcm/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="../dist/stat_tut/overview.html" title="Overview of Distributions"><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="../using_udt/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="../status/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="../constants/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="../special/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="../main_overview/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="../special/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="../special/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="../dist/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="../special/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="../dist/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="../special/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="../constants/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="../main_overview/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="../dist/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="../constants/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="../special/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="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="../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="../dist/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="../special/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="../backgrounders/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="../constants/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="../backgrounders/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="../dist/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="../constants/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="../constants/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="../constants/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="../using_udt/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="../using_udt/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="../using_udt/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="../dist/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="../constants/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="../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="../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="../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="../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="../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="../main_overview/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../status/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="../status/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="../octonions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../status/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../status/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../policy/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="../constants/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="../constants/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="../constants/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="../constants/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="../constants/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="../constants/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="../constants/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="../policy/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../main_overview/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="../policy/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="../policy/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="../dist/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="../dist/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">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="../policy/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../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="../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="../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="../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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erf_z_" title="Table&#160;30.&#160;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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erfc_z_" title="Table&#160;31.&#160;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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../policy/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../main_overview/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 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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_beta_a__b__x_" title="Table&#160;28.&#160;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="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_betac_a_b_x_" title="Table&#160;29.&#160;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="../special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erf_z_" title="Table&#160;30.&#160;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="../special/sf_erf/error_function.html#math_toolkit.special.sf_erf.error_function.errors_in_the_function_erfc_z_" title="Table&#160;31.&#160;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="../special/expint/expint_n.html#math_toolkit.special.expint.expint_n.errors_in_the_function_expint_n__z_" title="Table&#160;49.&#160;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="../special/expint/expint_i.html#math_toolkit.special.expint.expint_i.errors_in_the_function_expint_z_" title="Table&#160;50.&#160;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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_p_a_z_" title="Table&#160;21.&#160;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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_q_a_z_" title="Table&#160;22.&#160;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="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b_x_" title="Table&#160;26.&#160;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="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_b_x_" title="Table&#160;27.&#160;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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_a_z_" title="Table&#160;24.&#160;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="../special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_delta_ratio_a__delta_" title="Table&#160;19.&#160;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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_lower_a_z_" title="Table&#160;23.&#160;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="../special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ratio_a__b_" title="Table&#160;20.&#160;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="../special/zetas/zeta.html#math_toolkit.special.zetas.zeta.errors_in_the_function_zeta_z_" title="Table&#160;48.&#160;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">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="../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="../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="../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="../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="../policy/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">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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/stat_tut/weg/binom_eg/binomial_quiz_example.html" title="Binomial Quiz Example"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/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="../dist/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">infinity</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/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="../dist/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="../dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">negative_binomial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">normal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">pdf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/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>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/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="../dist/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>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/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>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/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">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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/expint/expint_n.html#math_toolkit.special.expint.expint_n.errors_in_the_function_expint_n__z_" title="Table&#160;49.&#160;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="../special/expint/expint_i.html#math_toolkit.special.expint.expint_i.errors_in_the_function_expint_z_" title="Table&#160;50.&#160;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="../special/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="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../special/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="../special/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="../special/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="../special/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="../dist/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="../extern_c/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="../dist/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="../gcd_lcm/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="../special/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="../dist/stat_tut/overview.html" title="Overview of Distributions"><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="../using_udt/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="../using_udt/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="../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="../status/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="../special/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="../dist/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="../special/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="../constants/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="../dist/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="../special/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="../dist/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="../dist/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="../main_overview/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="../dist/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="../constants/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="../dist/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="../special/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="../policy/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="../dist/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="../dist/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="../dist/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="../special/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="../dist/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="../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="../dist/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="../special/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="../backgrounders/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="../backgrounders/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="../quaternions/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="../dist/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="../constants/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="../using_udt/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="../using_udt/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../using_udt/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../utils/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="../utils/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../constants/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="../constants/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="../constants/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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">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="../utils/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="../utils/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="../utils/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="../special/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="../special/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="../special/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../policy/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="../dist/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../special/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="../special/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="../special/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="../dist/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="../dist/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="../policy/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_p_a_z_" title="Table&#160;21.&#160;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="../special/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="../special/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="../special/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="../dist/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="../dist/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="../special/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="../special/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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_gamma_q_a_z_" title="Table&#160;22.&#160;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="../special/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="../dist/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="../dist/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="../special/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="../special/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="../gcd_lcm/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">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="../gcd_lcm/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="../gcd_lcm/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="../gcd_lcm/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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><a class="link" href="../dist/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="../constants/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="../constants/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="../constants/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="../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="../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="../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="../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="../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="../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="../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="../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="../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="../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="../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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../dist/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="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b_x_" title="Table&#160;26.&#160;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="../special/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="../dist/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="../special/sf_beta/ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_b_x_" title="Table&#160;27.&#160;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="../special/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="../dist/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="../dist/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="../dist/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="../special/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="../dist/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="../special/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="../dist/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="../special/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="../dist/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="../dist/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="../special/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="../dist/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="../dist/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="../dist/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="../special/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="../dist/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="../dist/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="../special/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="../dist/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="../dist/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../backgrounders/implementation.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="../backgrounders/implementation.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="../backgrounders/implementation.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="../backgrounders/implementation.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="../backgrounders/implementation.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="../backgrounders/implementation.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="../backgrounders/implementation.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="../backgrounders/implementation.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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../policy/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="../backgrounders/implementation.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="../dist/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="../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="../constants/intro.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="../constants/intro.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="../utils/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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 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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../using_udt/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../policy/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="../policy/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="../using_udt/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="../utils/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../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="../status/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="../status/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="../status/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="../status/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="../dist/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="../dist/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="../dist/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="../octonions/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="../quaternions/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="../quaternions/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/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="../using_udt/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="../backgrounders/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="../special/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="../backgrounders/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="../special/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="../main_overview/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="../dist/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="../special/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="../status/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="../backgrounders/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="../special/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="../dist/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="../perf/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="../backgrounders/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="../backgrounders/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="../using_udt/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="../using_udt/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../gcd_lcm/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">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="../gcd_lcm/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="../gcd_lcm/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="../gcd_lcm/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="../using_udt/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../policy/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../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="../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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../special/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="../special/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="../special/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="../special/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../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="../policy/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="../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="../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="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="../policy/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="../policy/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="../special/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../backgrounders/implementation.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="../dist/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="../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="../dist/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="../main_overview/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="../dist/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="../dist/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="../special/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="../special/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="../policy/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="../octonions/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="../quaternions/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="../quaternions/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="../main_overview/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../utils/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../dist/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="../dist/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="../dist/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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../main_overview/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../utils/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="../utils/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../octonions/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="../quaternions/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="../policy/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="../quaternions/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="../dist/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="../dist/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="../policy/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../policy/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="../dist/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="../octonions/mem_fun.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="../octonions/non_mem.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="../octonions/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="../octonions/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="../octonions/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="../octonions/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="../octonions/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="../octonions/mem_fun.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="../octonions/mem_fun.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="../octonions/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="../octonions/non_mem.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="../octonions/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="../octonions/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="../octonions/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="../octonions/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="../octonions/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="../octonions/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="../octonions/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="../octonions/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="../policy/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="../special/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="../special/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="../special/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../perf/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="../perf/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="../perf/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="../perf/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="../perf/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="../perf/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../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="../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="../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="../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="../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="../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="../special/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../dist/stat_tut/overview.html" title="Overview of Distributions"><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="../using_udt/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../policy/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="../dist/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="../dist/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="../dist/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../dist/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="../main_overview/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="../dist/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="../special/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="../special/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../utils/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="../backgrounders/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="../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="../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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../backgrounders/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="../backgrounders/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../utils/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="../utils/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../special/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="../special/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 &amp; 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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../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="../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="../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="../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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../using_udt/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../utils/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="../utils/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="../utils/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="../utils/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="../policy/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.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="../backgrounders/implementation.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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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="../gcd_lcm/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="../gcd_lcm/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="../quaternions/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="../quaternions/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="../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="../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="../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="../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="../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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../special/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="../special/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="../special/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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">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="../octonions/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="../quaternions/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="../quaternions/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">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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../special/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="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../main_overview/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="../dist/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="../dist/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="../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="../octonions/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="../quaternions/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="../quaternions/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="../main_overview/compilers_overview.html#math_toolkit.main_overview.compilers_overview.supported_tested_compilers" title="Table&#160;9.&#160;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="../quaternions/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="../quaternions/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="../quaternions/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="../gcd_lcm/synopsis.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="../quaternions/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="../gcd_lcm/synopsis.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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/synopsis.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="../quaternions/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="../quaternions/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="../dist/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="../status/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="../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="../dist/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="../octonions/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="../octonions/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="../octonions/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="../quaternions/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="../quaternions/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="../quaternions/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="../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="../dist/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="../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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../policy/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="../policy/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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_a_z_" title="Table&#160;24.&#160;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="../special/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="../special/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="../special/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="../policy/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="../policy/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="../special/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_delta_ratio_a__delta_" title="Table&#160;19.&#160;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="../special/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="../special/sf_gamma/igamma.html#math_toolkit.special.sf_gamma.igamma.errors_in_the_function_tgamma_lower_a_z_" title="Table&#160;23.&#160;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="../special/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="../special/sf_gamma/gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ratio_a__b_" title="Table&#160;20.&#160;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="../special/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="../quaternions/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="../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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../extern_c/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../backgrounders/implementation.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="../dist/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../using_udt/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="../utils/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="../utils/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="../utils/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="../utils/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="../utils/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../extern_c/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="../policy/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../octonions/mem_fun.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="../octonions/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="../octonions/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="../quaternions/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="../quaternions/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="../quaternions/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="../quaternions/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="../octonions/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="../quaternions/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="../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="../constants/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="../constants/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="../constants/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="../constants/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="../constants/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="../constants/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../special/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../using_udt/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="../using_udt/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="../using_udt/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../policy/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="../using_udt/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="../using_udt/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="../using_udt/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="../using_udt/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="../using_udt/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="../utils/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="../dist/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="../dist/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="../main_overview/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../octonions/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="../octonions/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="../dist/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="../dist/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="../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="../quaternions/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="../quaternions/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="../dist/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="../dist/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="../dist/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="../octonions/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="../quaternions/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../dist/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="../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="../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="../special/zetas/zeta.html#math_toolkit.special.zetas.zeta.errors_in_the_function_zeta_z_" title="Table&#160;48.&#160;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="../special/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="../special/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/math_toolkit/inverse_complex.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Complex Number Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="constants/FAQ.html" title="FAQs">
+<link rel="next" href="inverse_complex/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="constants/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="inverse_complex/implementation.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_inverse_complex">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.inverse_complex"></a><a class="link" href="inverse_complex.html" title="Complex Number Functions">Complex Number Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="inverse_complex/implementation.html">Implementation
+ and Accuracy</a></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="inverse_complex/implementation.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/acos.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/acos.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="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_inverse_complex_acos">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inverse_complex.acos"></a><a class="link" href="acos.html" title="acos">acos</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.inverse_complex.acos.h0"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.acos.header_"></a></span><a class="link" href="acos.html#math_toolkit.inverse_complex.acos.header_">Header:</a>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<h5>
+<a name="math_toolkit.inverse_complex.acos.h1"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.acos.synopsis_"></a></span><a class="link" href="acos.html#math_toolkit.inverse_complex.acos.synopsis_">Synopsis:</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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" alt="acos"></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/inverse_complex/acosh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/acosh.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="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_inverse_complex_acosh">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inverse_complex.acosh"></a><a class="link" href="acosh.html" title="acosh">acosh</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.inverse_complex.acosh.h0"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.acosh.header_"></a></span><a class="link" href="acosh.html#math_toolkit.inverse_complex.acosh.header_">Header:</a>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<h5>
+<a name="math_toolkit.inverse_complex.acosh.h1"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.acosh.synopsis_"></a></span><a class="link" href="acosh.html#math_toolkit.inverse_complex.acosh.synopsis_">Synopsis:</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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" alt="acosh"></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/inverse_complex/asin.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/asin.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="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_inverse_complex_asin">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inverse_complex.asin"></a><a class="link" href="asin.html" title="asin">asin</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.inverse_complex.asin.h0"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.asin.header_"></a></span><a class="link" href="asin.html#math_toolkit.inverse_complex.asin.header_">Header:</a>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<h5>
+<a name="math_toolkit.inverse_complex.asin.h1"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.asin.synopsis_"></a></span><a class="link" href="asin.html#math_toolkit.inverse_complex.asin.synopsis_">Synopsis:</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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" alt="asin"></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/inverse_complex/asinh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/asinh.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="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_inverse_complex_asinh">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inverse_complex.asinh"></a><a class="link" href="asinh.html" title="asinh">asinh</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.inverse_complex.asinh.h0"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.asinh.header_"></a></span><a class="link" href="asinh.html#math_toolkit.inverse_complex.asinh.header_">Header:</a>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<h5>
+<a name="math_toolkit.inverse_complex.asinh.h1"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.asinh.synopsis_"></a></span><a class="link" href="asinh.html#math_toolkit.inverse_complex.asinh.synopsis_">Synopsis:</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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" alt="asinh"></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/inverse_complex/atan.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/atan.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="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_inverse_complex_atan">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inverse_complex.atan"></a><a class="link" href="atan.html" title="atan">atan</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.inverse_complex.atan.h0"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.atan.header_"></a></span><a class="link" href="atan.html#math_toolkit.inverse_complex.atan.header_">Header:</a>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<h5>
+<a name="math_toolkit.inverse_complex.atan.h1"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.atan.synopsis_"></a></span><a class="link" href="atan.html#math_toolkit.inverse_complex.atan.synopsis_">Synopsis:</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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" alt="atan"></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/inverse_complex/atanh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/atanh.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Functions">
+<link rel="prev" href="acosh.html" title="acosh">
+<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="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="history.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_inverse_complex_atanh">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inverse_complex.atanh"></a><a class="link" href="atanh.html" title="atanh">atanh</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.inverse_complex.atanh.h0"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.atanh.header_"></a></span><a class="link" href="atanh.html#math_toolkit.inverse_complex.atanh.header_">Header:</a>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<h5>
+<a name="math_toolkit.inverse_complex.atanh.h1"></a>
+ <span class="phrase"><a name="math_toolkit.inverse_complex.atanh.synopsis_"></a></span><a class="link" href="atanh.html#math_toolkit.inverse_complex.atanh.synopsis_">Synopsis:</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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" alt="atanh"></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="history.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/history.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/history.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Functions">
+<link rel="prev" href="atanh.html" title="atanh">
+<link rel="next" href="../quaternions.html" title="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_inverse_complex_history">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inverse_complex.history"></a><a class="link" href="history.html" title="History">History</a>
+</h3></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&lt;&gt;::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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/inverse_complex/implementation.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inverse_complex/implementation.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,54 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Functions">
+<link rel="prev" href="../inverse_complex.html" title="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_inverse_complex_implementation">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inverse_complex.implementation"></a><a class="link" href="implementation.html" title="Implementation and Accuracy">Implementation
+ and Accuracy</a>
+</h3></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&#949; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/main_overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,64 @@
+<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.77.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="main_overview/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="main_overview/intro.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_main_overview">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.main_overview"></a><a class="link" href="main_overview.html" title="Overview">Overview</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<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"><a href="main_overview/directories.html">Directory and
+ File Structure</a></span></dt>
+<dt><span class="section">Namespaces</span></dt>
+<dt><span class="section"><a href="main_overview/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"><a href="main_overview/config_macros.html">Configuration
+ Macros</a></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="main_overview/building.html">If and How to Build
+ a Boost.Math Library, and its Examples and Tests</a></span></dt>
+<dt><span class="section"><a href="main_overview/history1.html">History and What's
+ New</a></span></dt>
+<dt><span class="section"><a href="main_overview/tr1.html">C99 and C++ TR1 C-style
+ Functions</a></span></dt>
+<dt><span class="section"><a href="main_overview/faq.html">Frequently Asked Questions
+ FAQ</a></span></dt>
+<dt><span class="section"><a href="main_overview/contact.html">Contact Info and
+ Support</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="main_overview/intro.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/main_overview/building.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/building.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_building">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.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>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.main_overview.building.h0"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.building.building_a_library__shared__dynamic__dll_or_static__lib_"></a></span><a class="link" href="building.html#math_toolkit.main_overview.building.building_a_library__shared__dynamic__dll_or_static__lib_">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='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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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.main_overview.building.h1"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.building.building_the_examples"></a></span><a class="link" href="building.html#math_toolkit.main_overview.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.main_overview.building.h2"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.building.building_the_tests"></a></span><a class="link" href="building.html#math_toolkit.main_overview.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/compilers_overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/compilers_overview.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_compilers_overview">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.compilers_overview"></a><a class="link" href="compilers_overview.html" title="Compilers">Compilers</a>
+</h3></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.main_overview.compilers_overview.supported_tested_compilers"></a><p class="title"><b>Table&#160;9.&#160;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.main_overview.compilers_overview.unsupported_compilers"></a><p class="title"><b>Table&#160;10.&#160;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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/config_macros.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/config_macros.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,405 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="Overview">
+<link rel="prev" href="compilers_overview.html" title="Compilers">
+<link rel="next" href="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="../main_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_main_overview_config_macros">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.config_macros"></a><a class="link" href="config_macros.html" title="Configuration Macros">Configuration
+ Macros</a>
+</h3></div></div></div>
+<p>
+ Almost all configuration details are set up automatically by <code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>.
+ </p>
+<p>
+ In normal use, only policy configuration macros are likely to be used. See
+ <a class="link" href="../policy/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.main_overview.config_macros.boost_math_macros"></a><p class="title"><b>Table&#160;11.&#160;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">&lt;&lt;</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.main_overview.config_macros.boost_math_tuning"></a><p class="title"><b>Table&#160;12.&#160;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="../perf/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="../perf/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="../perf/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="../perf/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/contact.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/contact.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,55 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="Overview">
+<link rel="prev" href="faq.html" title="Frequently Asked Questions FAQ">
+<link rel="next" href="../dist.html" title="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="../main_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_main_overview_contact">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.contact"></a><a class="link" href="contact.html" title="Contact Info and Support">Contact Info and
+ Support</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/conventions.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/conventions.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,76 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_conventions">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.conventions"></a><a class="link" href="conventions.html" title="Document Conventions">Document Conventions</a>
+</h3></div></div></div>
+<p>
+ <a class="indexterm" name="id840331"></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">&lt;&gt;</span></code>;
+ that is, it is in code font and its name is followed by <code class="computeroutput"><span class="special">&lt;&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/directories.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/directories.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,118 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_directories">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.directories"></a><a class="link" href="directories.html" title="Directory and File Structure">Directory and
+ File Structure</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.main_overview.directories.h0"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.directories.boost_math"></a></span><a class="link" href="directories.html#math_toolkit.main_overview.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.main_overview.directories.h1"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.directories.boost_libs"></a></span><a class="link" href="directories.html#math_toolkit.main_overview.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/error_handling.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/error_handling.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,1112 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_error_handling">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.error_handling"></a><a class="link" href="error_handling.html" title="Error Handling">Error Handling</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h0"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling.quick_reference"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling.quick_reference">Quick
+ Reference</a>
+ </h5>
+<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="../special/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="../utils/rounding/trunc.html" title="Truncation Functions">trunc</a>,
+ <a class="link" href="../utils/rounding/round.html" title="Rounding Functions">round</a> and
+ <a class="link" href="../utils/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="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="../policy/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.main_overview.error_handling.possible_actions_for_domain_errors"></a><p class="title"><b>Table&#160;1.&#160;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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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="../policy/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.main_overview.error_handling.possible_actions_for_pole_errors"></a><p class="title"><b>Table&#160;2.&#160;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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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="../policy/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.main_overview.error_handling.possible_actions_for_overflow_errors"></a><p class="title"><b>Table&#160;3.&#160;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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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="../policy/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.main_overview.error_handling.possible_actions_for_underflow_errors"></a><p class="title"><b>Table&#160;4.&#160;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="../policy/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.main_overview.error_handling.possible_actions_for_denorm_errors"></a><p class="title"><b>Table&#160;5.&#160;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="../policy/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.main_overview.error_handling.possible_actions_for_rounding_errors"></a><p class="title"><b>Table&#160;6.&#160;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="../policy/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.main_overview.error_handling.possible_actions_for_internal_evaluation_errors"></a><p class="title"><b>Table&#160;7.&#160;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="../policy/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.main_overview.error_handling.possible_actions_for_indeterminate_result_errors"></a><p class="title"><b>Table&#160;8.&#160;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="../policy/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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h1"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling.rationale"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling.rationale">Rationale</a>
+ </h5>
+<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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h2"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling.finding_more_information"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling.finding_more_information">Finding
+ More Information</a>
+ </h5>
+<p>
+ There are some pre-processor macro defines that can be used to <a class="link" href="../policy/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="Policies">policy
+ section</a>.
+ </p>
+<p>
+ An example is at the Policy tutorial in <a class="link" href="../policy/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="../dist/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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h3"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling._anchor_id__domain_error___domain_errors"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling._anchor_id__domain_error___domain_errors">Domain Errors</a>
+ </h5>
+<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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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="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="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="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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h4"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling._anchor_id__pole_error___evaluation_at_a_pole"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling._anchor_id__pole_error___evaluation_at_a_pole">Evaluation at a pole</a>
+ </h5>
+<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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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="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="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="../policy/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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h5"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling._anchor_id__overflow_error___numeric_overflow"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling._anchor_id__overflow_error___numeric_overflow">Numeric Overflow</a>
+ </h5>
+<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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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="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="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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h6"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling._anchor_id__underflow_error___numeric_underflow"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling._anchor_id__underflow_error___numeric_underflow">Numeric Underflow</a>
+ </h5>
+<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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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="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="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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h7"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling._anchor_id__denorm_error___denormalisation_errors"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling._anchor_id__denorm_error___denormalisation_errors">Denormalisation Errors</a>
+ </h5>
+<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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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="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="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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h8"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling._anchor_id__evaluation_error___evaluation_errors"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling._anchor_id__evaluation_error___evaluation_errors">Evaluation Errors</a>
+ </h5>
+<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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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="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="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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h9"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling._anchor_id__indeterminate_result_error___indeterminate_result_errors"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling._anchor_id__indeterminate_result_error___indeterminate_result_errors">Indeterminate Result Errors</a>
+ </h5>
+<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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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="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="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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h10"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling._anchor_id__rounding_error___rounding_errors"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling._anchor_id__rounding_error___rounding_errors">Rounding Errors</a>
+ </h5>
+<p>
+ When one of the rounding functions <a class="link" href="../utils/rounding/round.html" title="Rounding Functions">round</a>,
+ <a class="link" href="../utils/rounding/trunc.html" title="Truncation Functions">trunc</a> or <a class="link" href="../utils/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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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="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="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>
+<h5>
+<a name="math_toolkit.main_overview.error_handling.h11"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.error_handling._anchor_id__checked_narrowing_cast___errors_from_typecasts"></a></span><a class="link" href="error_handling.html#math_toolkit.main_overview.error_handling._anchor_id__checked_narrowing_cast___errors_from_typecasts">Errors from typecasts</a>
+ </h5>
+<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">&lt;</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="Policies">Policy</a><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</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">&amp;</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#overflow_error">overflow</a>, <a class="link" href="error_handling.html#underflow_error">underflow</a>
+ or <a class="link" href="error_handling.html#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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/faq.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/faq.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,219 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Frequently Asked Questions FAQ</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="Overview">
+<link rel="prev" href="tr1.html" title="C99 and C++ TR1 C-style Functions">
+<link rel="next" href="contact.html" title="Contact Info and Support">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="tr1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_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="contact.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_main_overview_faq">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.faq"></a><a class="link" href="faq.html" title="Frequently Asked Questions FAQ">Frequently Asked Questions
+ FAQ</a>
+</h3></div></div></div>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ <span class="emphasis"><em>I'm a FORTRAN/NAG/SPSS/SAS/Cephes/MathCad/R user and I don't
+ see where the functions like dnorm(mean, sd) are in Boost.Math?</em></span>
+ <br> Nearly all are provided, and many more like mean, skewness, quantiles,
+ complements ... but Boost.Math makes full use of C++, and it looks a
+ bit different. But do not panic! See section on construction and the
+ many examples. Briefly, the distribution is constructed with the parameters
+ (like location and scale) (things after the | in representation like
+ P(X=k|n, p) or ; in a common represention of pdf f(x; &#956;&#963;<sup>2</sup>). Functions like
+ pdf, cdf are called with the name of that distribution and the random
+ variate often called x or k. For example, <code class="computeroutput"><span class="identifier">normal</span>
+ <span class="identifier">my_norm</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="identifier">pdf</span><span class="special">(</span><span class="identifier">my_norm</span><span class="special">,</span> <span class="number">2.0</span><span class="special">);</span></code>
+ <br>
+ </li>
+<li class="listitem">
+ I'm a user of <a href="http://support.sas.com/rnd/app/da/new/probabilityfunctions.html" target="_top">New
+ SAS Functions for Computing Probabilities</a>. <br> You will find
+ the interface more familar, but to be able to select a distribution (perhaps
+ using a string) see the Extras/Future Directions section, and /boost/libs/math/dot_net_example/boost_math.cpp
+ for an example that is used to create a C# utility (that you might also
+ find useful): see <a href="http://sourceforge.net/projects/distexplorer/" target="_top">Statistical
+ Distribution Explorer</a> <br> .
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I'm allegic to reading manuals and prefer to learn from examples.</em></span><br>
+ Fear not - you are not alone! Many examples are available for functions
+ and distributions. Some are referenced directly from the text. Others
+ can be found at \boost_latest_release\libs\math\example. If you are a
+ Visual Studio user, you should be able to create projects from each of
+ these, making sure that the Boost library is in the include directories
+ list.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>How do I make sure that the Boost library is in the Visual
+ Studio include directories list?</em></span><br> You can add an include
+ path, for example, your Boost place /boost-latest_release, for example
+ <code class="computeroutput"><span class="identifier">X</span><span class="special">:/</span><span class="identifier">boost_1_45_0</span><span class="special">/</span></code>
+ if you have a separate partition X for Boost releases. Or you can use
+ an environment variable BOOST_ROOT set to your Boost place, and include
+ that. Visual Studio before 2010 provided Tools, Options, VC++ Directories
+ to control directories: Visual Studio 2010 instead provides property
+ sheets to assist. You may find it convenient to create a new one adding
+ \boost-latest_release; to the existing include items in $(IncludePath).
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I'm a FORTRAN/NAG/SPSS/SAS/Cephes/MathCad/R user and I don't
+ see where the properties like mean, median, mode, variance, skewness
+ of distributions are in Boost.Math?</em></span><br> They are all available
+ (if defined for the parameters with which you constructed the distribution)
+ via <a class="link" href="../dist/dist_ref/nmp.html#math.dist.cdf">Cumulative Distribution Function</a>,
+ <a class="link" href="../dist/dist_ref/nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../dist/dist_ref/nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../dist/dist_ref/nmp.html#math.dist.hazard">Hazard
+ Function</a>, <a class="link" href="../dist/dist_ref/nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
+ <a class="link" href="../dist/dist_ref/nmp.html#math.dist.mean">mean</a>, <a class="link" href="../dist/dist_ref/nmp.html#math.dist.median">median</a>,
+ <a class="link" href="../dist/dist_ref/nmp.html#math.dist.mode">mode</a>, <a class="link" href="../dist/dist_ref/nmp.html#math.dist.variance">variance</a>,
+ <a class="link" href="../dist/dist_ref/nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../dist/dist_ref/nmp.html#math.dist.skewness">skewness</a>,
+ <a class="link" href="../dist/dist_ref/nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../dist/dist_ref/nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
+ <a class="link" href="../dist/dist_ref/nmp.html#math.dist.range">range</a> and <a class="link" href="../dist/dist_ref/nmp.html#math.dist.support">support</a>.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I am a C programmer. Can I user Boost.Math with C?</em></span><br>
+ Yes you can, including all the special functions, and TR1 functions like
+ isnan. They appear as C functions, by being declared as "extern
+ C".
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I am a C# (Basic? F# FORTRAN? Other CLI?) programmer. Can I
+ use Boost.Math with C#?</em></span> <br> Yes you can, including all
+ the special functions, and TR1 functions like isnan. But you <span class="bold"><strong>must build the Boost.Math as a dynamic library (.dll) and
+ compile with the /CLI option</strong></span>. See the boost/math/dot_net_example
+ folder which contains an example that builds a simple statistical distribution
+ app with a GUI. See <a href="http://sourceforge.net/projects/distexplorer/" target="_top">Statistical
+ Distribution Explorer</a> <br>
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>What these "policies" things for?</em></span> <br>
+ Policies are a powerful (if necessarily complex) fine-grain mechanism
+ that allow you to customise the behaviour of the Boost.Math library according
+ to your precise needs. See <a class="link" href="../policy.html" title="Policies">Policies</a>.
+ But if, very probably, the default behaviour suits you, you don't need
+ to know more.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I am a C user and expect to see global C-style<code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+ set for overflow/errors etc?</em></span> <br> You can achieve what you
+ want - see <a class="link" href="../policy/pol_ref/error_handling_policies.html" title="Error Handling Policies">error
+ handling policies</a> and <a class="link" href="../policy/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">user
+ error handling</a> and many examples.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I am a C user and expect to silently return a max value for
+ overflow?</em></span> <br> You (and C++ users too) can return whatever
+ you want on overflow - see <a class="link" href="error_handling.html#overflow_error">overflow_error</a>
+ and <a class="link" href="../policy/pol_ref/error_handling_policies.html" title="Error Handling Policies">error
+ handling policies</a> and several examples.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I don't want any error message for overflow etc?</em></span>
+ <br> You can control exactly what happens for all the abnormal conditions,
+ including the values returned. See <a class="link" href="error_handling.html#domain_error">domain_error</a>,
+ <a class="link" href="error_handling.html#overflow_error">overflow_error</a> <a class="link" href="../policy/pol_ref/error_handling_policies.html" title="Error Handling Policies">error
+ handling policies</a> <a class="link" href="../policy/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">user
+ error handling</a> etc and examples.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>My environment doesn't allow and/or I don't want exceptions.
+ Can I still user Boost.Math?</em></span> <br> Yes but you must customise
+ the error handling: see <a class="link" href="../policy/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">user
+ error handling</a> and <a class="link" href="../policy/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults">changing
+ policies defaults</a> .
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>The docs are several hundreds of pages long! Can I read the
+ docs off-line or on paper?</em></span> <br> Yes - you can download the
+ Boost current release of most documentation as a zip of pdfs (including
+ Boost.Math) from Sourceforge, for example https://sourceforge.net/projects/boost/files/boost-docs/1.45.0/boost_pdf_1_45_0.tar.gz/download.
+ And you can print any pages you need (or even print all pages - but be
+ warned that there are several hundred!). Both html and pdf versions are
+ highly hyperlinked. The entire Boost.Math pdf can be searched with Adobe
+ Reader, Edit, Find ... This can often find what you seek, a partial substitute
+ for a full index.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I want a compact version for an embedded application. Can I
+ use float precision?</em></span> <br> Yes - by selecting RealType template
+ parameter as float: for example normal_distribution&lt;float&gt; your_normal(mean,
+ sd); (But double may still be used internally, so space saving may be
+ less that you hope for). You can also change the promotion policy, but
+ accuracy might be much reduced.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I seem to get somewhat different results compared to other
+ programs. Why?</em></span> We hope Boost.Math to be more accurate: our
+ priority is accuracy (over speed). See the section on accuracy. But for
+ evaluations that require iterations there are parameters which can change
+ the required accuracy. You might be able to squeeze a little more accuracy
+ at the cost of runtime.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>Will my program run more slowly compared to other math functions
+ and statistical libraries?</em></span> Probably, thought not always, and
+ not by too much: our priority is accuracy. For most functions, making
+ sure you have the latest compiler version with all optimisations switched
+ on is the key to speed. For evaluations that require iteration, you may
+ be able to gain a little more speed at the expense of accuracy. See detailed
+ suggestions and results on <a class="link" href="../perf.html" title="Performance">performance</a>.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>How do I handle infinity and NaNs portably?</em></span> <br>
+ See <a class="link" href="../utils/fp_facets.html" title="Facets for Floating-Point Infinities and NaNs">nonfinite fp_facets</a>
+ for Facets for Floating-Point Infinities and NaNs.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>Where are the pre-built libraries?</em></span> <br> Good news
+ - you probably don't need any! - just <code class="computeroutput"><span class="preprocessor">#include</span>
+ <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span></code><span class="emphasis"><em>math/distribution_you_want&gt;</em></span>.
+ But in the unlikely event that you do, see <a class="link" href="building.html" title="If and How to Build a Boost.Math Library, and its Examples and Tests">building
+ libraries</a>.
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I don't see the function or distribution that I want.</em></span>
+ <br> You could try an email to ask the authors - but no promises!
+ </li>
+<li class="listitem">
+ <span class="emphasis"><em>I need more decimal digits for values/computations.</em></span>
+ <br> You can use Boost.Math with Boost.Multiprecision:
+ typically cpp_dec_float
+ is a useful user-defined type to provide a fixed number of decimal digits,
+ usually 50 or 100.
+ </li>
+<li class="listitem">
+ Why can't I write something really simple like <code class="computeroutput"><span class="identifier">cpp_int</span>
+ <span class="identifier">one</span><span class="special">(</span><span class="number">1</span><span class="special">);</span> <span class="identifier">cpp_dec_float_50</span>
+ <span class="identifier">two</span><span class="special">(</span><span class="number">2</span><span class="special">);</span> <span class="identifier">one</span>
+ <span class="special">*</span> <span class="identifier">two</span><span class="special">;</span></code> Because <code class="computeroutput"><span class="identifier">cpp_int</span></code>
+ might be bigger than <code class="computeroutput"><span class="identifier">cpp_dec_float</span>
+ <span class="identifier">can</span> <span class="identifier">hold</span></code>,
+ so you must make an <span class="bold"><strong>explicit</strong></span> conversion.
+ See <a href="http://svn.boost.org/svn/boost/trunk/libs/multiprecision/doc/html/boost_multiprecision/intro.html" target="_top">mixed
+ multiprecision arithmetic</a> and conversion.
+ </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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_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="contact.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/main_overview/hints.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/hints.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,103 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_hints">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.hints"></a><a class="link" href="hints.html" title="Other Hints and tips">Other Hints and tips</a>
+</h3></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.main_overview.hints.h0"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.hints.admonishments"></a></span><a class="link" href="hints.html#math_toolkit.main_overview.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/history1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/history1.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,628 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_history1">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.history1"></a><a class="link" href="history1.html" title="History and What's New">History and What's
+ New</a>
+</h3></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.main_overview.history1.h0"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_54"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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="../special/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.main_overview.history1.h1"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_53"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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="../special/bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+ and <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>/<a class="link" href="../special/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.main_overview.history1.h2"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_52"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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="../special/airy.html" title="Airy Functions">Airy functions</a>
+ and <a class="link" href="../special/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 &lt; 0</em></span> and &#957; 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 &#957; and/or large non-centrality
+ &#948;
+by switching to use the Students t distribution (or Normal distribution
+ for infinite degrees of freedom) centered at delta, when &#948; / (4 * &#957;) &lt;
+ 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.main_overview.history1.h3"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_51"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h4"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_50"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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="../special/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="../special/hankel/cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_1</a>,
+ <a class="link" href="../special/hankel/cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_2</a>,
+ <a class="link" href="../special/hankel/sph_hankel.html" title="Spherical Hankel Functions">sph_hankel_1</a>
+ and <a class="link" href="../special/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&#960;) to yield a NaN.
+ </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.main_overview.history1.h5"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_49"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h6"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_48"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h7"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_47"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h8"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_46_1"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h9"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_46_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h10"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_45_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h11"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_44_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h12"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_41_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h13"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_40_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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="../backgrounders/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 &#957; =
+ 0.5, also effects the non-central Chi Square Distribution when &#957; = 3, see
+ bug report #2877.
+ </li>
+<li class="listitem">
+ Fixed minor bugs #2873.
+ </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.main_overview.history1.h14"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_38_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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&#229;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.main_overview.history1.h15"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_37_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h16"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_36_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.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.main_overview.history1.h17"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.boost_1_35_0__post_review_first_official_release"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_35_0__post_review_first_official_release">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="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="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.main_overview.history1.h18"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.milestone_4__second_review_candidate__1st_march_2007_"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.milestone_4__second_review_candidate__1st_march_2007_">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.main_overview.history1.h19"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.milestone_3__first_review_candidate__31st_dec_2006_"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.milestone_3__first_review_candidate__31st_dec_2006_">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.main_overview.history1.h20"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.milestone_2__released_september_10th_2006"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.milestone_2__released_september_10th_2006">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.main_overview.history1.h21"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.history1.milestone_1__released_march_31st_2006"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.milestone_1__released_march_31st_2006">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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/intro.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/intro.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,126 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="Overview">
+<link rel="prev" href="../main_overview.html" title="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="../main_overview.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_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_main_overview_intro">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.intro"></a><a class="link" href="intro.html" title="About the Math Toolkit">About the Math Toolkit</a>
+</h3></div></div></div>
+<p>
+ This library is divided into three interconnected parts:
+ </p>
+<h5>
+<a name="math_toolkit.main_overview.intro.h0"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.intro.statistical_distributions"></a></span><a class="link" href="intro.html#math_toolkit.main_overview.intro.statistical_distributions">Statistical
+ Distributions</a>
+ </h5>
+<p>
+ Provides a reasonably comprehensive set of <a class="link" href="../dist.html" title="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/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">normal</a>
+ &amp; <a class="link" href="../dist/dist_ref/dists/f_dist.html" title="F Distribution">Fisher</a>)
+ and discrete
+ (like <a class="link" href="../dist/dist_ref/dists/binomial_dist.html" title="Binomial Distribution">binomial</a>
+ &amp; <a class="link" href="../dist/dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson</a>)
+ distributions are provided.
+ </p>
+<p>
+ A <a class="link" href="../dist/stat_tut.html" title="Statistical Distributions Tutorial">comprehensive tutorial is provided</a>,
+ along with a series of <a class="link" href="../dist/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.main_overview.intro.h1"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.intro.mathematical_special_functions"></a></span><a class="link" href="intro.html#math_toolkit.main_overview.intro.mathematical_special_functions">Mathematical
+ Special Functions</a>
+ </h5>
+<p>
+ Provides a small number of high quality <a class="link" href="../special.html" title="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 &amp; 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.main_overview.intro.h2"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.intro.implementation_toolkit"></a></span><a class="link" href="intro.html#math_toolkit.main_overview.intro.implementation_toolkit">Implementation
+ Toolkit</a>
+ </h5>
+<p>
+ Provides <a class="link" href="../toolkit.html" title="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="../toolkit/internals1/series_evaluation.html" title="Series Evaluation">evaluation
+ of infinite series</a>, <a class="link" href="../toolkit/internals1/cf.html" title="Continued Fraction Evaluation">continued
+ fractions</a> and <a class="link" href="../toolkit/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="../toolkit/internals1/minima.html" title="Locating Function Minima: Brent's algorithm">function
+ minimisation algorithms</a>: the root finding algorithms are both <a class="link" href="../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder">with</a> and <a class="link" href="../toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">without</a>
+ derivative support.
+ </p>
+<p>
+ A <a class="link" href="../toolkit/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="../toolkit/internals2/polynomials.html" title="Polynomials">manipulation
+ of polynomials</a>, for <a class="link" href="../toolkit/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="../toolkit/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../main_overview.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_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/main_overview/namespaces.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/namespaces.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_namespaces">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.namespaces"></a><a class="link" href="namespaces.html" title="Namespaces">Namespaces</a>
+</h3></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">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/navigation.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/navigation.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_navigation">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.navigation"></a><a class="link" href="navigation.html" title="Navigation">Navigation</a>
+</h3></div></div></div>
+<p>
+ <a class="indexterm" name="id840201"></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.main_overview.navigation.h0"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.navigation.using_the_indexes"></a></span><a class="link" href="navigation.html#math_toolkit.main_overview.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/perf_over.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/perf_over.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,73 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_perf_over">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.perf_over"></a><a class="link" href="perf_over.html" title="Performance">Performance</a>
+</h3></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="../perf/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="../perf/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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/pol_overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/pol_overview.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,109 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_pol_overview">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.pol_overview"></a><a class="link" href="pol_overview.html" title="Policies">Policies</a>
+</h3></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="../policy/pol_tutorial.html" title="Policy Tutorial">policy
+ tutorial</a> and the <a class="link" href="../policy/pol_ref.html" title="Policy Reference">policy
+ reference</a>.
+ </p>
+<p>
+ Generally speaking, unless you find that the <a class="link" href="../policy/pol_tutorial/policy_tut_defaults.html" title="Policies Have Sensible Defaults">default
+ policy behaviour</a> when encountering 'bad' argument values does not
+ meet your needs, you should not need to worry about policies.
+ </p>
+<p>
+ 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="../policy/pol_ref/error_handling_policies.html" title="Error Handling Policies">How
+ results from 'bad' arguments are handled</a>, including those that
+ cannot be fully evaluated.
+ </li>
+<li class="listitem">
+ How <a class="link" href="../policy/pol_ref/internal_promotion.html" title="Internal Floating-point Promotion Policies">accuracy
+ is controlled by internal promotion</a> to use more precise types.
+ </li>
+<li class="listitem">
+ What working <a class="link" href="../policy/pol_ref/precision_pol.html" title="Precision Policies">precision</a>
+ should be used to calculate results.
+ </li>
+<li class="listitem">
+ What to do when a <a class="link" href="../policy/pol_ref/assert_undefined.html" title="Mathematically Undefined Function Policies">mathematically
+ undefined function</a> is used: Should this raise a run-time or compile-time
+ error?
+ </li>
+<li class="listitem">
+ Whether <a class="link" href="../policy/pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">discrete
+ functions</a>, like the binomial, should return real or only integral
+ values, and how they are rounded.
+ </li>
+<li 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#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="../policy/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults">macros</a>
+ to change any default policy: the is the prefered method for installation
+ wide policies.
+ </li>
+<li class="listitem">
+ At your chosen <a class="link" href="../policy/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope">namespace
+ scope</a> for distributions and/or functions: this is the prefered
+ method for project, namespace, or translation unit scope policies.
+ </li>
+<li class="listitem">
+ In an ad-hoc manner <a class="link" href="../policy/pol_tutorial/ad_hoc_sf_policies.html" title="Changing the Policy on an Ad Hoc Basis for the Special Functions">by
+ passing a specific policy to a special function</a>, or to a <a class="link" href="../policy/pol_tutorial/ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis">statistical
+ distribution</a>.
+ </li>
+</ul></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/result_type.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/result_type.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_result_type">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.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>
+</h3></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="../using_udt/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/threads.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/threads.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_threads">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.threads"></a><a class="link" href="threads.html" title="Thread Safety">Thread Safety</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/main_overview/tr1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/main_overview/tr1.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,612 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../main_overview.html" title="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="../main_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_main_overview_tr1">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.main_overview.tr1"></a><a class="link" href="tr1.html" title="C99 and C++ TR1 C-style Functions">C99 and C++ TR1 C-style
+ Functions</a>
+</h3></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-&lt;suffix&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ float
+ </p>
+ </td>
+<td>
+ <p>
+ C99 Functions
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ boost_math_c99-&lt;suffix&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ double
+ </p>
+ </td>
+<td>
+ <p>
+ C99 Functions
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ boost_math_c99l-&lt;suffix&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ long double
+ </p>
+ </td>
+<td>
+ <p>
+ C99 Functions
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ boost_math_tr1f-&lt;suffix&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ float
+ </p>
+ </td>
+<td>
+ <p>
+ TR1 Functions
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ boost_math_tr1-&lt;suffix&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ double
+ </p>
+ </td>
+<td>
+ <p>
+ TR1 Functions
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ boost_math_tr1l-&lt;suffix&gt;
+ </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">&lt;</span><span class="identifier">suffix</span><span class="special">&gt;</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">&lt;</span><span class="identifier">suffix</span><span class="special">&gt;</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.main_overview.tr1.h0"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.tr1.usage_recomendations"></a></span><a class="link" href="tr1.html#math_toolkit.main_overview.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">&lt;</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">&gt;</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">&lt;</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">&gt;</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="../perf/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.main_overview.tr1.h1"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.tr1.supported_c99_functions"></a></span><a class="link" href="tr1.html#math_toolkit.main_overview.tr1.supported_c99_functions">Supported
+ C99 Functions</a>
+ </h5>
+<p>
+ See also the <a class="link" href="../extern_c/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.main_overview.tr1.h2"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.tr1.supported_tr1_functions"></a></span><a class="link" href="tr1.html#math_toolkit.main_overview.tr1.supported_tr1_functions">Supported
+ TR1 Functions</a>
+ </h5>
+<p>
+ See also the <a class="link" href="../extern_c/tr1.html" title="C99 and TR1 C Functions Overview">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.main_overview.tr1.h3"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.tr1.currently_unsupported_c99_functions"></a></span><a class="link" href="tr1.html#math_toolkit.main_overview.tr1.currently_unsupported_c99_functions">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.main_overview.tr1.h4"></a>
+ <span class="phrase"><a name="math_toolkit.main_overview.tr1.currently_unsupported_tr1_functions"></a></span><a class="link" href="tr1.html#math_toolkit.main_overview.tr1.currently_unsupported_tr1_functions">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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../main_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/octonions.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Octonions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="quaternions/todo.html" title="To Do">
+<link rel="next" href="octonions/overview.html" title="Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="quaternions/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="octonions/overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_octonions">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.octonions"></a><a class="link" href="octonions.html" title="Octonions">Octonions</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<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"><a href="octonions/oct_typedefs.html">Octonion Member
+ Typedefs</a></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"><a href="octonions/oct_value_ops.html">Octonion Value
+ Operations</a></span></dt>
+<dt><span class="section"><a href="octonions/oct_create.html">Octonion Creation
+ Functions</a></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="octonions/overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/octonions/acknowledgements.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/acknowledgements.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,43 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="tests.html" title="Test Program">
+<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="tests.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="history.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_octonions_acknowledgements">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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="history.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/octonions/header.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/header.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<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="../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="synopsis.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_octonions_header">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.header"></a><a class="link" href="header.html" title="Header File">Header File</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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="synopsis.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/octonions/history.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/history.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,102 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="acknowledgements.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="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="todo.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_octonions_history">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.history"></a><a class="link" href="history.html" title="History">History</a>
+</h3></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; &lt;boost/config.hpp&gt;
+ now included by the library header (rather than the test files), via
+ &lt;boost/math/quaternion.hpp&gt;.
+ </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 &lt;boost/math/special_functions/sinc.hpp&gt;
+ and &lt;boost/math/special_functions/sinhc.hpp&gt; instead of &lt;boost/special_functions.hpp&gt;;
+ 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="todo.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/octonions/mem_fun.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/mem_fun.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,252 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="oct_typedefs.html" title="Octonion Member Typedefs">
+<link rel="next" href="non_mem.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_mem.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_octonions_mem_fun">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.mem_fun"></a><a class="link" href="mem_fun.html" title="Octonion Member Functions">Octonion Member Functions</a>
+</h3></div></div></div>
+<h4>
+<a name="math_toolkit.octonions.mem_fun.h0"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.mem_fun.constructors"></a></span><a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</sp
an><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;());</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;());</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float<
/span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;());</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;());</span>
+<span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">doub
le</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;());</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;());</span>
+<span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;
</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;());</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;());</span>
+<span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.mem_fun.h1"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.mem_fun.other_member_functions"></a></span><a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_functions">Other member
+ functions</a>
+ </h4>
+<h5>
+<a name="math_toolkit.octonions.mem_fun.h2"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.mem_fun.real_and_unreal_parts"></a></span><a class="link" href="mem_fun.html#math_toolkit.octonions.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">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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.octonions.mem_fun.h3"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.mem_fun.individual_real_components"></a></span><a class="link" href="mem_fun.html#math_toolkit.octonions.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>
+<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.octonions.mem_fun.h4"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.mem_fun.individual_complex_components"></a></span><a class="link" href="mem_fun.html#math_toolkit.octonions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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 = &#945; + &#946;i + &#947;j + &#948;k + &#949;e' + &#950;i' + &#951;j' + &#952;k'</code></em></span> we also have <span class="emphasis"><em><code class="literal">o
+ = (&#945; + &#946;i) + (&#947; + &#948;i)j + (&#949; + &#950;i)e' + (&#951; - &#952;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.octonions.mem_fun.h5"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.mem_fun.individual_quaternion_components"></a></span><a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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 = &#945; + &#946;i + &#947;j + &#948;k + &#949;e' + &#950;i' + &#951;j' + &#952;k'</code></em></span> we
+ also have <span class="emphasis"><em><code class="literal">o = (&#945; + &#946;i + &#947;j + &#948;k) + (&#949; + &#950;i + &#951;j - &#952;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.octonions.mem_fun.h6"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.mem_fun.octonion_member_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.octonion_member_operators">Octonion
+ Member Operators</a>
+ </h4>
+<h5>
+<a name="math_toolkit.octonions.mem_fun.h7"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.mem_fun.assignment_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">Assignment
+ Operators</a>
+ </h5>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.mem_fun.h8"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.mem_fun.other_member_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">Other Member
+ Operators</a>
+ </h5>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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_mem.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/octonions/non_mem.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/non_mem.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="mem_fun.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_fun.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_octonions_non_mem">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.non_mem"></a><a class="link" href="non_mem.html" title="Octonion Non-Member Operators">Octonion Non-Member Operators</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.octonions.non_mem.h0"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.non_mem.unary_plus_and_minus_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.unary_plus_and_minus_operators">Unary
+ Plus and Minus Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.non_mem.h1"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.non_mem.binary_addition_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_addition_operators">Binary
+ Addition Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special
">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r
hs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="speci
al">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">co
nst</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.octonions.non_mem.h2"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.non_mem.binary_subtraction_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_subtraction_operators">Binary
+ Subtraction Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special
">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r
hs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="speci
al">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">co
nst</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.octonions.non_mem.h3"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.non_mem.binary_multiplication_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_multiplication_operators">Binary
+ Multiplication Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special
">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r
hs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="speci
al">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">co
nst</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.octonions.non_mem.h4"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.non_mem.binary_division_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_division_operators">Binary
+ Division Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special
">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r
hs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="speci
al">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">co
nst</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.octonions.non_mem.h5"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.non_mem.binary_equality_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_equality_operators">Binary
+ Equality Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);
</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.octonions.non_mem.h6"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.non_mem.binary_inequality_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_inequality_operators">Binary
+ Inequality Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);
</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">==</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.octonions.non_mem.h7"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.non_mem.stream_extractor"></a></span><a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.stream_extractor">Stream
+ Extractor</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">&gt;&gt;</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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.octonions.non_mem.h8"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.non_mem.stream_inserter"></a></span><a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.stream_inserter">Stream
+ Inserter</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">&lt;&lt;</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span c
lass="special">&amp;</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">&lt;</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">&gt;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</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">&lt;&lt;</span> <span class="char">'('</span> <span class="special">&lt;&lt;</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">','</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_2</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">','</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_3</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">','</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_4</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">','</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_5</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">','</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_6</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">','</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_7</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">','</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_8</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">')'</span><span class="special">;</span>
+
+ <span class="keyword">return</span> <span class="identifier">os</span> <span class="special">&lt;&lt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/octonions/oct_create.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_create.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,75 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="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_octonions_oct_create">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.oct_create"></a><a class="link" href="oct_create.html" title="Octonion Creation Functions">Octonion Creation
+ Functions</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">spherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp
;</span> <span class="identifier">phi2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi6</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">multipolar</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="ide
ntifier">theta2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta4</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cylindrical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">angle</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifi
er">h2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</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 <a href="http://www.r-project.org/" target="_top">The R Project for Statistical
+ Computing</a> 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/octonions/oct_specialization.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_specialization.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="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_octonions_oct_specialization">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.oct_specialization"></a><a class="link" href="oct_specialization.html" title="Octonion Specializations">Octonion Specializations</a>
+</h3></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">&lt;&gt;</span>
+<span class="keyword">class</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</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_fun.html#math_toolkit.octonions.mem_fun.constructors">octonion</a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</span> <span class="identifier"
>requested_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">&amp;</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">&amp;</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">&amp;</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">&amp;</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> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.constructors">octonion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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.octonions.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.octonions.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.octonions.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.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator +=</a> <span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator -=</a> <span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator *=</a> <span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator /=</a> <span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="math_toolkit.octonion_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;&gt;</span>
+<span class="keyword">class</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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_fun.html#math_toolkit.octonions.mem_fun.constructors">octonion</a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.constructors">octonion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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><spa
n class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q1</span> <span class="special">=</sp
an> <span 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">&lt;</span><span class="keyword">double</span><span class="special">&gt;());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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.octonions.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.octonions.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.octonions.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.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator +=</a> <span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator -=</a> <span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator *=</a> <span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator /=</a> <span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="math_toolkit.octonion_long_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;&gt;</span>
+<span class="keyword">class</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</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_fun.html#math_toolkit.octonions.mem_fun.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">&amp;</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">&amp;</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">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">l
ong</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</span> <span class="identifier">requested_g</span> <span class="special">=</spa
n> <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">&amp;</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_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span clas
s="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span cla
ss="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span
> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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.octonions.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.octonions.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.octonions.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.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/octonions/oct_trans.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_trans.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,141 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="oct_create.html" title="Octonion 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="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="tests.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_octonions_oct_trans">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.oct_trans"></a><a class="link" href="oct_trans.html" title="Octonions Transcendentals">Octonions Transcendentals</a>
+</h3></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.octonions.oct_trans.h0"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_trans.exp"></a></span><a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.exp">exp</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+ Computes the exponential of the octonion.
+ </p>
+<h5>
+<a name="math_toolkit.octonions.oct_trans.h1"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_trans.cos"></a></span><a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.cos">cos</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cos</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+ Computes the cosine of the octonion
+ </p>
+<h5>
+<a name="math_toolkit.octonions.oct_trans.h2"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_trans.sin"></a></span><a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.sin">sin</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sin</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+ Computes the sine of the octonion.
+ </p>
+<h5>
+<a name="math_toolkit.octonions.oct_trans.h3"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_trans.tan"></a></span><a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.tan">tan</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">tan</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+ Computes the tangent of the octonion.
+ </p>
+<h5>
+<a name="math_toolkit.octonions.oct_trans.h4"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_trans.cosh"></a></span><a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.cosh">cosh</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cosh</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.oct_trans.h5"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_trans.sinh"></a></span><a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.sinh">sinh</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sinh</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.oct_trans.h6"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_trans.tanh"></a></span><a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.tanh">tanh</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">tanh</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.oct_trans.h7"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_trans.pow"></a></span><a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.pow">pow</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="tests.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_typedefs.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_typedefs.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,63 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="oct_specialization.html" title="Octonion Specializations">
+<link rel="next" href="mem_fun.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_fun.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_octonions_oct_typedefs">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.oct_typedefs"></a><a class="link" href="oct_typedefs.html" title="Octonion Member Typedefs">Octonion Member
+ Typedefs</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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_fun.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_value_ops.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/oct_value_ops.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="non_mem.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_mem.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_octonions_oct_value_ops">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.oct_value_ops"></a><a class="link" href="oct_value_ops.html" title="Octonion Value Operations">Octonion Value
+ Operations</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.octonions.oct_value_ops.h0"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_value_ops.real_and_unreal"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.real_and_unreal">Real and Unreal</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">real</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">unreal</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.oct_value_ops.h1"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_value_ops.conj"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.conj">conj</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">conj</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.oct_value_ops.h2"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_value_ops.sup"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.sup">sup</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">sup</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.oct_value_ops.h3"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_value_ops.l1"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.l1">l1</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">l1</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.oct_value_ops.h4"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_value_ops.abs"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.abs">abs</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">abs</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.oct_value_ops.h5"></a>
+ <span class="phrase"><a name="math_toolkit.octonions.oct_value_ops.norm"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.norm">norm</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">norm</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span><span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/octonions/octonion.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/octonion.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="synopsis.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="synopsis.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_octonions_octonion">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.octonion"></a><a class="link" href="octonion.html" title="Template Class octonion">Template Class octonion</a>
+</h3></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">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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_fun.html#math_toolkit.octonions.mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</span> <span class="identi
fier">requested_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">&amp;</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">&amp;</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">&amp;</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">&amp;</span> <span class="identifier">requested_h</span> <span class="speci
al">=</span> <span class="identifier">T</span><span class="special">());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.constructors">octonion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 cl
ass="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;());</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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.octonions.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.octonions.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.octonions.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.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.octonions.mem_fun.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/octonions/overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/overview.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="../octonions.html" title="Octonions">
+<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="../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="header.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_octonions_overview">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.overview"></a><a class="link" href="overview.html" title="Overview">Overview</a>
+</h3></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 (&#945;,&#946;,&#947;,&#948;,&#949;,&#950;,&#951;,&#952;),
+ which we can write in the form <span class="emphasis"><em><code class="literal">o = &#945; + &#946;i + &#947;j + &#948;k + &#949;e' + &#950;i' + &#951;j' + &#952;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) &#8800; (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" alt="octonion_blurb17"></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="header.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/octonions/synopsis.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/synopsis.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="header.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="header.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_octonions_synopsis">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.synopsis"></a><a class="link" href="synopsis.html" title="Synopsis">Synopsis</a>
+</h3></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">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;&gt;</span> <span class="keyword">class</span> <a class="link" href="oct_specialization.html" title="Octonion Specializations">octonion&lt;float&gt;</a><span class="special">;</span>
+<span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">class</span> <a class="link" href="oct_specialization.html#math_toolkit.octonion_double">octonion&lt;double&gt;</a><span class="special">;</span>
+<span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">class</span> <a class="link" href="oct_specialization.html#math_toolkit.octonion_long_double">octonion&lt;long double&gt;</a><span class="special">;</span>
+
+<span class="comment">// operators</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="ide
ntifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">
&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="k
eyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="specia
l">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="
identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="specia
l">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class
="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="spe
cial">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span clas
s="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="spe
cial">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span cl
ass="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="
special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="ide
ntifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">
&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="k
eyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="specia
l">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.unary_plus_and_minus_operators">operator +</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.unary_plus_and_minus_operators">operator -</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="s
pecial">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identif
ier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class=
"special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="ident
ifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.binary_inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.stream_extractor">operator &gt;&gt;</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class=
"special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <a class="link" href="non_mem.html#math_toolkit.octonions.non_mem.stream_inserter">operator &lt;&lt;</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="
keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="comment">// values</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.real_and_unreal">real</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.real_and_unreal">unreal</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.sup">sup</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.l1">l1</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span><span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.abs">abs</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.norm">norm</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span><span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="oct_value_ops.html#math_toolkit.octonions.oct_value_ops.conj">conj</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span c
lass="special">&amp;</span> <span class="identifier">phi2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi6</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">rho1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <spa
n class="special">&amp;</span> <span class="identifier">theta2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta4</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">angle</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span cla
ss="special">&amp;</span> <span class="identifier">h2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h6</span><span class="special">);</span>
+
+<span class="comment">// transcendentals</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.exp">exp</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.cos">cos</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.sin">sin</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.tan">tan</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.cosh">cosh</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.sinh">sinh</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.tanh">tanh</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="oct_trans.html#math_toolkit.octonions.oct_trans.pow">pow</a><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/octonions/tests.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/tests.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="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_octonions_tests">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.tests"></a><a class="link" href="tests.html" title="Test Program">Test Program</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/octonions/todo.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonions/todo.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,48 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Octonions">
+<link rel="prev" href="history.html" title="History">
+<link rel="next" href="../gcd_lcm.html" title="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="history.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_octonions_todo">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.octonions.todo"></a><a class="link" href="todo.html" title="To Do">To Do</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/perf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,48 @@
+<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.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">
+<link rel="next" href="perf/perf_over.html" title="Performance Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="policy/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="perf/perf_over.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_perf">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.perf"></a><a class="link" href="perf.html" title="Performance">Performance</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Performance Overview</span></dt>
+<dt><span class="section">Interpreting these Results</span></dt>
+<dt><span class="section"><a href="perf/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="perf/comparisons.html">Comparisons to Other Open
+ Source Libraries</a></span></dt>
+<dt><span class="section"><a href="perf/perf_test_app.html">The Performance Test
+ Application</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="perf/perf_over.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/perf/comp_compilers.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf/comp_compilers.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="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_perf_comp_compilers">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.perf.comp_compilers"></a><a class="link" href="comp_compilers.html" title="Comparing Compilers">Comparing Compilers</a>
+</h3></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.perf.comp_compilers.performance_comparison_of_various_windows_compilers"></a><p class="title"><b>Table&#160;54.&#160;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="../special/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="../special/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="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+ and <a class="link" href="../special/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="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
+ and <a class="link" href="../special/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="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>,
+ <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inva</a>,
+ <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a>
+ and <a class="link" href="../special/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/perf/comparisons.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf/comparisons.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="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_perf_comparisons">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.perf.comparisons"></a><a class="link" href="comparisons.html" title="Comparisons to Other Open Source Libraries">Comparisons to Other Open
+ Source Libraries</a>
+</h3></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>
+<h5>
+<a name="math_toolkit.perf.comparisons.h0"></a>
+ <span class="phrase"><a name="math_toolkit.perf.comparisons.comparison_to_gsl_1_13_and_cephes"></a></span><a class="link" href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_gsl_1_13_and_cephes">Comparison
+ to GSL-1.13 and Cephes</a>
+ </h5>
+<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="../special/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="../special/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="../special/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="../special/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="../special/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="../special/sf_erf/error_function.html" title="Error Functions">erf</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+ and <a class="link" href="../special/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]</sup></a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+ and <a class="link" href="../special/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="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
+ and <a class="link" href="../special/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="../special/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]</sup></a></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="../special/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="../special/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="../special/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.perf.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.perf.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>
+<h5>
+<a name="math_toolkit.perf.comparisons.h1"></a>
+ <span class="phrase"><a name="math_toolkit.perf.comparisons.comparison_to_the_r_and_dcdflib_statistical_libraries_on_windows"></a></span><a class="link" href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_the_r_and_dcdflib_statistical_libraries_on_windows">Comparison
+ to the R and DCDFLIB Statistical Libraries on Windows</a>
+ </h5>
+<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.perf.comparisons.a_comparison_to_the_r_statistical_library_on_windows_xp"></a><p class="title"><b>Table&#160;57.&#160;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/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/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]</sup></a></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/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/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/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/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/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/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/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/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/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/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/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/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/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution">hypergeometric
+ Distribution</a> CDF
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+<p>3.60[2]</sup></a></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/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/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/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/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/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/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/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]</sup></a></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/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/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]</sup></a></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/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/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/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/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]</sup></a></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/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/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/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/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/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/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/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/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.perf.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.perf.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.perf.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.perf.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.perf.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"><h5>
+<a name="math_toolkit.perf.comparisons.h2"></a>
+ <span class="phrase"><a name="math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_linux"></a></span><a class="link" href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_linux">Comparison
+ to the R Statistical Library on Linux</a>
+ </h5>
+<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.perf.comparisons.a_comparison_to_the_r_statistical_library_on_linux"></a><p class="title"><b>Table&#160;58.&#160;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/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/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]</sup></a></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/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/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/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/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/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/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/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/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/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/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/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/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/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution">hypergeometric
+ Distribution</a> CDF
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+<p>2.20[2]</sup></a></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/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/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/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/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/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/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/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]</sup></a></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/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/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]</sup></a></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/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/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/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/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]</sup></a></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/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/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/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/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/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/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/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/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.perf.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.perf.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.perf.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.perf.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.perf.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/perf/getting_best.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf/getting_best.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="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_perf_getting_best">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.perf.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>
+</h3></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.perf.getting_best.performance_comparison_of_release_and_debug_settings"></a><p class="title"><b>Table&#160;53.&#160;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="../special/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="../special/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="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+ and <a class="link" href="../special/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="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
+ and <a class="link" href="../special/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="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>,
+ <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inva</a>,
+ <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a>
+ and <a class="link" href="../special/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/perf/interp.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf/interp.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,73 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="Performance">
+<link rel="prev" href="perf_over.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_over.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_perf_interp">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.perf.interp"></a><a class="link" href="interp.html" title="Interpreting these Results">Interpreting these Results</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/perf/perf_over.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf/perf_over.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,73 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="Performance">
+<link rel="prev" href="../perf.html" title="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_perf_over">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.perf.perf_over"></a><a class="link" href="perf_over.html" title="Performance Overview">Performance Overview</a>
+</h3></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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/perf_test_app.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf/perf_test_app.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,55 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="Performance">
+<link rel="prev" href="comparisons.html" title="Comparisons to Other Open Source Libraries">
+<link rel="next" href="../backgrounders.html" title="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_perf_test_app">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.perf.perf_test_app"></a><a class="link" href="perf_test_app.html" title="The Performance Test Application">The Performance Test
+ Application</a>
+</h3></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="Policies">Policies</a>, then you will need
+ to build and run it twice: once with the default <a class="link" href="../policy.html" title="Policies">Policies</a>,
+ and then a second time with the <a class="link" href="../policy.html" title="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/perf/tuning.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf/tuning.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,893 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="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_perf_tuning">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.perf.tuning"></a><a class="link" href="tuning.html" title="Performance Tuning Macros">Performance Tuning Macros</a>
+</h3></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.perf.tuning.a_comparison_of_polynomial_evaluation_methods"></a><p class="title"><b>Table&#160;55.&#160;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="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="../policy/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="../policy/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="../policy/pol_tutorial.html" title="Policy Tutorial">policy
+ tutorial</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.perf.tuning.performance_comparison_with_and_without_internal_promotion_to_long_double"></a><p class="title"><b>Table&#160;56.&#160;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="../special/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="../special/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="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+ and <a class="link" href="../special/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="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
+ and <a class="link" href="../special/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="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>,
+ <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inva</a>,
+ <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+ and <a class="link" href="../special/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="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a>
+ and <a class="link" href="../special/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,41 @@
+<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.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="using_udt/archetypes.html" title="Conceptual Archetypes for Reals and Distributions">
+<link rel="next" href="policy/pol_overview.html" title="Policy Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="using_udt/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="policy/pol_overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_policy">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.policy"></a><a class="link" href="policy.html" title="Policies">Policies</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Policy Overview</span></dt>
+<dt><span class="section">Policy Tutorial</span></dt>
+<dt><span class="section">Policy 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="policy/pol_overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_overview.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,109 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../policy.html" title="Policies">
+<link rel="prev" href="../policy.html" title="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_policy_pol_overview">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.policy.pol_overview"></a><a class="link" href="pol_overview.html" title="Policy Overview">Policy Overview</a>
+</h3></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="../main_overview/error_handling.html#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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_ref.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,56 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../policy.html" title="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_policy_pol_ref">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.policy.pol_ref"></a><a class="link" href="pol_ref.html" title="Policy Reference">Policy Reference</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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"><a href="pol_ref/precision_pol.html">Precision
+ Policies</a></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"><a href="pol_ref/pol_ref_ref.html">Policy Class
+ Reference</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_ref/assert_undefined.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/assert_undefined.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_policy_pol_ref_assert_undefined">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.pol_ref.assert_undefined"></a><a class="link" href="assert_undefined.html" title="Mathematically Undefined Function Policies">Mathematically
+ Undefined Function Policies</a>
+</h4></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">&lt;&gt;());</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">&lt;&gt;</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">&lt;</span><span class="keyword">bool</span> <span class="identifier">b</span><span class="special">&gt;</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">&lt;</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">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">assert_undefined</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;());</span>
+</pre>
+<p>
+ <code class="computeroutput"><span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">assert_undefined</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_ref/discrete_quant_ref.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,258 @@
+<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.77.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_policy_pol_ref_discrete_quant_ref">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.pol_ref.discrete_quant_ref"></a><a class="link" href="discrete_quant_ref.html" title="Discrete Quantile Policies">Discrete
+ Quantile Policies</a>
+</h4></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">&lt;</span><span class="identifier">discrete_quantile_policy_type</span><span class="special">&gt;</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.policy.pol_ref.discrete_quant_ref.h0"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.discrete_quant_ref.real"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.policy.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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span>
+ <span class="keyword">double</span><span class="special">,</span>
+ <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">real</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</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>
+ </p>
+<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.policy.pol_ref.discrete_quant_ref.h1"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_outwards"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.policy.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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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>
+ </p>
+<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">&lt;=</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">&gt;=</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.policy.pol_ref.discrete_quant_ref.h2"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_inwards"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.policy.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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span>
+ <span class="keyword">double</span><span class="special">,</span>
+ <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">integer_round_inwards</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</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>
+ </p>
+<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">&gt;=</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">&lt;=</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.policy.pol_ref.discrete_quant_ref.h3"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_down"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.policy.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.policy.pol_ref.discrete_quant_ref.h4"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_up"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.policy.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.policy.pol_ref.discrete_quant_ref.h5"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_nearest"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.policy.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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span>
+ <span class="keyword">double</span><span class="special">,</span>
+ <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">integer_round_nearest</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</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>
+ </p>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_ref/error_handling_policies.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/error_handling_policies.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,773 @@
+<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.77.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_policy_pol_ref_error_handling_policies">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.pol_ref.error_handling_policies"></a><a class="link" href="error_handling_policies.html" title="Error Handling Policies">Error
+ Handling Policies</a>
+</h4></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.policy.pol_ref.error_handling_policies.h0"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.error_handling_policies.available_actions_when_an_error_is_raised"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.available_actions_when_an_error_is_raised">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 &amp; 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.policy.pol_ref.error_handling_policies.h1"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.error_handling_policies.throw_on_error"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.policy.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.policy.pol_ref.error_handling_policies.h2"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.error_handling_policies.errno_on_error"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.policy.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.policy.pol_ref.error_handling_policies.h3"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.error_handling_policies.ignore_error"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.policy.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&lt;T&gt;::quiet_NaN()
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Pole Error
+ </p>
+ </td>
+<td>
+ <p>
+ std::numeric_limits&lt;T&gt;::quiet_NaN()
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Overflow Error
+ </p>
+ </td>
+<td>
+ <p>
+ std::numeric_limits&lt;T&gt;::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.policy.pol_ref.error_handling_policies.h4"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.error_handling_policies.user_error"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.policy.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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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.policy.pol_ref.error_handling_policies.h5"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.error_handling_policies.kinds_of_error_raised"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.policy.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&lt;<span class="emphasis"><em>action</em></span>&gt;
+ </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">&lt;</span><span class="identifier">throw_on_error</span><span class="special">&gt;</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&lt;<span class="emphasis"><em>action</em></span>&gt;
+ </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">&lt;</span><span class="identifier">throw_on_error</span><span class="special">&gt;</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&lt;<span class="emphasis"><em>action</em></span>&gt;
+ </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">&lt;</span><span class="identifier">throw_on_error</span><span class="special">&gt;</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&lt;<span class="emphasis"><em>action</em></span>&gt;
+ </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">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</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&lt;<span class="emphasis"><em>action</em></span>&gt;
+ </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">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</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&lt;<span class="emphasis"><em>action</em></span>&gt;
+ </p>
+ </td>
+<td>
+ <p>
+ Raised When one of the rounding functions <a class="link" href="../../utils/rounding/round.html" title="Rounding Functions">round</a>,
+ <a class="link" href="../../utils/rounding/trunc.html" title="Truncation Functions">trunc</a>
+ or <a class="link" href="../../utils/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">&lt;</span><span class="identifier">throw_on_error</span><span class="special">&gt;</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&lt;<span class="emphasis"><em>action</em></span>&gt;
+ </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">&lt;</span><span class="identifier">throw_on_error</span><span class="special">&gt;</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&lt;<span class="emphasis"><em>action</em></span>&gt;
+ </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">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</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.policy.pol_ref.error_handling_policies.h6"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.error_handling_policies.examples"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.policy.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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span>
+ <span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">evaluation_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;</span>
+<span class="special">&gt;</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">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;(),</span>
+ <span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;(),</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;(),</span>
+ <span class="identifier">evaluation_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;()</span> <span class="special">)</span>
+ <span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ Suppose we want a statistical distribution to return infinities, rather
+ than throw exceptions, then we can use:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</span>
+ <span class="special">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</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>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_ref/internal_promotion.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/internal_promotion.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,148 @@
+<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.77.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_policy_pol_ref_internal_promotion">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.pol_ref.internal_promotion"></a><a class="link" href="internal_promotion.html" title="Internal Floating-point Promotion Policies">Internal
+ Floating-point Promotion Policies</a>
+</h4></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">&lt;</span><span class="identifier">B</span><span class="special">&gt;</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">&lt;</span><span class="keyword">true</span><span class="special">&gt;</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">&lt;</span><span class="identifier">B</span><span class="special">&gt;</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">&lt;</span><span class="keyword">true</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.policy.pol_ref.internal_promotion.h0"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.internal_promotion.examples"></a></span><a class="link" href="internal_promotion.html#math_toolkit.policy.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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span>
+ <span class="identifier">promote_double</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span>
+ <span class="special">&gt;</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">&lt;</span><span class="keyword">false</span><span class="special">&gt;()));</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span>
+ <span class="identifier">promote_float</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span>
+ <span class="special">&gt;</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">&lt;</span><span class="keyword">float</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</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>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_ref/iteration_pol.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/iteration_pol.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,58 @@
+<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.77.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_policy_pol_ref_iteration_pol">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.pol_ref.iteration_pol"></a><a class="link" href="iteration_pol.html" title="Iteration Limits Policies">Iteration
+ Limits Policies</a>
+</h4></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">&lt;</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">&gt;</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">&lt;</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">&gt;</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="../../main_overview/error_handling.html#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="../../main_overview/error_handling.html#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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_ref/namespace_pol.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/namespace_pol.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,156 @@
+<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.77.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_policy_pol_ref_namespace_pol">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.pol_ref.namespace_pol"></a><a class="link" href="namespace_pol.html" title="Setting Polices at Namespace Scope">Setting
+ Polices at Namespace Scope</a>
+</h4></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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;</span> <span class="special">&gt;</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>
+ </p>
+<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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">assert_undefined</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span> <span class="special">&gt;</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">&amp;</span> <span class="identifier">e</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_ref/pol_ref_ref.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/pol_ref_ref.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,251 @@
+<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.77.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="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_policy_pol_ref_pol_ref_ref">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.pol_ref.pol_ref_ref"></a><a class="link" href="pol_ref_ref.html" title="Policy Class Reference">Policy Class
+ Reference</a>
+</h4></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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;...</span><span class="identifier">argument</span> <span class="identifier">list</span><span class="special">...&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">normalise</span><span class="special">&lt;</span><span class="identifier">policy</span><span class="special">&lt;&gt;,</span> <span class="identifier">A1</span><span class="special">&gt;::</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">&lt;</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">&gt;</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">&lt;...&gt;::</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">&lt;&gt;</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">&lt;...&gt;::</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">&lt;&gt;</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">&lt;...&gt;::</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">&lt;&gt;</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">&lt;...&gt;::</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">&lt;&gt;</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">&lt;...&gt;::</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">&lt;&gt;</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">&lt;...&gt;::</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">&lt;&gt;</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">&lt;...&gt;::</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">&lt;&gt;</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">&lt;...&gt;::</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">&lt;&gt;</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">&lt;...&gt;::</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">&lt;</span><span class="identifier">N</span><span class="special">&gt;</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">&lt;</span><span class="identifier">N</span><span class="special">&gt;</span></code>.
+ </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</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">&lt;</span><span class="identifier">B</span><span class="special">&gt;</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">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code>.
+ </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</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">&lt;</span><span class="identifier">B</span><span class="special">&gt;</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">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code>.
+ </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</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">&lt;&gt;</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">&lt;...&gt;::</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">&lt;</span><span class="identifier">B</span><span class="special">&gt;</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">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;...</span><span class="identifier">argument</span> <span class="identifier">list</span><span class="special">...&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">normalise</span><span class="special">&lt;</span><span class="identifier">policy</span><span class="special">&lt;&gt;,</span> <span class="identifier">A1</span><span class="special">&gt;::</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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">&gt;</span></code>
+ or <code class="computeroutput"><span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">A</span><span class="special">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_ref/policy_defaults.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/policy_defaults.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,251 @@
+<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.77.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_policy_pol_ref_policy_defaults">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.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>
+</h4></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.policy.pol_ref.policy_defaults.h0"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_domain_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.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.policy.pol_ref.policy_defaults.h1"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_pole_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.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.policy.pol_ref.policy_defaults.h2"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_overflow_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.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.policy.pol_ref.policy_defaults.h3"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_rounding_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.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.policy.pol_ref.policy_defaults.h4"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_evaluation_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_evaluation_error_policy">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.policy.pol_ref.policy_defaults.h5"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_underflow_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_underflow_error_policy">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.policy.pol_ref.policy_defaults.h6"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_denorm_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.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.policy.pol_ref.policy_defaults.h7"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_indeterminate_result_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_indeterminate_result_error_policy">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.policy.pol_ref.policy_defaults.h8"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_digits10_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.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.policy.pol_ref.policy_defaults.h9"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_promote_float_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.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.policy.pol_ref.policy_defaults.h10"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_promote_double_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.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.policy.pol_ref.policy_defaults.h11"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_discrete_quantile_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_discrete_quantile_policy">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.policy.pol_ref.policy_defaults.h12"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_assert_undefined_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_assert_undefined_policy">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.policy.pol_ref.policy_defaults.h13"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_series_iteration_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_series_iteration_policy">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="../../main_overview/error_handling.html#evaluation_error">evaluation_error</a>:
+ Defaults to 1000000.
+ </p>
+<h6>
+<a name="math_toolkit.policy.pol_ref.policy_defaults.h14"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_root_iteration_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_root_iteration_policy">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="../../main_overview/error_handling.html#evaluation_error">evaluation_error</a>:
+ Defaults to 200.
+ </p>
+<h6>
+<a name="math_toolkit.policy.pol_ref.policy_defaults.h15"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_ref.policy_defaults.example"></a></span><a class="link" href="policy_defaults.html#math_toolkit.policy.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">&lt;</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">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_ref/precision_pol.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_ref/precision_pol.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,113 @@
+<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.77.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_policy_pol_ref_precision_pol">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.pol_ref.precision_pol"></a><a class="link" href="precision_pol.html" title="Precision Policies">Precision
+ Policies</a>
+</h4></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">&lt;</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">&gt;</span>
+<span class="identifier">digits10</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">&gt;</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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">digits10</span><span class="special">&lt;</span><span class="number">5</span><span class="special">&gt;</span> <span class="special">&gt;</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>
+ </p>
+<p>
+ Or again using helper function <code class="computeroutput"><span class="identifier">make_policy</span></code>:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">digits10</span><span class="special">&lt;</span><span class="number">5</span><span class="special">&gt;</span> <span class="special">&gt;());</span> <span class="comment">// Concise make_policy.</span>
+</pre>
+<p>
+ </p>
+<p>
+ And for a quantile of a distribution to approximately 25-bit precision:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">digits2</span><span class="special">&lt;</span><span class="identifier">bits</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;(),</span>
+ <span class="number">0.05</span><span class="special">);</span> <span class="comment">// 5% quantile.</span>
+</pre>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_tutorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../policy.html" title="Policies">
+<link rel="prev" href="pol_overview.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_overview.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_policy_pol_tutorial">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.policy.pol_tutorial"></a><a class="link" href="pol_tutorial.html" title="Policy Tutorial">Policy Tutorial</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/policy/pol_tutorial/ad_hoc_dist_policies.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/ad_hoc_dist_policies.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,100 @@
+<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.77.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_policy_pol_tutorial_ad_hoc_dist_policies">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.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>
+</h4></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">&lt;</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">&lt;&gt;</span> <span class="special">&gt;</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">&lt;&gt;</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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span>
+ <span class="identifier">promote_float</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;,</span> <span class="comment">// Do not promote to double.</span>
+ <span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">integer_round_nearest</span><span class="special">&gt;</span> <span class="comment">// Round result to nearest integer.</span>
+<span class="special">&gt;</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">&lt;</span><span class="keyword">float</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">&gt;</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">&lt;&lt;</span> <span class="string">"quantile(mybinom(200, 0.25), 0.05) is: "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_tutorial/ad_hoc_sf_policies.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/ad_hoc_sf_policies.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,172 @@
+<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.77.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_policy_pol_tutorial_ad_hoc_sf_policies">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.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>
+</h4></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">&lt;</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">&gt;</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">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;&gt;());</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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span>
+ <span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">evaluation_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;</span>
+<span class="special">&gt;</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">&lt;&lt;</span> <span class="string">"Result of tgamma(30000) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Result of tgamma(-10) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Negative parameter.</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;&lt;</span> <span class="string">"Result of tgamma(30000) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;(),</span>
+ <span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;(),</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;(),</span>
+ <span class="identifier">evaluation_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;()</span>
+ <span class="special">)</span>
+ <span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Result of tgamma(-10) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;(),</span>
+ <span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;(),</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;(),</span>
+ <span class="identifier">evaluation_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;()</span>
+ <span class="special">)</span>
+ <span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_tutorial/changing_policy_defaults.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,270 @@
+<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.77.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_policy_pol_tutorial_changing_policy_defaults">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.pol_tutorial.changing_policy_defaults"></a><a class="link" href="changing_policy_defaults.html" title="Changing the Policy Defaults">Changing
+ the Policy Defaults</a>
+</h4></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>
+<p>
+</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>
+ </p>
+<p>
+ This may be helpful to avoid complications with pre-compiled headers
+ that may mean that the equivalent definitions in source code:
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ <span class="bold"><strong>may be ignored</strong></span>.
+ </p>
+<p>
+ The compiler command line shows:
+ </p>
+<p>
+</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>
+<p>
+ </p>
+</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>
+ 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>
+<p>
+</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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">stdexcept</span><span class="special">&gt;</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">&lt;</span><span class="identifier">cstddef</span><span class="special">&gt;</span>
+ <span class="comment">// using ::errno</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Example error handling using Student's t function. "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"BOOST_MATH_DOMAIN_ERROR_POLICY is set to: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"cdf returned a NaN!"</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"errno is set to: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Probability of Student's t is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</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">&amp;</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">&lt;&lt;</span>
+ <span class="string">"\n"</span><span class="string">"Message from thrown exception was:\n "</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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&lt;double&gt;::students_t_distribution:
+ Degrees of freedom argument is -1, but must be &gt; 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>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_tutorial/namespace_policies.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/namespace_policies.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,408 @@
+<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.77.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_policy_pol_tutorial_namespace_policies">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.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>
+</h4></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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="comment">//using boost::math::tgamma; // Not needed because using C::tgamma.</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;</span>
+ <span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">evaluation_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span> <span class="identifier">c_policy</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ We now have a set of forwarding functions defined in namespace C that all
+ look something like this:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;</span><span class="identifier">RT</span><span class="special">&gt;::</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>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Result of tgamma(30000) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// errno = 34</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Result of tgamma(-10) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="comment">// using boost::math::tgamma; // Would create an ambiguity between</span>
+<span class="comment">// 'double boost::math::tgamma&lt;int&gt;(T)' and</span>
+<span class="comment">// 'double 'anonymous-namespace'::tgamma&lt;int&gt;(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">&lt;</span>
+ <span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="identifier">evaluation_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;</span>
+<span class="special">&gt;</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>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Result of tgamma(30000) is: "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="number">30000</span><span class="special">)</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Result of tgamma(-10) is: "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">tgamma</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">&gt;</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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;</span>
+ <span class="comment">// return infinity and set errno rather than throw:</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="comment">// Don't promote double -&gt; long double internally:</span>
+ <span class="identifier">promote_double</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;,</span>
+ <span class="comment">// Return the closest integer result for discrete quantiles:</span>
+ <span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">integer_round_nearest</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span> <span class="identifier">my_policy</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ We now have a set of typedefs defined in namespace my_distributions that
+ all look something like this:
+ </p>
+<p>
+</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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</span> <span class="identifier">gamma</span><span class="special">;</span>
+<span class="comment">// etc</span>
+</pre>
+<p>
+ </p>
+<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">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</span></code>:
+ </p>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Result of quantile(norm, 0) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// -infinity.</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Result of quantile(norm, 1) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// +infinity.</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Result of quantile(binom, 0.05) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Result of quantile(complement(binom, 0.05)) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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&lt;RealType&gt; 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">&lt;</span>
+ <span class="comment">// return infinity and set errno rather than throw:</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span>
+ <span class="comment">// Don't promote double -&gt; long double internally:</span>
+ <span class="identifier">promote_double</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;,</span>
+ <span class="comment">// Return the closest integer result for discrete quantiles:</span>
+ <span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">integer_round_nearest</span><span class="special">&gt;</span>
+ <span class="special">&gt;</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">&lt;&lt;</span> <span class="string">"Result of quantile(norm, 0) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Result of quantile(norm, 1) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"errno = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">errno</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Result of quantile(binom, 0.05) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Result of quantile(complement(binom, 0.05)) is: "</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_tutorial/policy_tut_defaults.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/policy_tut_defaults.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,132 @@
+<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.77.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_policy_pol_tutorial_policy_tut_defaults">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.pol_tutorial.policy_tut_defaults"></a><a class="link" href="policy_tut_defaults.html" title="Policies Have Sensible Defaults">Policies
+ Have Sensible Defaults</a>
+</h4></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="Policy Overview">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">&lt;</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span> <span class="identifier">promote_double</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span> <span class="special">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_tutorial/policy_usage.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/policy_usage.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_policy_pol_tutorial_policy_usage">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.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>
+</h4></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_tutorial/understand_dis_quant.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,422 @@
+<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.77.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_policy_pol_tutorial_understand_dis_quant">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.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>
+</h4></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" alt="binomial_pdf"></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" alt="binomial_quantile_1"></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" alt="binomial_pdf_3"></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">&lt;=</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">&gt;=</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 &lt;= 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 &gt; 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">&lt;=</span> <span class="identifier">L</span> <span class="special">||</span> <span class="identifier">X</span> <span class="special">&gt;</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">&lt;</span> <span class="identifier">X</span> <span class="special">&lt;=</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>
+<h6>
+<a name="math_toolkit.policy.pol_tutorial.understand_dis_quant.h0"></a>
+ <span class="phrase"><a name="math_toolkit.policy.pol_tutorial.understand_dis_quant.other_rounding_policies_are_available"></a></span><a class="link" href="understand_dis_quant.html#math_toolkit.policy.pol_tutorial.understand_dis_quant.other_rounding_policies_are_available">Other
+ Rounding Policies are Available</a>
+ </h6>
+<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 &lt; 0.5), and upper quantiles (probability
+ &gt; 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 &lt; 0.5), and upper quantiles (probability
+ &gt; 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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</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">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</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">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Next we'll bring the needed declarations into scope, and define distribution
+ types for all the available rounding policies:
+ </p>
+<p>
+</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">&lt;</span>
+ <span class="keyword">double</span><span class="special">,</span>
+ <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">integer_round_outwards</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</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">&lt;</span>
+ <span class="keyword">double</span><span class="special">,</span>
+ <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">integer_round_inwards</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</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">&lt;</span>
+ <span class="keyword">double</span><span class="special">,</span>
+ <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">integer_round_down</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</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">&lt;</span>
+ <span class="keyword">double</span><span class="special">,</span>
+ <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">integer_round_up</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</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">&lt;</span>
+ <span class="keyword">double</span><span class="special">,</span>
+ <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">integer_round_nearest</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</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">&lt;</span>
+ <span class="keyword">double</span><span class="special">,</span>
+ <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">discrete_quantile</span><span class="special">&lt;</span><span class="identifier">real</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="identifier">binom_real_quantile</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Now let's set to work calling those quantiles:
+ </p>
+<p>
+</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"Policy"</span><span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"Lower Quantile"</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"Upper Quantile"</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"integer_round_outwards"</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"integer_round_inwards"</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"integer_round_down"</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"integer_round_up"</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"integer_round_nearest"</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+
+ <span class="comment">// Test real:</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</span> <span class="string">"real"</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span>
+ <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// int main()</span>
+</pre>
+<p>
+ </p>
+<p>
+ Which produces the program output:
+ </p>
+<pre class="programlisting">policy_eg_10.vcxproj -&gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_tutorial/user_def_err_pol.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/user_def_err_pol.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,523 @@
+<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.77.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_policy_pol_tutorial_user_def_err_pol">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.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>
+</h4></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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">TargetType</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;&lt;</span> <span class="string">"Domain Error!"</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
+ <span class="special">}</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;&lt;</span> <span class="string">"Pole Error!"</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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>
+ </p>
+<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>
+<p>
+</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">&lt;</span>
+ <span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">user_error</span><span class="special">&gt;,</span>
+ <span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">user_error</span><span class="special">&gt;</span>
+<span class="special">&gt;</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>
+ </p>
+<p>
+ We now have a set of forwarding functions defined in an unnamed namespace
+ that all look something like this:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;</span><span class="identifier">RT</span><span class="special">&gt;::</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>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Result of erf_inv(-10) is: "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">erf_inv</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Result of tgamma(-10) is: "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">tgamma</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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&amp; 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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Next we'll implement our own error handlers for each type of error, starting
+ with domain errors:
+ </p>
+<p>
+</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">val</span><span class="special">)</span>
+<span class="special">{</span>
+</pre>
+<p>
+ </p>
+<p>
+ We'll begin with a bit of defensive programming in case function or message
+ are empty:
+ </p>
+<p>
+</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>
+ </p>
+<p>
+ Next we'll format the name of the function with the name of type T, perhaps
+ double:
+ </p>
+<p>
+</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>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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&lt;T&gt;::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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cerr</span> <span class="special">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Finally the only sensible value we can return from a domain error is a
+ NaN:
+ </p>
+<p>
+</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</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>
+ </p>
+<p>
+ Underflow errors are much the same as overflow:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</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>
+ </p>
+<p>
+ Denormalised results are much the same as underflow:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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&lt;T&gt;::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">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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>
+ </p>
+<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>
+<p>
+</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">&lt;</span>
+ <span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">user_error</span><span class="special">&gt;,</span>
+ <span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">user_error</span><span class="special">&gt;,</span>
+ <span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">user_error</span><span class="special">&gt;,</span>
+ <span class="identifier">underflow_error</span><span class="special">&lt;</span><span class="identifier">user_error</span><span class="special">&gt;,</span>
+ <span class="identifier">denorm_error</span><span class="special">&lt;</span><span class="identifier">user_error</span><span class="special">&gt;,</span>
+ <span class="identifier">evaluation_error</span><span class="special">&lt;</span><span class="identifier">user_error</span><span class="special">&gt;</span>
+<span class="special">&gt;</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>
+ </p>
+<p>
+ We now have a set of forwarding functions, defined in an unnamed namespace,
+ that all look something like this:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</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">&lt;</span><span class="identifier">RT</span><span class="special">&gt;::</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>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Result of erf_inv(-10) is: "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">erf_inv</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Result of tgamma(-10) is: "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">tgamma</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Result of tgamma(3000) is: "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="number">3000</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Result of tgamma(-190.5) is: "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">tgamma</span><span class="special">(-</span><span class="number">190.5</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">&lt;&lt;</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>
+ </p>
+<p>
+ Which outputs:
+ </p>
+<pre class="programlisting">Error in function boost::math::erf_inv&lt;double&gt;(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&lt;long double&gt;(long double):
+Evaluation of tgamma at a negative integer -10.
+Result of tgamma(-10) is: 1.#QNAN
+
+Error in function boost::math::tgamma&lt;long double&gt;(long double):
+Result of tgamma is too large to represent.
+Error in function boost::math::tgamma&lt;double&gt;(double):
+Result of function is too large to represent
+Result of tgamma(3000) is: 1.#INF
+
+Error in function boost::math::tgamma&lt;long double&gt;(long double):
+Result of tgamma is too large to represent.
+Error in function boost::math::tgamma&lt;long double&gt;(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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/policy/pol_tutorial/what_is_a_policy.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/policy/pol_tutorial/what_is_a_policy.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_policy_pol_tutorial_what_is_a_policy">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.policy.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>
+</h4></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">&lt;&gt;</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">&lt;</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">errno_on_error</span><span class="special">&gt;,</span> <span class="identifier">promote_double</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span> <span class="special">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,57 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Quaternions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="inverse_complex/history.html" title="History">
+<link rel="next" href="quaternions/overview.html" title="Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="inverse_complex/history.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="quaternions/overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_quaternions">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.quaternions"></a><a class="link" href="quaternions.html" title="Quaternions">Quaternions</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<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"><a href="quaternions/mem_typedef.html">Quaternion Member
+ Typedefs</a></span></dt>
+<dt><span class="section">Quaternion Member Functions</span></dt>
+<dt><span class="section"><a href="quaternions/non_mem.html">Quaternion Non-Member
+ Operators</a></span></dt>
+<dt><span class="section">Quaternion Value Operations</span></dt>
+<dt><span class="section"><a href="quaternions/create.html">Quaternion Creation
+ Functions</a></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/history.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="quaternions/overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/quaternions/acknowledgement.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/acknowledgement.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,43 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_acknowledgement">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.acknowledgement"></a><a class="link" href="acknowledgement.html" title="Acknowledgements">Acknowledgements</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/create.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/create.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,113 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_create">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.create"></a><a class="link" href="create.html" title="Quaternion Creation Functions">Quaternion Creation
+ Functions</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">spherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">semipolar</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="id
entifier">theta2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">multipolar</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="i
dentifier">theta2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cylindrospherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">t</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">radius</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">longitude</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span
 class="identifier">latitude</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cylindrical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">angle</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</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_toolkit.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_toolkit.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 <a href="http://www.r-project.org/" target="_top">The R Project
+ for Statistical Computing</a> components of the quaternion, respectively.
+ </p>
+<p>
+ <a name="math_toolkit.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_toolkit.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 <a href="http://www.r-project.org/" target="_top">The R
+ Project for Statistical Computing</a> 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_toolkit.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/exp.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/exp.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_exp">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.exp"></a><a class="link" href="exp.html" title="The Quaternionic Exponential">The Quaternionic Exponential</a>
+</h3></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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/header.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/header.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_header">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.header"></a><a class="link" href="header.html" title="Header File">Header File</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/history.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/history.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,102 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_history">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.history"></a><a class="link" href="history.html" title="History">History</a>
+</h3></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; &lt;boost/config.hpp&gt;
+ 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 &lt;boost/math/special_functions/sinc.hpp&gt;
+ and &lt;boost/math/special_functions/sinhc.hpp&gt; instead of &lt;boost/special_functions.hpp&gt;;
+ 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/mem_fun.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/mem_fun.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,229 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_mem_fun">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.mem_fun"></a><a class="link" href="mem_fun.html" title="Quaternion Member Functions">Quaternion Member Functions</a>
+</h3></div></div></div>
+<h4>
+<a name="math_toolkit.quaternions.mem_fun.h0"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.constructors"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</s
pan><span class="special">&gt;());</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</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">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">dou
ble</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.mem_fun.h1"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.other_member_functions"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.other_member_functions">Other member
+ functions</a>
+ </h4>
+<h5>
+<a name="math_toolkit.quaternions.mem_fun.h2"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.real_and_unreal_parts"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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.quaternions.mem_fun.h3"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.individual_real_components"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.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.quaternions.mem_fun.h4"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.individual_complex__components"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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 = &#945; + &#946;i + &#947;j + &#948;k</code></em></span> we also have
+ <span class="emphasis"><em><code class="literal">q = (&#945; + &#946;i) + (&#947; + &#948;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.quaternions.mem_fun.h5"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.quaternion_member_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.quaternion_member_operators">Quaternion
+ Member Operators</a>
+ </h4>
+<h5>
+<a name="math_toolkit.quaternions.mem_fun.h6"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.assignment_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">Assignment
+ Operators</a>
+ </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</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.quaternions.mem_fun.h7"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.addition_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.addition_operators">Addition
+ Operators</a>
+ </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.mem_fun.h8"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.subtraction_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.subtraction_operators">Subtraction
+ Operators</a>
+ </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.mem_fun.h9"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.multiplication_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.multiplication_operators">Multiplication
+ Operators</a>
+ </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.mem_fun.h10"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.mem_fun.division_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.division_operators">Division
+ Operators</a>
+ </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/mem_typedef.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/mem_typedef.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,63 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_mem_typedef">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.mem_typedef"></a><a class="link" href="mem_typedef.html" title="Quaternion Member Typedefs">Quaternion Member
+ Typedefs</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/non_mem.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/non_mem.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,215 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_non_mem">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.non_mem"></a><a class="link" href="non_mem.html" title="Quaternion Non-Member Operators">Quaternion Non-Member
+ Operators</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.quaternions.non_mem.h0"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.non_mem.unary_plus"></a></span><a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.unary_plus">Unary
+ Plus</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+ This unary operator simply returns q.
+ </p>
+<h5>
+<a name="math_toolkit.quaternions.non_mem.h1"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.non_mem.unary_minus"></a></span><a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.unary_minus">Unary
+ Minus</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.non_mem.h2"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.non_mem.binary_addition_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_addition_operators">Binary
+ Addition Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifie
r">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.quaternions.non_mem.h3"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.non_mem.binary_subtraction_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_subtraction_operators">Binary
+ Subtraction Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifie
r">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.quaternions.non_mem.h4"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.non_mem.binary_multiplication_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_multiplication_operators">Binary
+ Multiplication Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifie
r">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.quaternions.non_mem.h5"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.non_mem.binary_division_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_division_operators">Binary
+ Division Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifie
r">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.quaternions.non_mem.h6"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.non_mem.equality_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.equality_operators">Equality
+ Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.quaternions.non_mem.h7"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.non_mem.inequality_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.inequality_operators">Inequality
+ Operators</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">==</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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.quaternions.non_mem.h8"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.non_mem.stream_extractor"></a></span><a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.stream_extractor">Stream
+ Extractor</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">&gt;&gt;</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</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.quaternions.non_mem.h9"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.non_mem.stream_inserter"></a></span><a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.stream_inserter">Stream
+ Inserter</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">&lt;&lt;</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</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">&gt;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</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">&lt;&lt;</span> <span class="char">'('</span> <span class="special">&lt;&lt;</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">','</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_2</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">','</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_3</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">','</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_4</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">')'</span><span class="special">;</span>
+
+ <span class="keyword">return</span> <span class="identifier">os</span> <span class="special">&lt;&lt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/overview.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Quaternions">
+<link rel="prev" href="../quaternions.html" title="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_quaternions_overview">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.overview"></a><a class="link" href="overview.html" title="Overview">Overview</a>
+</h3></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 <a href="http://www.r-project.org/" target="_top">The R Project for Statistical
+ Computing</a>), 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 (&#945;,&#946;,&#947;,&#948;),
+ which we can write in the form <span class="emphasis"><em><code class="literal">q = &#945; + &#946;i + &#947;j + &#948;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
+ &#8800; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/quat.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/quat.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_quat">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.quat"></a><a class="link" href="quat.html" title="Template Class quaternion">Template Class quaternion</a>
+</h3></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">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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.quaternions.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</span> <span class="ide
ntifier">requested_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.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;());</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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.quaternions.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.quaternions.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.quaternions.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.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/spec.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/spec.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_spec">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.spec"></a><a class="link" href="spec.html" title="Quaternion Specializations">Quaternion Specializations</a>
+</h3></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">&lt;&gt;</span>
+<span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</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.quaternions.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</span> <span class="identifi
er">requested_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.quaternions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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><sp
an class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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.quaternions.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.quaternions.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.quaternions.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.quaternions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="math_toolkit.quaternion_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;&gt;</span>
+<span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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.quaternions.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</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">&amp;</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">&amp;</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">&amp;</span> <span class="identif
ier">requested_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.quaternions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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.quaternions.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.quaternions.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.quaternions.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.quaternions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="math_toolkit.quaternion_long_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;&gt;</span>
+<span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</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.quaternions.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">&amp;</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">&amp;</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">&amp;</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">&amp;</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.quaternions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><sp
an class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;());</span>
+ <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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.quaternions.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.quaternions.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.quaternions.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.quaternions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.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">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;&amp;</span> <a class="link" href="mem_fun.html#math_toolkit.quaternions.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/synopsis.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/synopsis.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_synopsis">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.synopsis"></a><a class="link" href="synopsis.html" title="Synopsis">Synopsis</a>
+</h3></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">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;&gt;</span> <span class="keyword">class</span> <a class="link" href="spec.html" title="Quaternion Specializations">quaternion&lt;float&gt;</a><span class="special">;</span>
+<span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">class</span> <a class="link" href="spec.html#math_toolkit.quaternion_double">quaternion&lt;double&gt;</a><span class="special">;</span>
+<span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">class</span> <a class="link" href="spec.html#math_toolkit.quaternion_long_double">quaternion&lt;long double&gt;</a><span class="special">;</span>
+
+<span class="comment">// operators</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span clas
s="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="spe
cial">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span c
lass="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="
special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <spa
n class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span clas
s="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span clas
s="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="spe
cial">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.unary_plus">operator +</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.unary_minus">operator -</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;&amp;</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.stream_extractor">operator &gt;&gt;</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <sp
an class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <a class="link" href="non_mem.html#math_toolkit.quaternions.non_mem.stream_inserter">operator &lt;&lt;</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <
span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="comment">// values</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="value_op.html#math_toolkit.quaternions.value_op.real_and_unreal">real</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="value_op.html#math_toolkit.quaternions.value_op.real_and_unreal">unreal</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="value_op.html#math_toolkit.quaternions.value_op.sup">sup</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="value_op.html#math_toolkit.quaternions.value_op.l1">l1</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="value_op.html#math_toolkit.quaternions.value_op.abs">abs</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <a class="link" href="value_op.html#math_toolkit.quaternions.value_op.norm">norm</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span><span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="value_op.html#math_toolkit.quaternions.value_op.conj">conj</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="create.html#math_toolkit.quaternions.creation_spherical">spherical</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span>
<span class="special">&amp;</span> <span class="identifier">phi2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="create.html#math_toolkit.quaternions.creation_semipolar">semipolar</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span
> <span class="special">&amp;</span> <span class="identifier">theta2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="create.html#math_toolkit.quaternions.creation_multipolar">multipolar</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</sp
an> <span class="special">&amp;</span> <span class="identifier">theta2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="create.html#math_toolkit.quaternions.creation_cylindrospherical">cylindrospherical</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">t</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">radius</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">longitude</span><span class="special">,</span> <span class="identifier">T</span> <span class="ke
yword">const</span> <span class="special">&amp;</span> <span class="identifier">latitude</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="create.html#math_toolkit.quaternions.creation_cylindrical">cylindrical</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">angle</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span>
<span class="special">&amp;</span> <span class="identifier">h2</span><span class="special">);</span>
+
+<span class="comment">// transcendentals</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="trans.html#math_toolkit.quaternions.trans.exp">exp</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="trans.html#math_toolkit.quaternions.trans.cos">cos</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="trans.html#math_toolkit.quaternions.trans.sin">sin</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="trans.html#math_toolkit.quaternions.trans.tan">tan</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="trans.html#math_toolkit.quaternions.trans.cosh">cosh</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="trans.html#math_toolkit.quaternions.trans.sinh">sinh</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="trans.html#math_toolkit.quaternions.trans.tanh">tanh</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <a class="link" href="trans.html#math_toolkit.quaternions.trans.pow">pow</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/tests.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/tests.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,52 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_tests">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.tests"></a><a class="link" href="tests.html" title="Test Program">Test Program</a>
+</h3></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 math_toolkit_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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/todo.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/todo.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,52 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Quaternions">
+<link rel="prev" href="history.html" title="History">
+<link rel="next" href="../octonions.html" title="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_quaternions_todo">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.todo"></a><a class="link" href="todo.html" title="To Do">To Do</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/trans.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/trans.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,137 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_trans">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.trans"></a><a class="link" href="trans.html" title="Quaternion Transcendentals">Quaternion Transcendentals</a>
+</h3></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.quaternions.trans.h0"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.trans.exp"></a></span><a class="link" href="trans.html#math_toolkit.quaternions.trans.exp">exp</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+ Computes the exponential of the quaternion.
+ </p>
+<h5>
+<a name="math_toolkit.quaternions.trans.h1"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.trans.cos"></a></span><a class="link" href="trans.html#math_toolkit.quaternions.trans.cos">cos</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cos</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+ Computes the cosine of the quaternion
+ </p>
+<h5>
+<a name="math_toolkit.quaternions.trans.h2"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.trans.sin"></a></span><a class="link" href="trans.html#math_toolkit.quaternions.trans.sin">sin</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sin</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+ Computes the sine of the quaternion.
+ </p>
+<h5>
+<a name="math_toolkit.quaternions.trans.h3"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.trans.tan"></a></span><a class="link" href="trans.html#math_toolkit.quaternions.trans.tan">tan</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">tan</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+ Computes the tangent of the quaternion.
+ </p>
+<h5>
+<a name="math_toolkit.quaternions.trans.h4"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.trans.cosh"></a></span><a class="link" href="trans.html#math_toolkit.quaternions.trans.cosh">cosh</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cosh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.trans.h5"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.trans.sinh"></a></span><a class="link" href="trans.html#math_toolkit.quaternions.trans.sinh">sinh</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sinh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.trans.h6"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.trans.tanh"></a></span><a class="link" href="trans.html#math_toolkit.quaternions.trans.tanh">tanh</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">tanh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.trans.h7"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.trans.pow"></a></span><a class="link" href="trans.html#math_toolkit.quaternions.trans.pow">pow</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/quaternions/value_op.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quaternions/value_op.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="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_quaternions_value_op">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.quaternions.value_op"></a><a class="link" href="value_op.html" title="Quaternion Value Operations">Quaternion Value Operations</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.quaternions.value_op.h0"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.value_op.real_and_unreal"></a></span><a class="link" href="value_op.html#math_toolkit.quaternions.value_op.real_and_unreal">real
+ and unreal</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">real</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">unreal</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.value_op.h1"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.value_op.conj"></a></span><a class="link" href="value_op.html#math_toolkit.quaternions.value_op.conj">conj</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">conj</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.value_op.h2"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.value_op.sup"></a></span><a class="link" href="value_op.html#math_toolkit.quaternions.value_op.sup">sup</a>
+ </h5>
+<p>
+ template&lt;typename T&gt; T sup(quaternion&lt;T&gt; const &amp; 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.quaternions.value_op.h3"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.value_op.l1"></a></span><a class="link" href="value_op.html#math_toolkit.quaternions.value_op.l1">l1</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">l1</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.value_op.h4"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.value_op.abs"></a></span><a class="link" href="value_op.html#math_toolkit.quaternions.value_op.abs">abs</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">abs</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</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.quaternions.value_op.h5"></a>
+ <span class="phrase"><a name="math_toolkit.quaternions.value_op.norm"></a></span><a class="link" href="value_op.html#math_toolkit.quaternions.value_op.norm">norm</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">norm</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span><span class="keyword">const</span> <span class="special">&amp;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Special Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="dist/future.html" title="Extras/Future Directions">
+<link rel="next" href="special/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="dist/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="special/sf_gamma.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_special">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.special"></a><a class="link" href="special.html" title="Special Functions">Special Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Gamma Functions</span></dt>
+<dt><span class="section"><a href="special/factorials.html">Factorials and Binomial
+ Coefficients</a></span></dt>
+<dt><span class="section">Beta Functions</span></dt>
+<dt><span class="section">Error Functions</span></dt>
+<dt><span class="section">Polynomials</span></dt>
+<dt><span class="section">Bessel Functions</span></dt>
+<dt><span class="section">Hankel Functions</span></dt>
+<dt><span class="section">Airy Functions</span></dt>
+<dt><span class="section">Elliptic Integrals</span></dt>
+<dt><span class="section">Jacobi Elliptic Functions</span></dt>
+<dt><span class="section">Zeta Functions</span></dt>
+<dt><span class="section">Exponential Integrals</span></dt>
+<dt><span class="section">Basic Functions</span></dt>
+<dt><span class="section"><a href="special/sinc.html">Sinus Cardinal and Hyperbolic
+ Sinus Cardinal Functions</a></span></dt>
+<dt><span class="section">Inverse Hyperbolic Functions</span></dt>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="special/sf_gamma.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/special/airy.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/airy.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_airy">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.airy"></a><a class="link" href="airy.html" title="Airy Functions">Airy Functions</a>
+</h3></div></div></div>
+<div class="toc"><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></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/airy/ai.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/airy/ai.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,119 @@
+<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.77.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_special_airy_ai">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.airy.ai"></a><a class="link" href="ai.html" title="Airy Ai Function">Airy Ai Function</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.airy.ai.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.ai.synopsis"></a></span><a class="link" href="ai.html#math_toolkit.special.airy.ai.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.airy.ai.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.ai.description"></a></span><a class="link" href="ai.html#math_toolkit.special.airy.ai.description">Description</a>
+ </h6>
+<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="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="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>
+<h6>
+<a name="math_toolkit.special.airy.ai.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.ai.accuracy"></a></span><a class="link" href="ai.html#math_toolkit.special.airy.ai.accuracy">Accuracy</a>
+ </h6>
+<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 &#949;) for <span class="emphasis"><em>x
+ &gt; 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x
+ &lt; 0</em></span>.
+ </p>
+<h6>
+<a name="math_toolkit.special.airy.ai.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.ai.testing"></a></span><a class="link" href="ai.html#math_toolkit.special.airy.ai.testing">Testing</a>
+ </h6>
+<p>
+ Since this function is implemented in terms of other special functions,
+ there are only a few basic sanity checks, using test values from Wolfram Airy Functions.
+ </p>
+<h6>
+<a name="math_toolkit.special.airy.ai.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.ai.implementation"></a></span><a class="link" href="ai.html#math_toolkit.special.airy.ai.implementation">Implementation</a>
+ </h6>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/airy/aip.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/airy/aip.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,115 @@
+<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.77.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_special_airy_aip">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.airy.aip"></a><a class="link" href="aip.html" title="Airy Ai' Function">Airy Ai' Function</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.airy.aip.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.aip.synopsis"></a></span><a class="link" href="aip.html#math_toolkit.special.airy.aip.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.airy.aip.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.aip.description"></a></span><a class="link" href="aip.html#math_toolkit.special.airy.aip.description">Description</a>
+ </h6>
+<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="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="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>
+<h6>
+<a name="math_toolkit.special.airy.aip.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.aip.accuracy"></a></span><a class="link" href="aip.html#math_toolkit.special.airy.aip.accuracy">Accuracy</a>
+ </h6>
+<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 &#949;) for <span class="emphasis"><em>x
+ &gt; 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x
+ &lt; 0</em></span>.
+ </p>
+<h6>
+<a name="math_toolkit.special.airy.aip.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.aip.testing"></a></span><a class="link" href="aip.html#math_toolkit.special.airy.aip.testing">Testing</a>
+ </h6>
+<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>
+<h6>
+<a name="math_toolkit.special.airy.aip.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.aip.implementation"></a></span><a class="link" href="aip.html#math_toolkit.special.airy.aip.implementation">Implementation</a>
+ </h6>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/airy/bi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/airy/bi.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,115 @@
+<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.77.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_special_airy_bi">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.airy.bi"></a><a class="link" href="bi.html" title="Airy Bi Function">Airy Bi Function</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.airy.bi.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.bi.synopsis"></a></span><a class="link" href="bi.html#math_toolkit.special.airy.bi.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.airy.bi.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.bi.description"></a></span><a class="link" href="bi.html#math_toolkit.special.airy.bi.description">Description</a>
+ </h6>
+<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="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="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>
+<h6>
+<a name="math_toolkit.special.airy.bi.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.bi.accuracy"></a></span><a class="link" href="bi.html#math_toolkit.special.airy.bi.accuracy">Accuracy</a>
+ </h6>
+<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 &#949;) for <span class="emphasis"><em>x
+ &gt; 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x
+ &lt; 0</em></span>.
+ </p>
+<h6>
+<a name="math_toolkit.special.airy.bi.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.bi.testing"></a></span><a class="link" href="bi.html#math_toolkit.special.airy.bi.testing">Testing</a>
+ </h6>
+<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>
+<h6>
+<a name="math_toolkit.special.airy.bi.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.bi.implementation"></a></span><a class="link" href="bi.html#math_toolkit.special.airy.bi.implementation">Implementation</a>
+ </h6>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/airy/bip.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/airy/bip.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,115 @@
+<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.77.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_special_airy_bip">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.airy.bip"></a><a class="link" href="bip.html" title="Airy Bi' Function">Airy Bi' Function</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.airy.bip.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.bip.synopsis"></a></span><a class="link" href="bip.html#math_toolkit.special.airy.bip.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.airy.bip.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.bip.description"></a></span><a class="link" href="bip.html#math_toolkit.special.airy.bip.description">Description</a>
+ </h6>
+<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="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="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>
+<h6>
+<a name="math_toolkit.special.airy.bip.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.bip.accuracy"></a></span><a class="link" href="bip.html#math_toolkit.special.airy.bip.accuracy">Accuracy</a>
+ </h6>
+<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 &#949;) for <span class="emphasis"><em>x
+ &gt; 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x
+ &lt; 0</em></span>.
+ </p>
+<h6>
+<a name="math_toolkit.special.airy.bip.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.bip.testing"></a></span><a class="link" href="bip.html#math_toolkit.special.airy.bip.testing">Testing</a>
+ </h6>
+<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>
+<h6>
+<a name="math_toolkit.special.airy.bip.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.airy.bip.implementation"></a></span><a class="link" href="bip.html#math_toolkit.special.airy.bip.implementation">Implementation</a>
+ </h6>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/bessel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/bessel.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,48 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_bessel">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.bessel"></a><a class="link" href="bessel.html" title="Bessel Functions">Bessel Functions</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="bessel/bessel_over.html">Bessel Function
+ Overview</a></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/bessel/bessel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/bessel.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,690 @@
+<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.77.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_special_bessel_bessel">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.bessel.bessel.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.synopsis"></a></span><a class="link" href="bessel.html#math_toolkit.special.bessel.bessel.synopsis">Synopsis</a>
+ </h5>
+<p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></code>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.bessel.bessel.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.description"></a></span><a class="link" href="bessel.html#math_toolkit.special.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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ The functions return the result of <a class="link" href="../../main_overview/error_handling.html#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">&lt;</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">&lt;=</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 -&#8734; &#160; 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.special.bessel.bessel.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.testing"></a></span><a class="link" href="bessel.html#math_toolkit.special.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.special.bessel.bessel.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.accuracy"></a></span><a class="link" href="bessel.html#math_toolkit.special.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="../../backgrounders/relative_error.html#zero_error">effectively
+ zero error</a>. All values are relative errors in units of epsilon.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.bessel.bessel.errors_rates_in_cyl_bessel_j"></a><p class="title"><b>Table&#160;39.&#160;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> &#160; and J<sub>1</sub>
+ </p>
+ </th>
+<th>
+ <p>
+ J<sub>v</sub>
+ </p>
+ </th>
+<th>
+ <p>
+ J<sub>v</sub> &#160; (large values of x &gt; 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> &#160; 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> &#160; 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.special.bessel.bessel.errors_rates_in_cyl_neumann"></a><p class="title"><b>Table&#160;40.&#160;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> &#160; 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> &#160; Mean=7x10<sup>4</sup> &#160;
+ </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> &#160; Mean=8x10<sup>3</sup>
+ </p>
+ </td>
+<td>
+ <p>
+ Peak=1x10<sup>5</sup> &#160; 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> &#160; 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.special.bessel.bessel.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.implementation"></a></span><a class="link" href="bessel.html#math_toolkit.special.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 &gt; 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 &gt; 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&amp;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> &#160; and Y<sub>1</sub> &#160; 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> &#160; and Y<sub>1</sub> &#160; 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
+ &amp; 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 &#160; 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> &#160; and Y<sub>v</sub> &#160; simultaneously.
+ </p>
+<p>
+ To get the initial values, let &#956; &#160; = &#957; - floor(&#957; + 1/2), then &#956; &#160; is the fractional
+ part of &#957; &#160; such that |&#956;| &lt;= 1/2 (we need this for convergence later). The
+ idea is to calculate J<sub>&#956;</sub>(x), J<sub>&#956;+1</sub>(x), Y<sub>&#956;</sub>(x), Y<sub>&#956;+1</sub>(x) and use them to obtain
+ J<sub>&#957;</sub>(x), Y<sub>&#957;</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 &gt; 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 &lt;= v</em></span>, CF1 converges rapidly, CF2 fails to converge
+ when <span class="emphasis"><em>x</em></span> <code class="literal">-&gt;</code> 0
+ </p>
+<p>
+ When <span class="emphasis"><em>x</em></span> is large (<span class="emphasis"><em>x</em></span> &gt; 2), both
+ continued fractions converge (CF1 may be slow for really large <span class="emphasis"><em>x</em></span>).
+ J<sub>&#956;</sub>, J<sub>&#956;+1</sub>, Y<sub>&#956;</sub>, Y<sub>&#956;+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>&#957;</sub> and Y<sub>&#956;</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> &lt;= 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> &#160; and h<sub>k</sub> &#160;
+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 |&#956;| &lt;= 1/2.
+ </p>
+<p>
+ As the previous case, Y<sub>&#957;</sub> &#160; is calculated from the forward recurrence, so is
+ Y<sub>&#957;+1</sub>. With these two values and f<sub>&#957;</sub>, the Wronskian yields J<sub>&#957;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/bessel/bessel0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/bessel0.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,838 @@
+<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.77.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_special_bessel_bessel0">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.bessel.bessel.h5"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.synopsis0"></a></span><a class="link" href="bessel0.html#math_toolkit.special.bessel.bessel.synopsis0">Synopsis</a>
+ </h5>
+<p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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="Policies">Policies</a>
+ for error handling and precision.
+ </p>
+<pre class="programlisting"> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;);</span> <span class="comment">// Policy to use.</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;);</span> <span class="comment">// Policy to use.</span>
+
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</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">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span> <span class="comment">// Policy to use.</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.bessel.bessel.h6"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.description0"></a></span><a class="link" href="bessel0.html#math_toolkit.special.bessel.bessel.description0">Description</a>
+ </h5>
+<p>
+ Every real order &#957; 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>
+ &#8193; <span class="emphasis"><em>J<sub>&#957;</sub>(j<sub>&#957;, m</sub>) = 0</em></span>
+ </p>
+<p>
+ &#8193; <span class="emphasis"><em>Y<sub>&#957;</sub>(y<sub>&#957;, m</sub>) = 0</em></span>
+ </p>
+<p>
+ Here, <span class="emphasis"><em>j<sub>&#957;, 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>&#957;</em></span>,
+ and <span class="emphasis"><em>y<sub>&#957;, 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>&#957;</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">&lt;=</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">&gt;</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.special.bessel.bessel.h7"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.examples_of_finding_bessel_and_neumann_zeros"></a></span><a class="link" href="bessel0.html#math_toolkit.special.bessel.bessel.examples_of_finding_bessel_and_neumann_zeros">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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ To use the functions for finding zeros of the functions we need
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ This file includes the forward declaration signatures for the zero-finding
+ functions:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="comment">// #include &lt;boost/math/special_functions/math_fwd.hpp&gt;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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 &lt;&lt; "boost::math::cyl_bessel_j_zero(0.0, 1) " &lt;&lt; root &lt;&lt; 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&lt;double&gt;::digits10);</span>
+<span class="comment">// std::cout &lt;&lt; "boost::math::cyl_bessel_j_zero(0.0, 1) " &lt;&lt; root &lt;&lt; std::endl; // 2.40482555769577</span>
+</pre>
+<p>
+ </p>
+<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>
+ </p>
+<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="../../policy/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>
+<p>
+</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">&lt;</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">&lt;</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">&gt;,</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">&lt;</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">&gt;,</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">&lt;</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">&gt;,</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">&lt;</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">&gt;,</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">&lt;</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">&gt;,</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">&lt;</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">&gt;</span>
+ <span class="special">&gt;</span> <span class="identifier">ignore_all_policy</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Examples of use of this <code class="computeroutput"><span class="identifier">ignore_all_policy</span></code>
+ are
+ </p>
+<p>
+</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(-1.0, 1) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">dodgy_root</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(inf, 1) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">inf_root</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(nan, 1) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nan_root</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</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>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="identifier">float_type</span><span class="special">&gt;::</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">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">showpoint</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"x = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">x</span> <span class="special">&lt;&lt;</span> <span class="string">", r = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">r</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"x = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">x</span> <span class="special">&lt;&lt;</span> <span class="string">", r = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">r</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">float_type</span><span class="special">&gt;</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">&lt;&lt;</span> <span class="string">"cyl_bessel_j_zeros"</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">float_type</span><span class="special">&gt;(</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>
+ </p>
+<h6>
+<a name="math_toolkit.special.bessel.bessel.h8"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.using_output_iterator_to_sum_zeros_of_bessel_functions"></a></span><a class="link" href="bessel0.html#math_toolkit.special.bessel.bessel.using_output_iterator_to_sum_zeros_of_bessel_functions">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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">it</span><span class="special">(&amp;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"nu = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nu</span> <span class="special">&lt;&lt;</span> <span class="string">", sum = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sum</span>
+ <span class="special">&lt;&lt;</span> <span class="string">", exact = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">s</span> <span class="special">&lt;&lt;</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>
+<p>
+ </p>
+<h6>
+<a name="math_toolkit.special.bessel.bessel.h9"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.calculating_zeros_of_the_neumann_function_"></a></span><a class="link" href="bessel0.html#math_toolkit.special.bessel.bessel.calculating_zeros_of_the_neumann_function_">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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ To use the functions for finding zeros of the <code class="computeroutput"><span class="identifier">cyl_neumann</span></code>
+ function we need:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ The Neumann (Bessel Y) function zeros are evaluated very similarly:
+ </p>
+<p>
+</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">&lt;&lt;</span> <span class="string">"cyl_neumann_zero(2., 1) = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">zn</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;</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">&lt;</span><span class="keyword">float</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"cyl_neumann_zero&lt;float&gt;(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">&lt;</span><span class="keyword">float</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"\n"</span><span class="string">"cyl_neumann_zero(static_cast&lt;float_type&gt;(220)/100, 1) = "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">cyl_neumann_zero</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">float_type</span><span class="special">&gt;(</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">&lt;&lt;</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>
+<p>
+ </p>
+<h6>
+<a name="math_toolkit.special.bessel.bessel.h10"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.error_messages_from__bad__input"></a></span><a class="link" href="bessel0.html#math_toolkit.special.bessel.bessel.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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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 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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(0.F, 0) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">dodgy_root</span> <span class="special">&lt;&lt;</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&lt;double&gt;(double, int):</span>
+ <span class="comment">// Requested the 0'th zero of J0, but the rank must be &gt; 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">&amp;</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">&lt;&lt;</span> <span class="string">"Thrown exception "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ex</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</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>
+ </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 type shown in the error message is the type <span class="bold"><strong>after
+ promotion</strong></span>, using <a class="link" href="../../policy/pol_ref/precision_pol.html" title="Precision Policies">precision
+ policy</a> and <a class="link" href="../../policy/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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(inf, 1) "</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(inf, 1) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">inf_root</span> <span class="special">&lt;&lt;</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&lt;long double&gt;(long double, unsigned):</span>
+ <span class="comment">// Order argument is 1.#INF, but must be finite &gt;= 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">&amp;</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">&lt;&lt;</span> <span class="string">"Thrown exception "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ex</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(nan, 1) "</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(nan, 1) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nan_root</span> <span class="special">&lt;&lt;</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&lt;long double&gt;(long double, unsigned):</span>
+ <span class="comment">// Order argument is 1.#QNAN, but must be finite &gt;= 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">&amp;</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">&lt;&lt;</span> <span class="string">"Thrown exception "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ex</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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.special.bessel.bessel.h11"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.implementation0"></a></span><a class="link" href="bessel0.html#math_toolkit.special.bessel.bessel.implementation0">Implementation</a>
+ </h4>
+<p>
+ Various methods are used to compute initial estimates for <span class="emphasis"><em>j<sub>&#957;,
+ m</sub></em></span> and <span class="emphasis"><em>y<sub>&#957;, 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="../../toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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>&#957;</sub>(x)</em></span> or <span class="emphasis"><em>Y<sub>&#957;</sub>(x)</em></span>
+ as well as its derivative. The derivatives of <span class="emphasis"><em>J<sub>&#957;</sub>(x)</em></span>
+ and <span class="emphasis"><em>Y<sub>&#957;</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>
+ &#8193; <span class="emphasis"><em>d/<sub>dx</sub> <span class="emphasis"><em>J<sub>&#957;</sub>(x)</em></span> = <span class="emphasis"><em>J<sub>&#957;-1</sub>(x)</em></span> -
+ &#957; J<sub>&#957;</sub>(x)</em></span> / x
+ </p>
+<p>
+ &#8193; <span class="emphasis"><em>d/<sub>dx</sub> <span class="emphasis"><em>Y<sub>&#957;</sub>(x)</em></span> = <span class="emphasis"><em>Y<sub>&#957;-1</sub>(x)</em></span> -
+ &#957; Y<sub>&#957;</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,&#8230;</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>&#957;</sub>(x)</em></span>
+ has a root at the origin for every positive order <span class="emphasis"><em>&#957; &gt; 0</em></span>,
+ and for every negative integer order <span class="emphasis"><em>&#957; = -n</em></span> with <span class="emphasis"><em>n
+ &#8712; &#8469; <sup>+</sup></em></span> and <span class="emphasis"><em>n &#8800; 0</em></span>.
+ </p>
+<p>
+ In addition, <span class="emphasis"><em>Y<sub>&#957;</sub>(x)</em></span> has a root at the origin for every
+ negative half-integer order <span class="emphasis"><em>&#957; = -n/2</em></span>, with <span class="emphasis"><em>n
+ &#8712; &#8469; <sup>+</sup></em></span> and and <span class="emphasis"><em>n &#8800; 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 &#8805; 2</em></span>. Furthermore, estimates of the
+ roots for Bessel functions with order above and below a cutoff at <span class="emphasis"><em>&#957; =
+ 2.2</em></span> are calculated with different methods.
+ </p>
+<p>
+ Calculations of the estimates of <span class="emphasis"><em>j<sub>&#957;,1</sub></em></span> and <span class="emphasis"><em>y<sub>&#957;,1</sub></em></span>
+ with <span class="emphasis"><em>0 &#8804; &#957; &lt; 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>&#957;,1</sub></em></span> and <span class="emphasis"><em>y<sub>&#957;,1</sub></em></span>
+ with <span class="emphasis"><em>&#957;&#8805; 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>
+ &#8193; <span class="emphasis"><em>j<sub>&#957;,1</sub> &#8773; &#957; + 1.85575 &#957;<sup>&#8531;</sup> + 1.033150 &#957;<sup>-&#8531;</sup> - 0.00397 &#957;<sup>-1</sup> - 0.0908 &#957;<sup>-5/3</sup> + 0.043 &#957;<sup>-7/3</sup> +
+ &#8230;</em></span>
+ </p>
+<p>
+ and
+ </p>
+<p>
+ &#8193; <span class="emphasis"><em>y<sub>&#957;,1</sub> &#8773; &#957; + 0.93157 &#957;<sup>&#8531;</sup> + 0.26035 &#957;<sup>-&#8531;</sup> + 0.01198 &#957;<sup>-1</sup> - 0.0060 &#957;<sup>-5/3</sup> - 0.001 &#957;<sup>-7/3</sup> +
+ &#8230;</em></span>
+ </p>
+<p>
+ Calculations of the estimates of <span class="emphasis"><em>j<sub>&#957;, m</sub></em></span> and <span class="emphasis"><em>y<sub>&#957;,
+ m</sub></em></span> with rank <span class="emphasis"><em>m &gt; 2</em></span> and <span class="emphasis"><em>0 &#8804; &#957; &lt;
+ 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>
+ &#8193; <span class="emphasis"><em>j<sub>&#957;,m</sub>, y<sub>&#957;,m</sub> &#8773; &#946; - (&#956;-1) / 8&#946;</em></span>
+ </p>
+<p>
+ &#8193; &#8193; &#8193; <span class="emphasis"><em>- 4(&#956;-1)(7&#956; - 31) / 3(8&#946;)<sup>3</sup></em></span>
+ </p>
+<p>
+ &#8193; &#8193; &#8193; <span class="emphasis"><em>-32(&#956;-1)(83&#956;&#178; - 982&#956; + 3779) / 15(8&#946;)<sup>5</sup></em></span>
+ </p>
+<p>
+ &#8193; &#8193; &#8193; <span class="emphasis"><em>-64(&#956;-1)(6949&#956;<sup>3</sup> - 153855&#956;&#178; + 1585743&#956;- 6277237) / 105(8a)<sup>7</sup></em></span>
+ </p>
+<p>
+ &#8193; &#8193; &#8193; <span class="emphasis"><em>- &#8230;</em></span> &#8193; &#8193; (5)
+ </p>
+<p>
+ where <span class="emphasis"><em>&#956; = 4&#957;<sup>2</sup></em></span> and <span class="emphasis"><em>&#946; = (m + &#189;&#957; - &#188;)&#960;</em></span> for
+ <span class="emphasis"><em>j<sub>&#957;,m</sub></em></span> and <span class="emphasis"><em>&#946; = (m + &#189;&#957; -&#190;)&#960; for <span class="emphasis"><em>y<sub>&#957;,m</sub></em></span></em></span>.
+ </p>
+<p>
+ Calculations of the estimates of <span class="emphasis"><em>j<sub>&#957;, m</sub></em></span> and <span class="emphasis"><em>y<sub>&#957;,
+ m</sub></em></span> with <span class="emphasis"><em>&#957; &#8805; 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">&#167;10.21(vi)
+ McMahon's Asymptotic Expansions for Large Zeros</a> - using slightly
+ different variable names).
+ </p>
+<p>
+ In summary,
+ </p>
+<p>
+ &#8193; <span class="emphasis"><em>j<sub>&#957;, m</sub> &#8764; &#957;x(-&#950;) + f<sub>1</sub>(-&#950;/&#957;)</em></span>
+ </p>
+<p>
+ where <span class="emphasis"><em>-&#950; = &#957;<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(-&#950;)</em></span> is the inverse of the function
+ </p>
+<p>
+ &#8193; <span class="emphasis"><em>&#8532;(-&#950;)<sup>3/2</sup> = &#8730;(x&#178; - 1) - cos&#8315;&#185;(1/x)</em></span> &#8193; &#8193; (7)
+ </p>
+<p>
+ Furthermore,
+ </p>
+<p>
+ &#8193; <span class="emphasis"><em>f<sub>1</sub>(-&#950;) = &#189;x(-&#950;) {h(-&#950;)}&#178; &#8901; b<sub>0</sub>(-&#950;)</em></span>
+ </p>
+<p>
+ where
+ </p>
+<p>
+ &#8193; <span class="emphasis"><em>h(-&#950;) = {4(-&#950;) / (x&#178; - 1)}<sup>4</sup></em></span>
+ </p>
+<p>
+ and
+ </p>
+<p>
+ &#8193; <span class="emphasis"><em>b<sub>0</sub>(-&#950;) = -5/(48&#950;&#178;) + 1/(-&#950;)<sup>&#189;</sup> &#8901; { 5/(24(x<sup>2</sup>-1)<sup>3/2</sup>) + 1/(8(x<sup>2</sup>-1)<sup>&#189;)</sup>}</em></span>
+ </p>
+<p>
+ When solving for <span class="emphasis"><em>x(-&#950;)</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>
+ &#8193; <span class="emphasis"><em>&#8532;(-&#950;)<sup>3/2</sup> &#8776; x + 1/2x - &#960;/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(-&#950;)</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>-&#957;,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>
+ &#8193; <span class="emphasis"><em>j<sub>n&#957;,m</sub></em></span> &lt; <span class="emphasis"><em>j<sub>-&#957;,m</sub></em></span> &lt; <span class="emphasis"><em>j<sub>n&#957;,m+1</sub></em></span>
+ </p>
+<p>
+ where <span class="emphasis"><em>m &gt; 1</em></span> and <span class="emphasis"><em>n<sub>&#957;</sub></em></span> represents
+ the integral floor of the absolute value of <span class="emphasis"><em>|-&#957;|</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>-&#957;,1</sub></em></span> and <span class="emphasis"><em>y<sub>-&#957;,1</sub></em></span>.
+ </p>
+<h4>
+<a name="math_toolkit.special.bessel.bessel.h12"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel.testing0"></a></span><a class="link" href="bessel0.html#math_toolkit.special.bessel.bessel.testing0">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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/bessel/bessel_over.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/bessel_over.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,205 @@
+<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.77.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_special_bessel_bessel_over">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.bessel.bessel_over"></a><a class="link" href="bessel_over.html" title="Bessel Function Overview">Bessel Function
+ Overview</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.bessel.bessel_over.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel_over.ordinary_bessel_functions"></a></span><a class="link" href="bessel_over.html#math_toolkit.special.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 &#957; &#160; 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> &#160;
+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> &#160; or N<sub>v</sub> &#160;
+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.special.bessel.bessel_over.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel_over.modified_bessel_functions"></a></span><a class="link" href="bessel_over.html#math_toolkit.special.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> &#160; and K<sub>v</sub> &#160;
+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.special.bessel.bessel_over.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.bessel_over.spherical_bessel_functions"></a></span><a class="link" href="bessel_over.html#math_toolkit.special.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> &#160; and y<sub>n</sub> &#160;, and are related to the ordinary Bessel
+ functions J<sub>n</sub> &#160; and Y<sub>n</sub> &#160; 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> &#160;
+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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/bessel/mbessel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/mbessel.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_special_bessel_mbessel">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.bessel.mbessel.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.mbessel.synopsis"></a></span><a class="link" href="mbessel.html#math_toolkit.special.bessel.mbessel.synopsis">Synopsis</a>
+ </h5>
+<p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></code>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.bessel.mbessel.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.mbessel.description"></a></span><a class="link" href="mbessel.html#math_toolkit.special.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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ The functions return the result of <a class="link" href="../../main_overview/error_handling.html#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">&lt;</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">&lt;=</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.special.bessel.mbessel.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.mbessel.testing"></a></span><a class="link" href="mbessel.html#math_toolkit.special.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.special.bessel.mbessel.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.mbessel.accuracy"></a></span><a class="link" href="mbessel.html#math_toolkit.special.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="../../backgrounders/relative_error.html#zero_error">effectively
+ zero error</a>. All values are relative errors in units of epsilon.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.bessel.mbessel.errors_rates_in_cyl_bessel_i"></a><p class="title"><b>Table&#160;41.&#160;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.special.bessel.mbessel.errors_rates_in_cyl_bessel_k"></a><p class="title"><b>Table&#160;42.&#160;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.special.bessel.mbessel.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.mbessel.implementation"></a></span><a class="link" href="mbessel.html#math_toolkit.special.bessel.mbessel.implementation">Implementation</a>
+ </h5>
+<p>
+ The following are handled as special cases first:
+ </p>
+<p>
+ When computing I<sub>v</sub> &#160; for <span class="emphasis"><em>x &lt; 0</em></span>, then &#957; &#160; must be an integer
+ or a domain error occurs. If &#957; &#160; is an integer, then the function is odd if
+ &#957; &#160; is odd and even if &#957; &#160; is even, and we can reflect to <span class="emphasis"><em>x &gt; 0</em></span>.
+ </p>
+<p>
+ For I<sub>v</sub> &#160; 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 / &#960;x) * sinh(x)
+ </p>
+<p>
+ For K<sub>v</sub> &#160; 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> &#160; and K<sub>1</sub> &#160; 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 &#160; 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 &#957; &#160; 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 &#956; &#160; = &#957; - floor(&#957; + 1/2), then &#956; &#160; is the fractional part of &#957; &#160; such that |&#956;| &lt;=
+ 1/2 (we need this for convergence later). The idea is to calculate K<sub>&#956;</sub>(x)
+ and K<sub>&#956;+1</sub>(x), and use them to obtain I<sub>&#957;</sub>(x) and K<sub>&#957;</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 &gt; 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 &lt;= v</em></span>, CF1 converges rapidly, CF2 fails to converge
+ when <span class="emphasis"><em>x</em></span> <code class="literal">-&gt;</code> 0.
+ </p>
+<p>
+ When <span class="emphasis"><em>x</em></span> is large (<span class="emphasis"><em>x</em></span> &gt; 2), both
+ continued fractions converge (CF1 may be slow for really large <span class="emphasis"><em>x</em></span>).
+ K<sub>&#956;</sub> &#160; and K<sub>&#956;+1</sub> &#160;
+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> &lt;= 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> &#160; and h<sub>k</sub> &#160;
+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 |&#956;| &lt;= 1/2.
+ </p>
+<p>
+ K<sub>&#957;</sub>(x) is then calculated from the forward recurrence, as is K<sub>&#957;+1</sub>(x). With
+ these two values and f<sub>&#957;</sub>, the Wronskian yields I<sub>&#957;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/bessel/sph_bessel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/bessel/sph_bessel.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_special_bessel_sph_bessel">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.bessel.sph_bessel.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.sph_bessel.synopsis"></a></span><a class="link" href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.synopsis">Synopsis</a>
+ </h5>
+<p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></code>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.bessel.sph_bessel.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.sph_bessel.description"></a></span><a class="link" href="sph_bessel.html#math_toolkit.special.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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ The functions return the result of <a class="link" href="../../main_overview/error_handling.html#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">&lt;</span> <span class="number">0</span></code>.
+ </p>
+<p>
+ The j<sub>v</sub> &#160; function is cyclic like J<sub>v</sub> &#160; 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> &#160; is also cyclic for large x, but tends to -&#8734; &#160;
+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.special.bessel.sph_bessel.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.sph_bessel.testing"></a></span><a class="link" href="sph_bessel.html#math_toolkit.special.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.special.bessel.sph_bessel.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.sph_bessel.accuracy"></a></span><a class="link" href="sph_bessel.html#math_toolkit.special.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.special.bessel.sph_bessel.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.bessel.sph_bessel.implementation"></a></span><a class="link" href="sph_bessel.html#math_toolkit.special.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> &#160;= <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 &lt; 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 &#8594; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/ellint.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/ellint.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,48 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_ellint">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.ellint"></a><a class="link" href="ellint.html" title="Elliptic Integrals">Elliptic Integrals</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ellint/ellint_intro.html">Elliptic
+ Integral Overview</a></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/ellint/ellint_1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/ellint_1.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,260 @@
+<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.77.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_special_ellint_ellint_1">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_1.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_1.synopsis"></a></span><a class="link" href="ellint_1.html#math_toolkit.special.ellint.ellint_1.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_1.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_1.description"></a></span><a class="link" href="ellint_1.html#math_toolkit.special.ellint.ellint_1.description">Description</a>
+ </h6>
+<p>
+ These two functions evaluate the incomplete elliptic integral of the first
+ kind <span class="emphasis"><em>F(&#966;, k)</em></span> and its complete counterpart <span class="emphasis"><em>K(k)
+ = F(&#960;/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="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<p>
+ Returns the incomplete elliptic integral of the first kind <span class="emphasis"><em>F(&#966;,
+ k)</em></span>:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../equations/ellint2.png"></span>
+ </p>
+<p>
+ Requires -1 &lt;= k &lt;= 1, otherwise returns the result of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &lt;= k &lt;= 1, otherwise returns the result of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_1.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_1.accuracy"></a></span><a class="link" href="ellint_1.html#math_toolkit.special.ellint.ellint_1.accuracy">Accuracy</a>
+ </h6>
+<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="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
+ All values are relative errors in units of epsilon.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.ellint.ellint_1.errors_rates_in_the_elliptic_integrals_of_the_first_kind"></a><p class="title"><b>Table&#160;44.&#160;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(&#966;, 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"><h6>
+<a name="math_toolkit.special.ellint.ellint_1.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_1.testing"></a></span><a class="link" href="ellint_1.html#math_toolkit.special.ellint.ellint_1.testing">Testing</a>
+ </h6>
+<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>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_1.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_1.implementation"></a></span><a class="link" href="ellint_1.html#math_toolkit.special.ellint.ellint_1.implementation">Implementation</a>
+ </h6>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/ellint/ellint_2.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/ellint_2.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,260 @@
+<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.77.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_special_ellint_ellint_2">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_2.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_2.synopsis"></a></span><a class="link" href="ellint_2.html#math_toolkit.special.ellint.ellint_2.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_2.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_2.description"></a></span><a class="link" href="ellint_2.html#math_toolkit.special.ellint.ellint_2.description">Description</a>
+ </h6>
+<p>
+ These two functions evaluate the incomplete elliptic integral of the second
+ kind <span class="emphasis"><em>E(&#966;, k)</em></span> and its complete counterpart <span class="emphasis"><em>E(k)
+ = E(&#960;/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="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<p>
+ Returns the incomplete elliptic integral of the second kind <span class="emphasis"><em>E(&#966;,
+ k)</em></span>:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../equations/ellint3.png"></span>
+ </p>
+<p>
+ Requires -1 &lt;= k &lt;= 1, otherwise returns the result of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &lt;= k &lt;= 1, otherwise returns the result of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_2.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_2.accuracy"></a></span><a class="link" href="ellint_2.html#math_toolkit.special.ellint.ellint_2.accuracy">Accuracy</a>
+ </h6>
+<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="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
+ All values are relative errors in units of epsilon.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.ellint.ellint_2.errors_rates_in_the_elliptic_integrals_of_the_second_kind"></a><p class="title"><b>Table&#160;45.&#160;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(&#966;, 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"><h6>
+<a name="math_toolkit.special.ellint.ellint_2.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_2.testing"></a></span><a class="link" href="ellint_2.html#math_toolkit.special.ellint.ellint_2.testing">Testing</a>
+ </h6>
+<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>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_2.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_2.implementation"></a></span><a class="link" href="ellint_2.html#math_toolkit.special.ellint.ellint_2.implementation">Implementation</a>
+ </h6>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/ellint/ellint_3.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/ellint_3.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,314 @@
+<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.77.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_special_ellint_ellint_3">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_3.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_3.synopsis"></a></span><a class="link" href="ellint_3.html#math_toolkit.special.ellint.ellint_3.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_3.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_3.description"></a></span><a class="link" href="ellint_3.html#math_toolkit.special.ellint.ellint_3.description">Description</a>
+ </h6>
+<p>
+ These two functions evaluate the incomplete elliptic integral of the third
+ kind <span class="emphasis"><em>&#928;(n, &#966;, k)</em></span> and its complete counterpart <span class="emphasis"><em>&#928;(n,
+ k) = E(n, &#960;/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="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<p>
+ Returns the incomplete elliptic integral of the third kind <span class="emphasis"><em>&#928;(n,
+ &#966;, k)</em></span>:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../equations/ellint4.png"></span>
+ </p>
+<p>
+ Requires <span class="emphasis"><em>-1 &lt;= k &lt;= 1</em></span> and <span class="emphasis"><em>n &lt; 1/sin<sup>2</sup>(&#966;)</em></span>,
+ otherwise returns the result of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>
+ (outside this range the result would be complex).
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<p>
+ Returns the complete elliptic integral of the first kind <span class="emphasis"><em>&#928;(n,
+ k)</em></span>:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../equations/ellint8.png"></span>
+ </p>
+<p>
+ Requires <span class="emphasis"><em>-1 &lt;= k &lt;= 1</em></span> and <span class="emphasis"><em>n &lt; 1</em></span>,
+ otherwise returns the result of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>
+ (outside this range the result would be complex).
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_3.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_3.accuracy"></a></span><a class="link" href="ellint_3.html#math_toolkit.special.ellint.ellint_3.accuracy">Accuracy</a>
+ </h6>
+<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="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
+ All values are relative errors in units of epsilon.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.ellint.ellint_3.errors_rates_in_the_elliptic_integrals_of_the_third_kind"></a><p class="title"><b>Table&#160;46.&#160;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>
+ &#928;(n, &#966;, k)
+ </p>
+ </th>
+<th>
+ <p>
+ &#928;(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"><h6>
+<a name="math_toolkit.special.ellint.ellint_3.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_3.testing"></a></span><a class="link" href="ellint_3.html#math_toolkit.special.ellint.ellint_3.testing">Testing</a>
+ </h6>
+<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>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_3.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_3.implementation"></a></span><a class="link" href="ellint_3.html#math_toolkit.special.ellint.ellint_3.implementation">Implementation</a>
+ </h6>
+<p>
+ The implementation for &#928;(n, &#966;, k) first siphons off the special cases:
+ </p>
+<p>
+ <span class="emphasis"><em>&#928;(0, &#966;, k) = F(&#966;, k)</em></span>
+ </p>
+<p>
+ <span class="emphasis"><em>&#928;(n, &#960;/2, k) = &#928;(n, k)</em></span>
+ </p>
+<p>
+ and
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../equations/ellint23.png"></span>
+ </p>
+<p>
+ Then if n &lt; 0 the relations (A&amp;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>&#928;(n, -&#966;, k) = -&#928;(n, &#966;, k)</em></span>
+ </p>
+<p>
+ <span class="emphasis"><em>&#928;(n, &#966;+m&#960;, k) = &#928;(n, &#966;, k) + 2m&#928;(n, k) ; n &lt;= 1</em></span>
+ </p>
+<p>
+ <span class="emphasis"><em>&#928;(n, &#966;+m&#960;, k) = &#928;(n, &#966;, k) ; n &gt; 1</em></span> [1]</sup></a>
+ </p>
+<p>
+ are used to move &#966; &#160; to the range [0, &#960;/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; align:left;">
+<div id="ftn.math_toolkit.special.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 * &#928;(n, k)</em></span> terms cancel out as the
+ derivative alternates between +&#8734; and -&#8734;.
+ </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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/ellint/ellint_carlson.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/ellint_carlson.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,434 @@
+<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.77.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_special_ellint_ellint_carlson">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.ellint.ellint_carlson"></a><a class="link" href="ellint_carlson.html" title="Elliptic Integrals - Carlson Form">Elliptic
+ Integrals - Carlson Form</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_carlson.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_carlson.synopsis"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;)</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;)</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;)</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;)</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_carlson.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_carlson.description"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.description">Description</a>
+ </h6>
+<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="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;)</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="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;)</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 &gt;= 0. Otherwise returns the result of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;)</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="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ When <span class="emphasis"><em>p &lt; 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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;)</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 &gt; 0</em></span> and that <span class="emphasis"><em>y != 0</em></span>.
+ Otherwise returns the result of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ When <span class="emphasis"><em>y &lt; 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>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_carlson.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_carlson.testing"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.testing">Testing</a>
+ </h6>
+<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>
+<h6>
+<a name="math_toolkit.special.ellint.ellint_carlson.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_carlson.accuracy"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.accuracy">Accuracy</a>
+ </h6>
+<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="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
+ All values are relative errors in units of epsilon.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.ellint.ellint_carlson.errors_rates_in_the_carlson_elliptic_integrals"></a><p class="title"><b>Table&#160;43.&#160;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"><h6>
+<a name="math_toolkit.special.ellint.ellint_carlson.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_carlson.implementation"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.implementation">Implementation</a>
+ </h6>
+<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 &lt; 0</em></span> in <span class="emphasis"><em>R<sub>J</sub>(x, y, z, p)</em></span>
+ and <span class="emphasis"><em>y &lt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/ellint/ellint_intro.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/ellint/ellint_intro.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,400 @@
+<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.77.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_special_ellint_ellint_intro">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.ellint.ellint_intro"></a><a class="link" href="ellint_intro.html" title="Elliptic Integral Overview">Elliptic
+ Integral Overview</a>
+</h4></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.special.ellint.ellint_intro.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_intro.notation"></a></span><a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.notation">Notation</a>
+ </h5>
+<p>
+ All variables are real numbers unless otherwise noted.
+ </p>
+<h5>
+<a name="math_toolkit.special.ellint.ellint_intro.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_intro._anchor_id__ellint_def___definition"></a></span><a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro._anchor_id__ellint_def___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>&#966;</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>&#945;</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 &#945;, or a parameter <span class="emphasis"><em>m</em></span>. These are related
+ by:
+ </p>
+<p>
+ k = sin&#945;
+ </p>
+<p>
+ m = k<sup>2</sup> = sin<sup>2</sup>&#945;
+ </p>
+<p>
+ So that the integral of the third kind (for example) may be expressed
+ as either:
+ </p>
+<p>
+ &#928;(n, &#966;, k)
+ </p>
+<p>
+ &#928;(n, &#966; \ &#945;)
+ </p>
+<p>
+ &#928;(n, &#966;| 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>&#945;
+ </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>&#966;</em></span> = <span class="emphasis"><em>&#960;</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.special.ellint.ellint_intro.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_intro._anchor_id__ellint_theorem___duplication_theorem"></a></span><a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro._anchor_id__ellint_theorem___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.special.ellint.ellint_intro.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_intro._anchor_id__ellint_formula___carlson_s_formulas"></a></span><a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro._anchor_id__ellint_formula___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.special.ellint.ellint_intro.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_intro.numerical_algorithms"></a></span><a class="link" href="ellint_intro.html#math_toolkit.special.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.special.ellint.ellint_intro.h5"></a>
+ <span class="phrase"><a name="math_toolkit.special.ellint.ellint_intro._anchor_id__ellint_refs___references"></a></span><a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro._anchor_id__ellint_refs___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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/expint.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/expint.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,42 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_expint">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.expint"></a><a class="link" href="expint.html" title="Exponential Integrals">Exponential Integrals</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="expint/expint_n.html">Exponential Integral
+ En</a></span></dt>
+<dt><span class="section"><a href="expint/expint_i.html">Exponential Integral
+ Ei</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/expint/expint_i.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/expint/expint_i.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,293 @@
+<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.77.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_special_expint_expint_i">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.expint.expint_i"></a><a class="link" href="expint_i.html" title="Exponential Integral Ei">Exponential Integral
+ Ei</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.expint.expint_i.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.expint.expint_i.synopsis"></a></span><a class="link" href="expint_i.html#math_toolkit.special.expint.expint_i.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.expint.expint_i.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.expint.expint_i.description"></a></span><a class="link" href="expint_i.html#math_toolkit.special.expint.expint_i.description">Description</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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.special.expint.expint_i.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.expint.expint_i.accuracy"></a></span><a class="link" href="expint_i.html#math_toolkit.special.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="../../backgrounders/relative_error.html#zero_error">effectively zero
+ error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.expint.expint_i.errors_in_the_function_expint_z_"></a><p class="title"><b>Table&#160;50.&#160;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.special.expint.expint_i.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.expint.expint_i.testing"></a></span><a class="link" href="expint_i.html#math_toolkit.special.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.special.expint.expint_i.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.expint.expint_i.implementation"></a></span><a class="link" href="expint_i.html#math_toolkit.special.expint.expint_i.implementation">Implementation</a>
+ </h5>
+<p>
+ For x &lt; 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 &gt; 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="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.rational_approximations_used">devised
+ by JM</a> are used.
+ </p>
+<p>
+ For 0 &lt; z &lt; 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]</sup></a> 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; align:left;">
+<div id="ftn.math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/expint/expint_n.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/expint/expint_n.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,288 @@
+<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.77.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_special_expint_expint_n">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.expint.expint_n"></a><a class="link" href="expint_n.html" title="Exponential Integral En">Exponential Integral
+ En</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.expint.expint_n.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.expint.expint_n.synopsis"></a></span><a class="link" href="expint_n.html#math_toolkit.special.expint.expint_n.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.expint.expint_n.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.expint.expint_n.description"></a></span><a class="link" href="expint_n.html#math_toolkit.special.expint.expint_n.description">Description</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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.special.expint.expint_n.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.expint.expint_n.accuracy"></a></span><a class="link" href="expint_n.html#math_toolkit.special.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="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.expint.expint_n.errors_in_the_function_expint_n__z_"></a><p class="title"><b>Table&#160;49.&#160;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.special.expint.expint_n.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.expint.expint_n.testing"></a></span><a class="link" href="expint_n.html#math_toolkit.special.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.special.expint.expint_n.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.expint.expint_n.implementation"></a></span><a class="link" href="expint_n.html#math_toolkit.special.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="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.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">&lt;</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">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/factorials.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/factorials.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,48 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_factorials">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.factorials"></a><a class="link" href="factorials.html" title="Factorials and Binomial Coefficients">Factorials and Binomial
+ Coefficients</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Factorial</span></dt>
+<dt><span class="section"><a href="factorials/sf_double_factorial.html">Double
+ Factorial</a></span></dt>
+<dt><span class="section"><a href="factorials/sf_rising_factorial.html">Rising
+ Factorial</a></span></dt>
+<dt><span class="section"><a href="factorials/sf_falling_factorial.html">Falling
+ Factorial</a></span></dt>
+<dt><span class="section"><a href="factorials/sf_binomial.html">Binomial
+ Coefficients</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/factorials/sf_binomial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/sf_binomial.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,139 @@
+<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.77.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_special_factorials_sf_binomial">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.factorials.sf_binomial"></a><a class="link" href="sf_binomial.html" title="Binomial Coefficients">Binomial
+ Coefficients</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</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="Policies">Policy</a><span class="special">&amp;);</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 &lt;= n.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ May return the result of <a class="link" href="../../main_overview/error_handling.html#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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</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.special.factorials.sf_binomial.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_binomial.accuracy"></a></span><a class="link" href="sf_binomial.html#math_toolkit.special.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.special.factorials.sf_binomial.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_binomial.testing"></a></span><a class="link" href="sf_binomial.html#math_toolkit.special.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.special.factorials.sf_binomial.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_binomial.implementation"></a></span><a class="link" href="sf_binomial.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/factorials/sf_double_factorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/sf_double_factorial.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,159 @@
+<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.77.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_special_factorials_sf_double_factorial">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.factorials.sf_double_factorial"></a><a class="link" href="sf_double_factorial.html" title="Double Factorial">Double
+ Factorial</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</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="Policies">Policy</a><span class="special">&amp;);</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="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ May return the result of <a class="link" href="../../main_overview/error_handling.html#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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</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="identifier">static_assert</span></code>
+ and comment just after the will be:
+ </p>
+<p>
+</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">);</span>
+<span class="comment">// factorial&lt;unsigned int&gt;(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&lt;unsigned int&gt;(factorial&lt;double&gt;(n));</span>
+<span class="comment">// See factorial documentation for more detail.</span>
+</pre>
+<p>
+ </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 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.special.factorials.sf_double_factorial.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_double_factorial.accuracy"></a></span><a class="link" href="sf_double_factorial.html#math_toolkit.special.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.special.factorials.sf_double_factorial.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_double_factorial.testing"></a></span><a class="link" href="sf_double_factorial.html#math_toolkit.special.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.special.factorials.sf_double_factorial.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_double_factorial.implementation"></a></span><a class="link" href="sf_double_factorial.html#math_toolkit.special.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)!! = &#915;((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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/factorials/sf_factorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/sf_factorial.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,191 @@
+<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.77.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_special_factorials_sf_factorial">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.factorials.sf_factorial"></a><a class="link" href="sf_factorial.html" title="Factorial">Factorial</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.factorials.sf_factorial.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_factorial.synopsis"></a></span><a class="link" href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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.special.factorials.sf_factorial.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_factorial.description"></a></span><a class="link" href="sf_factorial.html#math_toolkit.special.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</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="identifier">static_assert</span></code>
+ and comment just after the will be:
+ </p>
+<p>
+</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">);</span>
+<span class="comment">// factorial&lt;unsigned int&gt;(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&lt;unsigned int&gt;(factorial&lt;double&gt;(n));</span>
+<span class="comment">// See factorial documentation for more detail.</span>
+</pre>
+<p>
+ </p>
+</td></tr>
+</table></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<p>
+ Returns <code class="literal">i!</code>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ For <code class="literal">i &lt;= max_factorial&lt;T&gt;::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="../../main_overview/error_handling.html#overflow_error">overflow_error</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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 &lt;= max_factorial&lt;T&gt;::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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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.special.factorials.sf_factorial.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_factorial.accuracy"></a></span><a class="link" href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.accuracy">Accuracy</a>
+ </h5>
+<p>
+ For arguments smaller than <code class="computeroutput"><span class="identifier">max_factorial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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.special.factorials.sf_factorial.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_factorial.testing"></a></span><a class="link" href="sf_factorial.html#math_toolkit.special.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.special.factorials.sf_factorial.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_factorial.implementation"></a></span><a class="link" href="sf_factorial.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/factorials/sf_falling_factorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/sf_falling_factorial.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,104 @@
+<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.77.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_special_factorials_sf_falling_factorial">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.factorials.sf_falling_factorial"></a><a class="link" href="sf_falling_factorial.html" title="Falling Factorial">Falling
+ Factorial</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ May return the result of <a class="link" href="../../main_overview/error_handling.html#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="../../main_overview/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.special.factorials.sf_falling_factorial.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_falling_factorial.accuracy"></a></span><a class="link" href="sf_falling_factorial.html#math_toolkit.special.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.special.factorials.sf_falling_factorial.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_falling_factorial.testing"></a></span><a class="link" href="sf_falling_factorial.html#math_toolkit.special.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.special.factorials.sf_falling_factorial.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_falling_factorial.implementation"></a></span><a class="link" href="sf_falling_factorial.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/factorials/sf_rising_factorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/factorials/sf_rising_factorial.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,108 @@
+<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.77.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_special_factorials_sf_rising_factorial">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.factorials.sf_rising_factorial"></a><a class="link" href="sf_rising_factorial.html" title="Rising Factorial">Rising
+ Factorial</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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) = &#915;(x + i) / &#915;(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="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ May return the result of <a class="link" href="../../main_overview/error_handling.html#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="../../main_overview/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.special.factorials.sf_rising_factorial.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_rising_factorial.accuracy"></a></span><a class="link" href="sf_rising_factorial.html#math_toolkit.special.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.special.factorials.sf_rising_factorial.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_rising_factorial.testing"></a></span><a class="link" href="sf_rising_factorial.html#math_toolkit.special.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.special.factorials.sf_rising_factorial.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.factorials.sf_rising_factorial.implementation"></a></span><a class="link" href="sf_rising_factorial.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/hankel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/hankel.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,42 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_hankel">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.hankel"></a><a class="link" href="hankel.html" title="Hankel Functions">Hankel Functions</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="hankel/cyl_hankel.html">Cyclic Hankel
+ Functions</a></span></dt>
+<dt><span class="section"><a href="hankel/sph_hankel.html">Spherical Hankel
+ 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/hankel/cyl_hankel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/hankel/cyl_hankel.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,153 @@
+<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.77.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_special_hankel_cyl_hankel">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.hankel.cyl_hankel"></a><a class="link" href="cyl_hankel.html" title="Cyclic Hankel Functions">Cyclic Hankel
+ Functions</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.hankel.cyl_hankel.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.cyl_hankel.synopsis"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.special.hankel.cyl_hankel.synopsis">Synopsis</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.hankel.cyl_hankel.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.cyl_hankel.description"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.special.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 <a href="http://dlmf.nist.gov/10.2#P3" target="_top">Hankel
+ functions</a> 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="../../main_overview/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="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="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.special.hankel.cyl_hankel.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.cyl_hankel.performance"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.special.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.special.hankel.cyl_hankel.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.cyl_hankel.testing"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.special.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.special.hankel.cyl_hankel.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.cyl_hankel.accuracy"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.special.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.special.hankel.cyl_hankel.h5"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.cyl_hankel.implementation"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.special.hankel.cyl_hankel.implementation">Implementation</a>
+ </h5>
+<p>
+ For <span class="emphasis"><em>x &lt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/hankel/sph_hankel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/hankel/sph_hankel.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_special_hankel_sph_hankel">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.hankel.sph_hankel"></a><a class="link" href="sph_hankel.html" title="Spherical Hankel Functions">Spherical Hankel
+ Functions</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.hankel.sph_hankel.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.sph_hankel.synopsis"></a></span><a class="link" href="sph_hankel.html#math_toolkit.special.hankel.sph_hankel.synopsis">Synopsis</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.hankel.sph_hankel.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.sph_hankel.description"></a></span><a class="link" href="sph_hankel.html#math_toolkit.special.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="../../main_overview/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="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="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.special.hankel.sph_hankel.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.sph_hankel.testing"></a></span><a class="link" href="sph_hankel.html#math_toolkit.special.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.special.hankel.sph_hankel.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.sph_hankel.accuracy"></a></span><a class="link" href="sph_hankel.html#math_toolkit.special.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.special.hankel.sph_hankel.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.hankel.sph_hankel.implementation"></a></span><a class="link" href="sph_hankel.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/inv_hyper.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_inv_hyper">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.inv_hyper"></a><a class="link" href="inv_hyper.html" title="Inverse Hyperbolic Functions">Inverse Hyperbolic Functions</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/inv_hyper/acosh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper/acosh.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,123 @@
+<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.77.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_special_inv_hyper_acosh">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.inv_hyper.acosh"></a><a class="link" href="acosh.html" title="acosh">acosh</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+</pre>
+<p>
+ Computes the reciprocal of (the restriction to the range of <code class="literal">[0;+&#8734;[</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">]-&#8734;;+1[</code> then returns the result
+ of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ The return type of this function is computed using the <a class="link" href="../../main_overview/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="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="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.special.inv_hyper.acosh.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.inv_hyper.acosh.accuracy"></a></span><a class="link" href="acosh.html#math_toolkit.special.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.special.inv_hyper.acosh.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.inv_hyper.acosh.testing"></a></span><a class="link" href="acosh.html#math_toolkit.special.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.special.inv_hyper.acosh.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.inv_hyper.acosh.implementation"></a></span><a class="link" href="acosh.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/inv_hyper/asinh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper/asinh.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,118 @@
+<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.77.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_special_inv_hyper_asinh">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.inv_hyper.asinh"></a><a class="link" href="asinh.html" title="asinh">asinh</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.inv_hyper.asinh.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.inv_hyper.asinh.accuracy"></a></span><a class="link" href="asinh.html#math_toolkit.special.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.special.inv_hyper.asinh.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.inv_hyper.asinh.testing"></a></span><a class="link" href="asinh.html#math_toolkit.special.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.special.inv_hyper.asinh.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.inv_hyper.asinh.implementation"></a></span><a class="link" href="asinh.html#math_toolkit.special.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 &gt; x &gt; &#949; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/inv_hyper/atanh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper/atanh.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,128 @@
+<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.77.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_special_inv_hyper_atanh">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.inv_hyper.atanh"></a><a class="link" href="atanh.html" title="atanh">atanh</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ If x is in the range <code class="literal">]-&#8734;;-1[</code> or in the range <code class="literal">]+1;+&#8734;[</code>
+ then returns the result of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ If x is in the range <code class="literal">[-1;-1+&#949;[</code>, then the result of -<a class="link" href="../../main_overview/error_handling.html#overflow_error">overflow_error</a> is returned, with &#949; &#160;
+denoting
+ numeric_limits&lt;T&gt;::epsilon().
+ </p>
+<p>
+ If x is in the range <code class="literal">]+1-&#949;;+1]</code>, then the result of <a class="link" href="../../main_overview/error_handling.html#overflow_error">overflow_error</a> is returned, with &#949; &#160;
+denoting
+ numeric_limits&lt;T&gt;::epsilon().
+ </p>
+<p>
+ The return type of this function is computed using the <a class="link" href="../../main_overview/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.special.inv_hyper.atanh.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.inv_hyper.atanh.accuracy"></a></span><a class="link" href="atanh.html#math_toolkit.special.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.special.inv_hyper.atanh.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.inv_hyper.atanh.testing"></a></span><a class="link" href="atanh.html#math_toolkit.special.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.special.inv_hyper.atanh.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.inv_hyper.atanh.implementation"></a></span><a class="link" href="atanh.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/inv_hyper/inv_hyper_over.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/inv_hyper/inv_hyper_over.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_special_inv_hyper_inv_hyper_over">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.inv_hyper.inv_hyper_over"></a><a class="link" href="inv_hyper_over.html" title="Inverse Hyperbolic Functions Overview">Inverse
+ Hyperbolic Functions Overview</a>
+</h4></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" alt="exp_on_r"></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" alt="im_exp_on_c"></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" alt="trigonometric"></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" alt="hyperbolic"></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;+&#8734;[</code>, and
+ therefore both have inverses. The hyperbolic cosine is one to one from
+ <code class="literal">]-&#8734;;+1[</code> onto <code class="literal">]-&#8734;;-1[</code> (and from <code class="literal">]+1;+&#8734;[</code>
+ onto <code class="literal">]-&#8734;;-1[</code>); the inverse function we use here is defined
+ on <code class="literal">]-&#8734;;-1[</code> with range <code class="literal">]-&#8734;;+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+&#949;[</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_jacobi">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.jacobi"></a><a class="link" href="jacobi.html" title="Jacobi Elliptic Functions">Jacobi Elliptic Functions</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jac_over.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jac_over.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,118 @@
+<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.77.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_special_jacobi_jac_over">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></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]</sup></a> [3]</sup></a> [4]</sup></a>.
+ </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 &#945;, where <span class="emphasis"><em>m = sin<sup>2</sup>&#945;</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 &#966;, 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; align:left;">
+<div id="ftn.math_toolkit.special.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.special.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.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_cd.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_cd.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_special_jacobi_jacobi_cd">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_cd"></a><a class="link" href="jacobi_cd.html" title="Jacobi Elliptic Function cd">Jacobi Elliptic
+ Function cd</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_cd.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_cd.synopsis"></a></span><a class="link" href="jacobi_cd.html#math_toolkit.special.jacobi.jacobi_cd.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_cd.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_cd.description"></a></span><a class="link" href="jacobi_cd.html#math_toolkit.special.jacobi.jacobi_cd.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_cn.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_cn.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,75 @@
+<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.77.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_special_jacobi_jacobi_cn">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_cn"></a><a class="link" href="jacobi_cn.html" title="Jacobi Elliptic Function cn">Jacobi Elliptic
+ Function cn</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_cn.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_cn.synopsis"></a></span><a class="link" href="jacobi_cn.html#math_toolkit.special.jacobi.jacobi_cn.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_cn.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_cn.description"></a></span><a class="link" href="jacobi_cn.html#math_toolkit.special.jacobi.jacobi_cn.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_cs.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_cs.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_special_jacobi_jacobi_cs">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_cs"></a><a class="link" href="jacobi_cs.html" title="Jacobi Elliptic Function cs">Jacobi Elliptic
+ Function cs</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_cs.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_cs.synopsis"></a></span><a class="link" href="jacobi_cs.html#math_toolkit.special.jacobi.jacobi_cs.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_cs.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_cs.description"></a></span><a class="link" href="jacobi_cs.html#math_toolkit.special.jacobi.jacobi_cs.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_dc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_dc.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_special_jacobi_jacobi_dc">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_dc"></a><a class="link" href="jacobi_dc.html" title="Jacobi Elliptic Function dc">Jacobi Elliptic
+ Function dc</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_dc.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_dc.synopsis"></a></span><a class="link" href="jacobi_dc.html#math_toolkit.special.jacobi.jacobi_dc.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_dc.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_dc.description"></a></span><a class="link" href="jacobi_dc.html#math_toolkit.special.jacobi.jacobi_dc.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_dn.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_dn.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,75 @@
+<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.77.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_special_jacobi_jacobi_dn">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_dn"></a><a class="link" href="jacobi_dn.html" title="Jacobi Elliptic Function dn">Jacobi Elliptic
+ Function dn</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_dn.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_dn.synopsis"></a></span><a class="link" href="jacobi_dn.html#math_toolkit.special.jacobi.jacobi_dn.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_dn.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_dn.description"></a></span><a class="link" href="jacobi_dn.html#math_toolkit.special.jacobi.jacobi_dn.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_ds.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_ds.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_special_jacobi_jacobi_ds">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_ds"></a><a class="link" href="jacobi_ds.html" title="Jacobi Elliptic Function ds">Jacobi Elliptic
+ Function ds</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_ds.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_ds.synopsis"></a></span><a class="link" href="jacobi_ds.html#math_toolkit.special.jacobi.jacobi_ds.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_ds.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_ds.description"></a></span><a class="link" href="jacobi_ds.html#math_toolkit.special.jacobi.jacobi_ds.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_elliptic.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_elliptic.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,295 @@
+<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.77.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_special_jacobi_jacobi_elliptic">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_elliptic.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_elliptic.synopsis"></a></span><a class="link" href="jacobi_elliptic.html#math_toolkit.special.jacobi.jacobi_elliptic.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_elliptic.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_elliptic.description"></a></span><a class="link" href="jacobi_elliptic.html#math_toolkit.special.jacobi.jacobi_elliptic.description">Description</a>
+ </h6>
+<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 &#966; 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>&#966;</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 &#945;, or a parameter
+ <span class="emphasis"><em>m</em></span>. These are related by:
+ </p>
+<p>
+ k = sin&#945;
+ </p>
+<p>
+ m = k<sup>2</sup> = sin<sup>2</sup>&#945;
+ </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 \ &#945;)
+ </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>&#945;
+ </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="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="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>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_elliptic.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_elliptic.accuracy"></a></span><a class="link" href="jacobi_elliptic.html#math_toolkit.special.jacobi.jacobi_elliptic.accuracy">Accuracy</a>
+ </h6>
+<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="../../backgrounders/relative_error.html#zero_error">effectively zero
+ error</a>. All values are relative errors in units of epsilon.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.jacobi.jacobi_elliptic.errors_rates_in_the_jacobi_elliptic_functions"></a><p class="title"><b>Table&#160;47.&#160;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 &lt; 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"><h6>
+<a name="math_toolkit.special.jacobi.jacobi_elliptic.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_elliptic.testing"></a></span><a class="link" href="jacobi_elliptic.html#math_toolkit.special.jacobi.jacobi_elliptic.testing">Testing</a>
+ </h6>
+<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>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_elliptic.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_elliptic.implementation"></a></span><a class="link" href="jacobi_elliptic.html#math_toolkit.special.jacobi.jacobi_elliptic.implementation">Implementation</a>
+ </h6>
+<p>
+ For <span class="emphasis"><em>k &gt; 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> &lt; &#949;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_nc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_nc.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_special_jacobi_jacobi_nc">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_nc"></a><a class="link" href="jacobi_nc.html" title="Jacobi Elliptic Function nc">Jacobi Elliptic
+ Function nc</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_nc.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_nc.synopsis"></a></span><a class="link" href="jacobi_nc.html#math_toolkit.special.jacobi.jacobi_nc.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_nc.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_nc.description"></a></span><a class="link" href="jacobi_nc.html#math_toolkit.special.jacobi.jacobi_nc.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_nd.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_nd.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_special_jacobi_jacobi_nd">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_nd"></a><a class="link" href="jacobi_nd.html" title="Jacobi Elliptic Function nd">Jacobi Elliptic
+ Function nd</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_nd.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_nd.synopsis"></a></span><a class="link" href="jacobi_nd.html#math_toolkit.special.jacobi.jacobi_nd.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_nd.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_nd.description"></a></span><a class="link" href="jacobi_nd.html#math_toolkit.special.jacobi.jacobi_nd.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_ns.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_ns.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_special_jacobi_jacobi_ns">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_ns"></a><a class="link" href="jacobi_ns.html" title="Jacobi Elliptic Function ns">Jacobi Elliptic
+ Function ns</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_ns.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_ns.synopsis"></a></span><a class="link" href="jacobi_ns.html#math_toolkit.special.jacobi.jacobi_ns.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_ns.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_ns.description"></a></span><a class="link" href="jacobi_ns.html#math_toolkit.special.jacobi.jacobi_ns.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_sc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_sc.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_special_jacobi_jacobi_sc">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_sc"></a><a class="link" href="jacobi_sc.html" title="Jacobi Elliptic Function sc">Jacobi Elliptic
+ Function sc</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_sc.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_sc.synopsis"></a></span><a class="link" href="jacobi_sc.html#math_toolkit.special.jacobi.jacobi_sc.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_sc.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_sc.description"></a></span><a class="link" href="jacobi_sc.html#math_toolkit.special.jacobi.jacobi_sc.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_sd.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_sd.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_special_jacobi_jacobi_sd">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_sd"></a><a class="link" href="jacobi_sd.html" title="Jacobi Elliptic Function sd">Jacobi Elliptic
+ Function sd</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_sd.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_sd.synopsis"></a></span><a class="link" href="jacobi_sd.html#math_toolkit.special.jacobi.jacobi_sd.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_sd.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_sd.description"></a></span><a class="link" href="jacobi_sd.html#math_toolkit.special.jacobi.jacobi_sd.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/jacobi/jacobi_sn.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/jacobi/jacobi_sn.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,75 @@
+<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.77.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_special_jacobi_jacobi_sn">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.jacobi.jacobi_sn"></a><a class="link" href="jacobi_sn.html" title="Jacobi Elliptic Function sn">Jacobi Elliptic
+ Function sn</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_sn.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_sn.synopsis"></a></span><a class="link" href="jacobi_sn.html#math_toolkit.special.jacobi.jacobi_sn.synopsis">Synopsis</a>
+ </h6>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+ <a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.special.jacobi.jacobi_sn.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.jacobi.jacobi_sn.description"></a></span><a class="link" href="jacobi_sn.html#math_toolkit.special.jacobi.jacobi_sn.description">Description</a>
+ </h6>
+<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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/owens_t.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/owens_t.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,222 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Special Functions">
+<link rel="prev" href="inv_hyper/atanh.html" title="atanh">
+<link rel="next" href="../utils.html" title="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_special_owens_t">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.owens_t"></a><a class="link" href="owens_t.html" title="Owen's T function">Owen's T function</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.special.owens_t.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.owens_t.synopsis"></a></span><a class="link" href="owens_t.html#math_toolkit.special.owens_t.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.owens_t.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.owens_t.description"></a></span><a class="link" href="owens_t.html#math_toolkit.special.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="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="Policies">policy
+ documentation for more details</a>.
+ </p>
+<p>
+ &#8198; &#8198; <span class="inlinemediaobject"><img src="../../../equations/owens_t.png"></span>
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../graphs/plot_owens_t.png" alt="plot_owens_t"></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
+ &gt; h and 0 &lt; Y &lt; 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 &gt; 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" alt="plot_owens_3d_xyp"></span>
+ </p>
+<p>
+ This function is used in the computation of the <a class="link" href="../dist/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="../main_overview/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) = &#189;&#960; arctan(a)</em></span>
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <span class="emphasis"><em>T(h, 1) = &#189; G(h) [1 - G(h)]</em></span>
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <span class="emphasis"><em>T(h, &#8734;) = G(|h|)</em></span>
+ </p></blockquote></div>
+<p>
+ where G(h) is the univariate normal with zero mean and unit variance integral
+ from -&#8734; to h.
+ </p>
+<h5>
+<a name="math_toolkit.special.owens_t.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.owens_t.accuracy"></a></span><a class="link" href="owens_t.html#math_toolkit.special.owens_t.accuracy">Accuracy</a>
+ </h5>
+<p>
+ Over the built-in types and range tested, errors are less than 10 * std::numeric_limits&lt;RealType&gt;::epsilon().
+ </p>
+<h5>
+<a name="math_toolkit.special.owens_t.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.owens_t.testing"></a></span><a class="link" href="owens_t.html#math_toolkit.special.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&lt;RealType&gt;::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
+ <a href="http://www.wolfram.com/products/mathematica/index.html" target="_top">Wolfram
+ Mathematica</a> and <a href="http://www.r-project.org/" target="_top">The R Project
+ for Statistical Computing</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.owens_t.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.owens_t.implementation"></a></span><a class="link" href="owens_t.html#math_toolkit.special.owens_t.implementation">Implementation</a>
+ </h5>
+<p>
+ The function was proposed and evaluated by <a href="http://projecteuclid.org/DPubS?service=UI&amp;version=1.0&amp;verb=Display&amp;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 &lt; 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 &gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/powers.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/powers.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_powers">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.powers"></a><a class="link" href="powers.html" title="Basic Functions">Basic Functions</a>
+</h3></div></div></div>
+<div class="toc"><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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/powers/cbrt.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/powers/cbrt.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,90 @@
+<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.77.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_special_powers_cbrt">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.powers.cbrt"></a><a class="link" href="cbrt.html" title="cbrt">cbrt</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="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.special.powers.cbrt.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.cbrt.accuracy"></a></span><a class="link" href="cbrt.html#math_toolkit.special.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.special.powers.cbrt.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.cbrt.testing"></a></span><a class="link" href="cbrt.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/powers/cos_pi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/powers/cos_pi.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,69 @@
+<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.77.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_special_powers_cos_pi">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.powers.cos_pi"></a><a class="link" href="cos_pi.html" title="cos_pi">cos_pi</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+ Returns the cosine of <span class="emphasis"><em>&#960;x</em></span>.
+ </p>
+<p>
+ The return type of this function is computed using the <a class="link" href="../../main_overview/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="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="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>&#960;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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/powers/ct_pow.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/powers/ct_pow.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,256 @@
+<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.77.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_special_powers_ct_pow">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></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.special.powers.ct_pow.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.ct_pow.synopsis"></a></span><a class="link" href="ct_pow.html#math_toolkit.special.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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&amp;</span> <span class="identifier">policy</span><span class="special">);</span>
+
+<span class="special">}}</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.powers.ct_pow.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.ct_pow.rationale_and_usage"></a></span><a class="link" href="ct_pow.html#math_toolkit.special.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">&lt;</span><span class="number">8</span><span class="special">&gt;(</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&lt;8&gt;(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.special.powers.ct_pow.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.ct_pow.return_type"></a></span><a class="link" href="ct_pow.html#math_toolkit.special.powers.ct_pow.return_type">Return
+ Type</a>
+ </h5>
+<p>
+ The return type of these functions is computed using the <a class="link" href="../../main_overview/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.special.powers.ct_pow.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.ct_pow.policies"></a></span><a class="link" href="ct_pow.html#math_toolkit.special.powers.ct_pow.policies">Policies</a>
+ </h5>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.powers.ct_pow.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.ct_pow.error_handling"></a></span><a class="link" href="ct_pow.html#math_toolkit.special.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="../../main_overview/error_handling.html#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="../../main_overview/error_handling.html#indeterminate_result_error">indeterminate_result_error</a>
+ occurs since the result of this operation is indeterminate. Those errors
+ follow the <a class="link" href="../../main_overview/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">&lt;-</span><span class="number">2</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;)</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">&lt;-</span><span class="number">5</span><span class="special">&gt;(</span><span class="identifier">base</span><span class="special">,</span> <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">user_error</span><span class="special">&gt;</span> <span class="special">&gt;());</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">&lt;</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">&gt;</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">&lt;-</span><span class="number">5</span><span class="special">&gt;(</span><span class="identifier">base</span><span class="special">);</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.powers.ct_pow.h5"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.ct_pow.acknowledgements"></a></span><a class="link" href="ct_pow.html#math_toolkit.special.powers.ct_pow.acknowledgements">Acknowledgements</a>
+ </h5>
+<p>
+ Bruno Lalande submitted this addition to Boost.Math.
+ </p>
+<p>
+ Thanks to Joaqu&#237;n L&#243;pez Mu&#241;oz and Scott McMurray for their help in
+improving the implementation.
+ </p>
+<h5>
+<a name="math_toolkit.special.powers.ct_pow.h6"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.ct_pow.references"></a></span><a class="link" href="ct_pow.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/powers/expm1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/powers/expm1.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,99 @@
+<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.77.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_special_powers_expm1">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.powers.expm1"></a><a class="link" href="expm1.html" title="expm1">expm1</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="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&#603;).
+ </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.special.powers.expm1.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.expm1.accuracy"></a></span><a class="link" href="expm1.html#math_toolkit.special.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.special.powers.expm1.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.expm1.testing"></a></span><a class="link" href="expm1.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/powers/hypot.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/powers/hypot.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,80 @@
+<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.77.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_special_powers_hypot">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.powers.hypot"></a><a class="link" href="hypot.html" title="hypot">hypot</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="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.special.powers.hypot.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.hypot.implementation"></a></span><a class="link" href="hypot.html#math_toolkit.special.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
+ &gt; 0</em></span> and <span class="emphasis"><em>x &gt; y</em></span> (we can permute the
+ arguments if this is not the case).
+ </p>
+<p>
+ Then if <span class="emphasis"><em>x * &#949; &#160; &gt;= 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/powers/log1p.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/powers/log1p.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,112 @@
+<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.77.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_special_powers_log1p">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.powers.log1p"></a><a class="link" href="log1p.html" title="log1p">log1p</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="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&#603;). 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.special.powers.log1p.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.log1p.accuracy"></a></span><a class="link" href="log1p.html#math_toolkit.special.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.special.powers.log1p.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.log1p.testing"></a></span><a class="link" href="log1p.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/powers/powm1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/powers/powm1.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,92 @@
+<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.77.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_special_powers_powm1">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.powers.powm1"></a><a class="link" href="powm1.html" title="powm1">powm1</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="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.special.powers.powm1.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.powm1.accuracy"></a></span><a class="link" href="powm1.html#math_toolkit.special.powers.powm1.accuracy">Accuracy</a>
+ </h5>
+<p>
+ Should have approximately 2-3 epsilon accuracy.
+ </p>
+<h5>
+<a name="math_toolkit.special.powers.powm1.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.powm1.testing"></a></span><a class="link" href="powm1.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/powers/sin_pi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/powers/sin_pi.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,69 @@
+<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.77.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_special_powers_sin_pi">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.powers.sin_pi"></a><a class="link" href="sin_pi.html" title="sin_pi">sin_pi</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+ Returns the sine of <span class="emphasis"><em>&#960;x</em></span>.
+ </p>
+<p>
+ The return type of this function is computed using the <a class="link" href="../../main_overview/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="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="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>&#960;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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/powers/sqrt1pm1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/powers/sqrt1pm1.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,95 @@
+<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.77.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_special_powers_sqrt1pm1">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.powers.sqrt1pm1"></a><a class="link" href="sqrt1pm1.html" title="sqrt1pm1">sqrt1pm1</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="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.special.powers.sqrt1pm1.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.sqrt1pm1.accuracy"></a></span><a class="link" href="sqrt1pm1.html#math_toolkit.special.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.special.powers.sqrt1pm1.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.powers.sqrt1pm1.testing"></a></span><a class="link" href="sqrt1pm1.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_beta.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_sf_beta">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.sf_beta"></a><a class="link" href="sf_beta.html" title="Beta Functions">Beta Functions</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_beta/beta_derivative.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta/beta_derivative.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,95 @@
+<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.77.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_special_sf_beta_beta_derivative">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_beta.beta_derivative.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.beta_derivative.synopsis"></a></span><a class="link" href="beta_derivative.html#math_toolkit.special.sf_beta.beta_derivative.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_beta.beta_derivative.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.beta_derivative.description"></a></span><a class="link" href="beta_derivative.html#math_toolkit.special.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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.sf_beta.beta_derivative.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.beta_derivative.accuracy"></a></span><a class="link" href="beta_derivative.html#math_toolkit.special.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.special.sf_beta.beta_derivative.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.beta_derivative.implementation"></a></span><a class="link" href="beta_derivative.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_beta/beta_function.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta/beta_function.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,320 @@
+<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.77.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_special_sf_beta_beta_function">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_beta.beta_function"></a><a class="link" href="beta_function.html" title="Beta">Beta</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_beta.beta_function.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.beta_function.synopsis"></a></span><a class="link" href="beta_function.html#math_toolkit.special.sf_beta.beta_function.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_beta.beta_function.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.beta_function.description"></a></span><a class="link" href="beta_function.html#math_toolkit.special.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="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="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="../../backgrounders/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="../../backgrounders/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="../../backgrounders/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="../../main_overview/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.special.sf_beta.beta_function.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.beta_function.accuracy"></a></span><a class="link" href="beta_function.html#math_toolkit.special.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="../../backgrounders/relative_error.html#zero_error">effectively
+ zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.sf_beta.beta_function.peak_errors_in_the_beta_function"></a><p class="title"><b>Table&#160;25.&#160;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 &lt; a,b &lt; 100
+ </p>
+ </th>
+<th>
+ <p>
+ Errors in range
+ </p>
+ <p>
+ 1e-6 &lt; a,b &lt; 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.special.sf_beta.beta_function.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.beta_function.testing"></a></span><a class="link" href="beta_function.html#math_toolkit.special.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.special.sf_beta.beta_function.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.beta_function.implementation"></a></span><a class="link" href="beta_function.html#math_toolkit.special.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="../../backgrounders/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 &gt; 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="../../backgrounders/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_beta/ibeta_function.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta/ibeta_function.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,973 @@
+<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.77.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_special_sf_beta_ibeta_function">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_beta.ibeta_function"></a><a class="link" href="ibeta_function.html" title="Incomplete Beta Functions">Incomplete
+ Beta Functions</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_beta.ibeta_function.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.ibeta_function.synopsis"></a></span><a class="link" href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_beta.ibeta_function.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.ibeta_function.description"></a></span><a class="link" href="ibeta_function.html#math_toolkit.special.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 &lt;= x &lt;= 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 &gt;= 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 &gt; 0</em></span>.
+ </p>
+<p>
+ The return type of these functions is computed using the <a class="link" href="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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.special.sf_beta.ibeta_function.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.ibeta_function.accuracy"></a></span><a class="link" href="ibeta_function.html#math_toolkit.special.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="../../backgrounders/relative_error.html#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.special.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b_x_"></a><p class="title"><b>Table&#160;26.&#160;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 &lt; a,b &lt; 10
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 1
+ </p>
+ </th>
+<th>
+ <p>
+ 0 &lt; a,b &lt; 100
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 1
+ </p>
+ </th>
+<th>
+ <p>
+ 1x10<sup>-5</sup> &lt; a,b &lt; 1x10<sup>5</sup>
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 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> &#160; Mean=203
+ </p>
+ <p>
+ (GSL Peak~3x10<sup>5</sup> &#160; Mean~2x10<sup>4</sup> &#160;)
+ </p>
+ <p>
+ (Cephes Peak~5x10<sup>5</sup> &#160; Mean~2x10<sup>4</sup> &#160;)
+ </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> &#160; Mean=3x10<sup>3</sup> &#160;
+ </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> &#160; Mean=3x10<sup>3</sup> &#160;
+ </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> &#160; Mean=1x10<sup>3</sup> &#160;
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_b_x_"></a><p class="title"><b>Table&#160;27.&#160;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 &lt; a,b &lt; 10
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 1
+ </p>
+ </th>
+<th>
+ <p>
+ 0 &lt; a,b &lt; 100
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 1
+ </p>
+ </th>
+<th>
+ <p>
+ 1x10<sup>-5</sup> &lt; a,b &lt; 1x10<sup>5</sup>
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 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> &#160; 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> &#160; Mean=3x10<sup>3</sup> &#160;
+ </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> &#160; Mean=3x10<sup>3</sup> &#160;
+ </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> &#160; Mean=1x10<sup>3</sup> &#160;
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_beta_a__b__x_"></a><p class="title"><b>Table&#160;28.&#160;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 &lt; a,b &lt; 10
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 1
+ </p>
+ </th>
+<th>
+ <p>
+ 0 &lt; a,b &lt; 100
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 1
+ </p>
+ </th>
+<th>
+ <p>
+ 1x10<sup>-5</sup> &lt; a,b &lt; 1x10<sup>5</sup>
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 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> &#160; Mean=3x10<sup>3</sup> &#160;
+ </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> &#160; Mean=3x10<sup>3</sup> &#160;
+ </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> &#160; Mean=3x10<sup>3</sup> &#160;
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.special.sf_beta.ibeta_function.errors_in_the_function_betac_a_b_x_"></a><p class="title"><b>Table&#160;29.&#160;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 &lt; a,b &lt; 10
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 1
+ </p>
+ </th>
+<th>
+ <p>
+ 0 &lt; a,b &lt; 100
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 1
+ </p>
+ </th>
+<th>
+ <p>
+ 1x10<sup>-5</sup> &lt; a,b &lt; 1x10<sup>5</sup>
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0 &lt; x &lt; 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> &#160; 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> &#160; Mean=5x10<sup>3</sup> &#160;
+ </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> &#160; Mean=5x10<sup>3</sup> &#160;
+ </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> &#160; Mean=5x10<sup>3</sup> &#160;
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.special.sf_beta.ibeta_function.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.ibeta_function.testing"></a></span><a class="link" href="ibeta_function.html#math_toolkit.special.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.special.sf_beta.ibeta_function.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.ibeta_function.implementation"></a></span><a class="link" href="ibeta_function.html#math_toolkit.special.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 &lt;&lt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_beta/ibeta_inv_function.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_beta/ibeta_inv_function.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,525 @@
+<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.77.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_special_sf_beta_ibeta_inv_function">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_beta.ibeta_inv_function.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.ibeta_inv_function.description"></a></span><a class="link" href="ibeta_inv_function.html#math_toolkit.special.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="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="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="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &gt; 0</em></span> and <span class="emphasis"><em>0 &lt;= p &lt;=
+ 1</em></span>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &gt; 0</em></span> and <span class="emphasis"><em>0 &lt;= q &lt;=
+ 1</em></span>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &gt; 0</em></span>, <span class="emphasis"><em>0 &lt; x &lt; 1</em></span>
+ and <span class="emphasis"><em>0 &lt;= p &lt;= 1</em></span>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &gt; 0</em></span>, <span class="emphasis"><em>0 &lt; x &lt; 1</em></span>
+ and <span class="emphasis"><em>0 &lt;= q &lt;= 1</em></span>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &gt; 0</em></span>, <span class="emphasis"><em>0 &lt; x &lt; 1</em></span>
+ and <span class="emphasis"><em>0 &lt;= p &lt;= 1</em></span>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &gt; 0</em></span>, <span class="emphasis"><em>0 &lt; x &lt; 1</em></span>
+ and <span class="emphasis"><em>0 &lt;= q &lt;= 1</em></span>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.sf_beta.ibeta_inv_function.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.ibeta_inv_function.accuracy"></a></span><a class="link" href="ibeta_inv_function.html#math_toolkit.special.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.special.sf_beta.ibeta_inv_function.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.ibeta_inv_function.testing"></a></span><a class="link" href="ibeta_inv_function.html#math_toolkit.special.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.special.sf_beta.ibeta_inv_function.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_ibeta_inv_and_ibetac_inv"></a></span><a class="link" href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_ibeta_inv_and_ibetac_inv">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">&gt;=</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> &lt; 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">&gt;</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 &gt; 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> &lt; 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 &gt; 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 &gt; 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 &lt; a and x &lt; 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 &lt; 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.special.sf_beta.ibeta_inv_function.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_inverses_on_the_a_and_b_parameters"></a></span><a class="link" href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_inverses_on_the_a_and_b_parameters">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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_erf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_erf.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,41 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_sf_erf">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.sf_erf"></a><a class="link" href="sf_erf.html" title="Error Functions">Error Functions</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Error Functions</span></dt>
+<dt><span class="section"><a href="sf_erf/error_inv.html">Error Function
+ Inverses</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_erf/error_function.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_erf/error_function.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,623 @@
+<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.77.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_special_sf_erf_error_function">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_erf.error_function"></a><a class="link" href="error_function.html" title="Error Functions">Error Functions</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_erf.error_function.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_erf.error_function.synopsis"></a></span><a class="link" href="error_function.html#math_toolkit.special.sf_erf.error_function.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.sf_erf.error_function.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_erf.error_function.description"></a></span><a class="link" href="error_function.html#math_toolkit.special.sf_erf.error_function.description">Description</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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.special.sf_erf.error_function.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_erf.error_function.accuracy"></a></span><a class="link" href="error_function.html#math_toolkit.special.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, HP-UX C Library
+ and Cephes libraries.
+ Unless otherwise specified any floating point type that is narrower than
+ the one shown will have <a class="link" href="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.sf_erf.error_function.errors_in_the_function_erf_z_"></a><p class="title"><b>Table&#160;30.&#160;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 &lt; 0.5
+ </p>
+ </th>
+<th>
+ <p>
+ 0.5 &lt; z &lt; 8
+ </p>
+ </th>
+<th>
+ <p>
+ z &gt; 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.special.sf_erf.error_function.errors_in_the_function_erfc_z_"></a><p class="title"><b>Table&#160;31.&#160;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 &lt; 0.5
+ </p>
+ </th>
+<th>
+ <p>
+ 0.5 &lt; z &lt; 8
+ </p>
+ </th>
+<th>
+ <p>
+ z &gt; 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.special.sf_erf.error_function.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_erf.error_function.testing"></a></span><a class="link" href="error_function.html#math_toolkit.special.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.special.sf_erf.error_function.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_erf.error_function.implementation"></a></span><a class="link" href="error_function.html#math_toolkit.special.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 &lt; -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 &lt;= -z &lt; 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="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.rational_approximations_used">devised
+ by JM</a> are used.
+ </p>
+<p>
+ For <code class="computeroutput"><span class="identifier">z</span> <span class="special">&lt;=</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">&gt;</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">&gt;</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, +&#8734;] 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_erf/error_inv.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_erf/error_inv.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,197 @@
+<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.77.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_special_sf_erf_error_inv">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_erf.error_inv"></a><a class="link" href="error_inv.html" title="Error Function Inverses">Error Function
+ Inverses</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_erf.error_inv.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_erf.error_inv.synopsis"></a></span><a class="link" href="error_inv.html#math_toolkit.special.sf_erf.error_inv.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.sf_erf.error_inv.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_erf.error_inv.description"></a></span><a class="link" href="error_inv.html#math_toolkit.special.sf_erf.error_inv.description">Description</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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.special.sf_erf.error_inv.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_erf.error_inv.accuracy"></a></span><a class="link" href="error_inv.html#math_toolkit.special.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.special.sf_erf.error_inv.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_erf.error_inv.testing"></a></span><a class="link" href="error_inv.html#math_toolkit.special.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.special.sf_erf.error_inv.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_erf.error_inv.implementation"></a></span><a class="link" href="error_inv.html#math_toolkit.special.sf_erf.error_inv.implementation">Implementation</a>
+ </h5>
+<p>
+ These functions use a rational approximation <a class="link" href="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.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 &lt; 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 &lt; 0.5 things get trickier, over the interval <span class="emphasis"><em>0.5 &gt;
+ q &gt; 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 &lt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_gamma.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,49 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Special Functions">
+<link rel="prev" href="../special.html" title="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_special_sf_gamma">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.sf_gamma"></a><a class="link" href="sf_gamma.html" title="Gamma Functions">Gamma Functions</a>
+</h3></div></div></div>
+<div class="toc"><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"><a href="sf_gamma/gamma_ratios.html">Ratios
+ of Gamma Functions</a></span></dt>
+<dt><span class="section"><a href="sf_gamma/igamma.html">Incomplete Gamma
+ Functions</a></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_gamma/digamma.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/digamma.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,380 @@
+<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.77.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_special_sf_gamma_digamma">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_gamma.digamma"></a><a class="link" href="digamma.html" title="Digamma">Digamma</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_gamma.digamma.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.digamma.synopsis"></a></span><a class="link" href="digamma.html#math_toolkit.special.sf_gamma.digamma.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_gamma.digamma.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.digamma.description"></a></span><a class="link" href="digamma.html#math_toolkit.special.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="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="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="../../main_overview/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.special.sf_gamma.digamma.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.digamma.accuracy"></a></span><a class="link" href="digamma.html#math_toolkit.special.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="../../backgrounders/relative_error.html#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.special.sf_gamma.digamma.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.digamma.testing"></a></span><a class="link" href="digamma.html#math_toolkit.special.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="../../backgrounders/lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>
+ see below).
+ </p>
+<h5>
+<a name="math_toolkit.special.sf_gamma.digamma.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.digamma.implementation"></a></span><a class="link" href="digamma.html#math_toolkit.special.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="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.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 &gt; 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="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.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="../../backgrounders/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 &gt;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="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_gamma/gamma_derivatives.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/gamma_derivatives.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,100 @@
+<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.77.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_special_sf_gamma_gamma_derivatives">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_gamma.gamma_derivatives.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.gamma_derivatives.synopsis"></a></span><a class="link" href="gamma_derivatives.html#math_toolkit.special.sf_gamma.gamma_derivatives.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_gamma.gamma_derivatives.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.gamma_derivatives.description"></a></span><a class="link" href="gamma_derivatives.html#math_toolkit.special.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="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="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="../../main_overview/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.special.sf_gamma.gamma_derivatives.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.gamma_derivatives.accuracy"></a></span><a class="link" href="gamma_derivatives.html#math_toolkit.special.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.special.sf_gamma.gamma_derivatives.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.gamma_derivatives.implementation"></a></span><a class="link" href="gamma_derivatives.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_gamma/gamma_ratios.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/gamma_ratios.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,349 @@
+<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.77.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_special_sf_gamma_gamma_ratios">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_gamma.gamma_ratios"></a><a class="link" href="gamma_ratios.html" title="Ratios of Gamma Functions">Ratios
+ of Gamma Functions</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_gamma.gamma_ratios.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.gamma_ratios.description"></a></span><a class="link" href="gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.description">Description</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="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="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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="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="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="../../main_overview/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.special.sf_gamma.gamma_ratios.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.gamma_ratios.accuracy"></a></span><a class="link" href="gamma_ratios.html#math_toolkit.special.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="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_delta_ratio_a__delta_"></a><p class="title"><b>Table&#160;19.&#160;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 &lt; a &lt; 80
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ delta &lt; 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.special.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ratio_a__b_"></a><p class="title"><b>Table&#160;20.&#160;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 &lt; a,b &lt; 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.special.sf_gamma.gamma_ratios.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.gamma_ratios.testing"></a></span><a class="link" href="gamma_ratios.html#math_toolkit.special.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 &#915;(x)/&#915;(y).
+ </p>
+<h5>
+<a name="math_toolkit.special.sf_gamma.gamma_ratios.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.gamma_ratios.implementation"></a></span><a class="link" href="gamma_ratios.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_gamma/igamma.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/igamma.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,1041 @@
+<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.77.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_special_sf_gamma_igamma">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_gamma.igamma"></a><a class="link" href="igamma.html" title="Incomplete Gamma Functions">Incomplete Gamma
+ Functions</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_gamma.igamma.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma.synopsis"></a></span><a class="link" href="igamma.html#math_toolkit.special.sf_gamma.igamma.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_gamma.igamma.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma.description"></a></span><a class="link" href="igamma.html#math_toolkit.special.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, &#915;(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 &gt; 0</em></span> and <span class="emphasis"><em>z
+ &gt;= 0</em></span>, otherwise they return the result of <a class="link" href="../../main_overview/error_handling.html#domain_error">domain_error</a>.
+ </p>
+<p>
+ The final <a class="link" href="../../policy.html" title="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="Policies">policy documentation for more details</a>.
+ </p>
+<p>
+ The return type of these functions is computed using the <a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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.special.sf_gamma.igamma.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma.accuracy"></a></span><a class="link" href="igamma.html#math_toolkit.special.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="../../backgrounders/relative_error.html#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.special.sf_gamma.igamma.errors_in_the_function_gamma_p_a_z_"></a><p class="title"><b>Table&#160;21.&#160;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 &lt; a &lt; 100
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0.01*a &lt; z &lt; 100*a
+ </p>
+ </th>
+<th>
+ <p>
+ 1x10<sup>-12</sup> &lt; a &lt; 5x10<sup>-2</sup>
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0.01*a &lt; z &lt; 100*a
+ </p>
+ </th>
+<th>
+ <p>
+ 1e-6 &lt; a &lt; 1.7x10<sup>6</sup>
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 1 &lt; z &lt; 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.special.sf_gamma.igamma.errors_in_the_function_gamma_q_a_z_"></a><p class="title"><b>Table&#160;22.&#160;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 &lt; a &lt; 100
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0.01*a &lt; z &lt; 100*a
+ </p>
+ </th>
+<th>
+ <p>
+ 1x10<sup>-12</sup> &lt; a &lt; 5x10<sup>-2</sup>
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0.01*a &lt; z &lt; 100*a
+ </p>
+ </th>
+<th>
+ <p>
+ 1x10<sup>-6</sup> &lt; a &lt; 1.7x10<sup>6</sup>
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 1 &lt; z &lt; 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.special.sf_gamma.igamma.errors_in_the_function_tgamma_lower_a_z_"></a><p class="title"><b>Table&#160;23.&#160;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 &lt; a &lt; 100
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0.01*a &lt; z &lt; 100*a
+ </p>
+ </th>
+<th>
+ <p>
+ 1x10<sup>-12</sup> &lt; a &lt; 5x10<sup>-2</sup>
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0.01*a &lt; z &lt; 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.special.sf_gamma.igamma.errors_in_the_function_tgamma_a_z_"></a><p class="title"><b>Table&#160;24.&#160;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 &lt; a &lt; 100
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0.01*a &lt; z &lt; 100*a
+ </p>
+ </th>
+<th>
+ <p>
+ 1x10<sup>-12</sup> &lt; a &lt; 5x10<sup>-2</sup>
+ </p>
+ <p>
+ and
+ </p>
+ <p>
+ 0.01*a &lt; z &lt; 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.special.sf_gamma.igamma.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma.testing"></a></span><a class="link" href="igamma.html#math_toolkit.special.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="../../backgrounders/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.special.sf_gamma.igamma.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma.implementation"></a></span><a class="link" href="igamma.html#math_toolkit.special.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 &#915;(a) or 1 when <span class="emphasis"><em>x
+ - (1</em></span>(3x)) &gt; a and x &gt; 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 &gt; 1.1)</em></span> or by subtraction of the lower integral
+ from either &#915;(a) or 1 when <span class="emphasis"><em>x - (1</em></span>(3x)) &lt; a/.
+ </p>
+<p>
+ For <span class="emphasis"><em>x &lt; 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="../../backgrounders/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 &lt; 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 &lt; a</em></span> as the crossover criterion for <span class="emphasis"><em>0.5 &lt;
+ x &lt;= 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 &lt;=
+ 0.5</em></span> then using <span class="emphasis"><em>-0.4 / log(x) &lt; 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 &lt;=
+ a &lt; 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 &lt;= a &lt; 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">&gt;</span> <span class="number">20</span><span class="special">)</span> <span class="special">&amp;&amp;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&lt;</span> <span class="number">200</span><span class="special">)</span> <span class="special">&amp;&amp;</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">&lt;</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">&gt;</span> <span class="number">200</span><span class="special">)</span> <span class="special">&amp;&amp;</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">&lt;</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="../../backgrounders/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.special.sf_gamma.igamma.h5"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma.references"></a></span><a class="link" href="igamma.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_gamma/igamma_inv.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/igamma_inv.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,251 @@
+<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.77.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_special_sf_gamma_igamma_inv">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_gamma.igamma_inv"></a><a class="link" href="igamma_inv.html" title="Incomplete Gamma Function Inverses">Incomplete
+ Gamma Function Inverses</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_gamma.igamma_inv.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma_inv.synopsis"></a></span><a class="link" href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_gamma.igamma_inv.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma_inv.description"></a></span><a class="link" href="igamma_inv.html#math_toolkit.special.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="../../main_overview/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="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="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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &gt; 0</em></span> and <span class="emphasis"><em>1 &gt;= p,q &gt;=
+ 0</em></span>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &gt; 0</em></span> and <span class="emphasis"><em>1 &gt;= p,q &gt;=
+ 0</em></span>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &gt; 0</em></span> and <span class="emphasis"><em>1 &gt;= p,q &gt;=
+ 0</em></span>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &gt; 0</em></span> and <span class="emphasis"><em>1 &gt;= p,q &gt;=
+ 0</em></span>.
+ </p>
+<h5>
+<a name="math_toolkit.special.sf_gamma.igamma_inv.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma_inv.accuracy"></a></span><a class="link" href="igamma_inv.html#math_toolkit.special.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.special.sf_gamma.igamma_inv.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma_inv.testing"></a></span><a class="link" href="igamma_inv.html#math_toolkit.special.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.special.sf_gamma.igamma_inv.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.igamma_inv.implementation"></a></span><a class="link" href="igamma_inv.html#math_toolkit.special.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&amp;coll=portal&amp;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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_gamma/lgamma.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/lgamma.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,473 @@
+<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.77.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_special_sf_gamma_lgamma">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_gamma.lgamma"></a><a class="link" href="lgamma.html" title="Log Gamma">Log Gamma</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_gamma.lgamma.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.lgamma.synopsis"></a></span><a class="link" href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_gamma.lgamma.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.lgamma.description"></a></span><a class="link" href="lgamma.html#math_toolkit.special.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="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="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="../../backgrounders/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="../../backgrounders/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="../../backgrounders/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="../../main_overview/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.special.sf_gamma.lgamma.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.lgamma.accuracy"></a></span><a class="link" href="lgamma.html#math_toolkit.special.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, HP-UX C Library
+ and Cephes libraries.
+ Unless otherwise specified any floating point type that is narrower than
+ the one shown will have <a class="link" href="../../backgrounders/relative_error.html#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.special.sf_gamma.lgamma.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.lgamma.testing"></a></span><a class="link" href="lgamma.html#math_toolkit.special.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.special.sf_gamma.lgamma.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.lgamma.implementation"></a></span><a class="link" href="lgamma.html#math_toolkit.special.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="../../backgrounders/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="../../backgrounders/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> &#160; 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 &lt; 0</em></span>.
+ </p>
+<p>
+ When z is very near 1 or 2, then the logarithmic version of the <a class="link" href="../../backgrounders/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="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.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 &gt; 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 &lt; 1 the recurrence relation can be used to move to z &gt;
+ 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="../../backgrounders/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="../../backgrounders/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 -&gt; 1</em></span>:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../equations/lgamm5.png"></span>
+ </p>
+<p>
+ The C<sub>k</sub> &#160; terms in the above are the same as in the <a class="link" href="../../backgrounders/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_gamma/tgamma.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_gamma/tgamma.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,460 @@
+<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.77.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_special_sf_gamma_tgamma">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_gamma.tgamma"></a><a class="link" href="tgamma.html" title="Gamma">Gamma</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_gamma.tgamma.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.tgamma.synopsis"></a></span><a class="link" href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_gamma.tgamma.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.tgamma.description"></a></span><a class="link" href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.description">Description</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="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="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="../../backgrounders/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="../../backgrounders/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="../../backgrounders/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="../../main_overview/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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../backgrounders/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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.sf_gamma.tgamma.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.tgamma.accuracy"></a></span><a class="link" href="tgamma.html#math_toolkit.special.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, HP-UX C Library
+ and Cephes libraries.
+ Unless otherwise specified any floating point type that is narrower than
+ the one shown will have <a class="link" href="../../backgrounders/relative_error.html#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.special.sf_gamma.tgamma.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.tgamma.testing"></a></span><a class="link" href="tgamma.html#math_toolkit.special.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.special.sf_gamma.tgamma.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_gamma.tgamma.implementation"></a></span><a class="link" href="tgamma.html#math_toolkit.special.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="../../backgrounders/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 &lt; z &lt; 1 then recursion is used to shift to
+ z &gt; 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 &lt; -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 &#960; &#160; to
+ ensure that the result in is the range [0, &#960;/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="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.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">&lt;</span> <span class="identifier">dz</span> <span class="special">&lt;</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">&lt;</span> <span class="identifier">dz</span> <span class="special">&lt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_poly.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_sf_poly">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.sf_poly"></a><a class="link" href="sf_poly.html" title="Polynomials">Polynomials</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_poly/hermite.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly/hermite.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,275 @@
+<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.77.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_special_sf_poly_hermite">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_poly.hermite"></a><a class="link" href="hermite.html" title="Hermite Polynomials">Hermite Polynomials</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_poly.hermite.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.hermite.synopsis"></a></span><a class="link" href="hermite.html#math_toolkit.special.sf_poly.hermite.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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.special.sf_poly.hermite.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.hermite.description"></a></span><a class="link" href="hermite.html#math_toolkit.special.sf_poly.hermite.description">Description</a>
+ </h5>
+<p>
+ The return type of these functions is computed using the <a class="link" href="../../main_overview/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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="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="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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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">&lt;</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.special.sf_poly.hermite.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.hermite.accuracy"></a></span><a class="link" href="hermite.html#math_toolkit.special.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="../../backgrounders/relative_error.html#zero_error">effectively
+ zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.sf_poly.hermite.peak_errors_in_the_hermite_polynomial"></a><p class="title"><b>Table&#160;37.&#160;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 &lt; l &lt; 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.special.sf_poly.hermite.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.hermite.testing"></a></span><a class="link" href="hermite.html#math_toolkit.special.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.special.sf_poly.hermite.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.hermite.implementation"></a></span><a class="link" href="hermite.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_poly/laguerre.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly/laguerre.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,449 @@
+<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.77.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_special_sf_poly_laguerre">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_poly.laguerre"></a><a class="link" href="laguerre.html" title="Laguerre (and Associated) Polynomials">Laguerre (and
+ Associated) Polynomials</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_poly.laguerre.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.laguerre.synopsis"></a></span><a class="link" href="laguerre.html#math_toolkit.special.sf_poly.laguerre.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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.special.sf_poly.laguerre.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.laguerre.description"></a></span><a class="link" href="laguerre.html#math_toolkit.special.sf_poly.laguerre.description">Description</a>
+ </h5>
+<p>
+ The return type of these functions is computed using the <a class="link" href="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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">&lt;</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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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">&lt;</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.special.sf_poly.laguerre.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.laguerre.accuracy"></a></span><a class="link" href="laguerre.html#math_toolkit.special.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="../../backgrounders/relative_error.html#zero_error">effectively
+ zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.sf_poly.laguerre.peak_errors_in_the_laguerre_polynomial"></a><p class="title"><b>Table&#160;35.&#160;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 &lt; l &lt; 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.special.sf_poly.laguerre.peak_errors_in_the_associated_laguerre_polynomial"></a><p class="title"><b>Table&#160;36.&#160;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 &lt; l &lt; 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.special.sf_poly.laguerre.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.laguerre.testing"></a></span><a class="link" href="laguerre.html#math_toolkit.special.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.special.sf_poly.laguerre.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.laguerre.implementation"></a></span><a class="link" href="laguerre.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_poly/legendre.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly/legendre.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,703 @@
+<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.77.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_special_sf_poly_legendre">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_poly.legendre"></a><a class="link" href="legendre.html" title="Legendre (and Associated) Polynomials">Legendre (and
+ Associated) Polynomials</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_poly.legendre.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.legendre.synopsis"></a></span><a class="link" href="legendre.html#math_toolkit.special.sf_poly.legendre.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.sf_poly.legendre.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.legendre.description"></a></span><a class="link" href="legendre.html#math_toolkit.special.sf_poly.legendre.description">Description</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &lt;= x &lt;= 1, otherwise returns the result of <a class="link" href="../../main_overview/error_handling.html#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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &lt;= x &lt;= 1, otherwise returns the result of <a class="link" href="../../main_overview/error_handling.html#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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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 &lt;= x &lt;= 1, otherwise <a class="link" href="../../main_overview/error_handling.html#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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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">&lt;</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">&lt;</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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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">&lt;</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">&lt;</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.special.sf_poly.legendre.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.legendre.accuracy"></a></span><a class="link" href="legendre.html#math_toolkit.special.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="../../backgrounders/relative_error.html#zero_error">effectively
+ zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.sf_poly.legendre.peak_errors_in_the_legendre_p_function"></a><p class="title"><b>Table&#160;32.&#160;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 &lt; l &lt; 20
+ </p>
+ </th>
+<th>
+ <p>
+ Errors in range
+ </p>
+ <p>
+ 20 &lt; l &lt; 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.special.sf_poly.legendre.peak_errors_in_the_associated_legendre_p_function"></a><p class="title"><b>Table&#160;33.&#160;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 &lt; l &lt; 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.special.sf_poly.legendre.peak_errors_in_the_legendre_q_function"></a><p class="title"><b>Table&#160;34.&#160;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 &lt; l &lt; 20
+ </p>
+ </th>
+<th>
+ <p>
+ Errors in range
+ </p>
+ <p>
+ 20 &lt; l &lt; 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.special.sf_poly.legendre.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.legendre.testing"></a></span><a class="link" href="legendre.html#math_toolkit.special.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.special.sf_poly.legendre.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.legendre.implementation"></a></span><a class="link" href="legendre.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sf_poly/sph_harm.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sf_poly/sph_harm.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,302 @@
+<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.77.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_special_sf_poly_sph_harm">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sf_poly.sph_harm"></a><a class="link" href="sph_harm.html" title="Spherical Harmonics">Spherical Harmonics</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.sf_poly.sph_harm.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.sph_harm.synopsis"></a></span><a class="link" href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.special.sf_poly.sph_harm.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.sph_harm.description"></a></span><a class="link" href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.description">Description</a>
+ </h5>
+<p>
+ The return type of these functions is computed using the <a class="link" href="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">&gt;</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="Policies">Policy</a><span class="special">&amp;);</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:
+ &#952; &#160; is taken as the polar (colatitudinal) coordinate with &#952; &#160; in [0, &#960;], and &#966; &#160; as
+ the azimuthal (longitudinal) coordinate with &#966; &#160; in [0,2&#960;). 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 &gt; n
+ </p>
+<p>
+ For &#952; &#160; outside [0, &#960;] and &#966; &#160; outside [0, 2&#960;] this implementation follows the
+ convention used by Mathematica: the function is periodic with period
+ &#960; &#160; in &#952; &#160; and 2&#960; &#160; in &#966;. Please note that this is not the behaviour one would get
+ from a casual application of the function's definition. Cautious users
+ should keep &#952; &#160; and &#966; &#160; to the range [0, &#960;] and [0, 2&#960;] 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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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">&lt;</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">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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.special.sf_poly.sph_harm.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.sph_harm.accuracy"></a></span><a class="link" href="sph_harm.html#math_toolkit.special.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="../../backgrounders/relative_error.html#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.special.sf_poly.sph_harm.peak_errors_in_the_sperical_harmonic_functions"></a><p class="title"><b>Table&#160;38.&#160;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 &lt; l &lt; 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.special.sf_poly.sph_harm.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.sph_harm.testing"></a></span><a class="link" href="sph_harm.html#math_toolkit.special.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.special.sf_poly.sph_harm.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.sf_poly.sph_harm.implementation"></a></span><a class="link" href="sph_harm.html#math_toolkit.special.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sinc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sinc.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_sinc">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.sinc"></a><a class="link" href="sinc.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions">Sinus Cardinal and Hyperbolic
+ Sinus Cardinal Functions</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sinc/sinc_overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sinc/sinc_overview.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_special_sinc_sinc_overview">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.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>
+</h4></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
+ &gt; 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 &gt; 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" alt="sinc_pi_and_sinhc_pi_on_r"></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sinc/sinc_pi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sinc/sinc_pi.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,72 @@
+<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.77.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_special_sinc_sinc_pi">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sinc.sinc_pi"></a><a class="link" href="sinc_pi.html" title="sinc_pi">sinc_pi</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span><span class="special">&gt;</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+<span class="identifier">U</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sinc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span><span class="special">&gt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">U</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sinc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/sinc/sinhc_pi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/sinc/sinhc_pi.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,76 @@
+<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.77.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_special_sinc_sinhc_pi">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.sinc.sinhc_pi"></a><a class="link" href="sinhc_pi.html" title="sinhc_pi">sinhc_pi</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span><span class="special">&gt;</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+<span class="identifier">U</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sinhc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span><span class="special">&gt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">U</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sinhc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/zetas.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/zetas.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="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_special_zetas">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.special.zetas"></a><a class="link" href="zetas.html" title="Zeta Functions">Zeta Functions</a>
+</h3></div></div></div>
+<div class="toc"><dl><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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/special/zetas/zeta.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/special/zetas/zeta.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,305 @@
+<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.77.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_special_zetas_zeta">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.special.zetas.zeta"></a><a class="link" href="zeta.html" title="Riemann Zeta Function">Riemann Zeta Function</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.special.zetas.zeta.h0"></a>
+ <span class="phrase"><a name="math_toolkit.special.zetas.zeta.synopsis"></a></span><a class="link" href="zeta.html#math_toolkit.special.zetas.zeta.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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="../../main_overview/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="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="Policies">policy documentation for more details</a>.
+ </p>
+<h5>
+<a name="math_toolkit.special.zetas.zeta.h1"></a>
+ <span class="phrase"><a name="math_toolkit.special.zetas.zeta.description"></a></span><a class="link" href="zeta.html#math_toolkit.special.zetas.zeta.description">Description</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<a class="link" href="../../main_overview/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="Policies">Policy</a><span class="special">&amp;);</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.special.zetas.zeta.h2"></a>
+ <span class="phrase"><a name="math_toolkit.special.zetas.zeta.accuracy"></a></span><a class="link" href="zeta.html#math_toolkit.special.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="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
+ </p>
+<div class="table">
+<a name="math_toolkit.special.zetas.zeta.errors_in_the_function_zeta_z_"></a><p class="title"><b>Table&#160;48.&#160;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 &gt; 0
+ </p>
+ </th>
+<th>
+ <p>
+ z &lt; 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.special.zetas.zeta.h3"></a>
+ <span class="phrase"><a name="math_toolkit.special.zetas.zeta.testing"></a></span><a class="link" href="zeta.html#math_toolkit.special.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.special.zetas.zeta.h4"></a>
+ <span class="phrase"><a name="math_toolkit.special.zetas.zeta.implementation"></a></span><a class="link" href="zeta.html#math_toolkit.special.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="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.rational_approximations_used">devised
+ by JM</a> are used.
+ </p>
+<p>
+ For 0 &lt; z &lt; 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 &lt; z &lt; 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 &gt; 4 the approximating form is:
+ </p>
+<p>
+ &#950;(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: &#949;/R(0). This saves us quite a few digits when dealing with large z,
+ especially when &#949; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/math_toolkit/status.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/status.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,41 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Library Status</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="backgrounders/refs.html" title="References">
+<link rel="next" href="status/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="backgrounders/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="status/history1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_status">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.status"></a><a class="link" href="status.html" title="Library Status">Library Status</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="status/history1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/status/credits.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/status/credits.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../status.html" title="Library Status">
+<link rel="prev" href="issues.html" title="Known Issues, and TODO List">
+<link rel="next" href="../indexes.html" title="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_status_credits">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.status.credits"></a><a class="link" href="credits.html" title="Credits and Acknowledgements">Credits and Acknowledgements</a>
+</h3></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&#229;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
+ &amp; 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&#229;kan Ard&#246;, Boris Gubenko, John Maddock, Markus Sch&#246;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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/status/history1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/status/history1.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,627 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../status.html" title="Library Status">
+<link rel="prev" href="../status.html" title="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_status_history1">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.status.history1"></a><a class="link" href="history1.html" title="History and What's New">History and What's New</a>
+</h3></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.status.history1.h0"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_54"></a></span><a class="link" href="history1.html#math_toolkit.status.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="../special/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.status.history1.h1"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_53"></a></span><a class="link" href="history1.html#math_toolkit.status.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="../special/bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+ and <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>/<a class="link" href="../special/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.status.history1.h2"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_52"></a></span><a class="link" href="history1.html#math_toolkit.status.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="../special/airy.html" title="Airy Functions">Airy functions</a>
+ and <a class="link" href="../special/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 &lt; 0</em></span> and &#957; 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 &#957; and/or large non-centrality
+ &#948;
+by switching to use the Students t distribution (or Normal distribution
+ for infinite degrees of freedom) centered at delta, when &#948; / (4 * &#957;) &lt;
+ 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.status.history1.h3"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_51"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h4"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_50"></a></span><a class="link" href="history1.html#math_toolkit.status.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="../special/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="../special/hankel/cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_1</a>,
+ <a class="link" href="../special/hankel/cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_2</a>,
+ <a class="link" href="../special/hankel/sph_hankel.html" title="Spherical Hankel Functions">sph_hankel_1</a>
+ and <a class="link" href="../special/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&#960;) to yield a NaN.
+ </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.status.history1.h5"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_49"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h6"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_48"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h7"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_47"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h8"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_46_1"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h9"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_46_0"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h10"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_45_0"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h11"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_44_0"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h12"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_41_0"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h13"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_40_0"></a></span><a class="link" href="history1.html#math_toolkit.status.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="../backgrounders/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 &#957; =
+ 0.5, also effects the non-central Chi Square Distribution when &#957; = 3, see
+ bug report #2877.
+ </li>
+<li class="listitem">
+ Fixed minor bugs #2873.
+ </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.status.history1.h14"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_38_0"></a></span><a class="link" href="history1.html#math_toolkit.status.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&#229;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.status.history1.h15"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_37_0"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h16"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_36_0"></a></span><a class="link" href="history1.html#math_toolkit.status.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.status.history1.h17"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.boost_1_35_0__post_review_first_official_release"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_35_0__post_review_first_official_release">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="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="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.status.history1.h18"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.milestone_4__second_review_candidate__1st_march_2007_"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.milestone_4__second_review_candidate__1st_march_2007_">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.status.history1.h19"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.milestone_3__first_review_candidate__31st_dec_2006_"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.milestone_3__first_review_candidate__31st_dec_2006_">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.status.history1.h20"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.milestone_2__released_september_10th_2006"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.milestone_2__released_september_10th_2006">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.status.history1.h21"></a>
+ <span class="phrase"><a name="math_toolkit.status.history1.milestone_1__released_march_31st_2006"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.milestone_1__released_march_31st_2006">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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/status/issues.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/status/issues.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,1251 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../status.html" title="Library Status">
+<link rel="prev" href="history1.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.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_status_issues">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.status.issues"></a><a class="link" href="issues.html" title="Known Issues, and TODO List">Known Issues, and TODO List</a>
+</h3></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.status.issues.h0"></a>
+ <span class="phrase"><a name="math_toolkit.status.issues.derivatives_of_bessel_functions__and_their_zeros_"></a></span><a class="link" href="issues.html#math_toolkit.status.issues.derivatives_of_bessel_functions__and_their_zeros_">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.status.issues.h1"></a>
+ <span class="phrase"><a name="math_toolkit.status.issues.tgamma"></a></span><a class="link" href="issues.html#math_toolkit.status.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="../backgrounders/lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>
+ be optimized any further? (low priority)
+ </li></ul></div>
+<h5>
+<a name="math_toolkit.status.issues.h2"></a>
+ <span class="phrase"><a name="math_toolkit.status.issues.incomplete_beta"></a></span><a class="link" href="issues.html#math_toolkit.status.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.status.issues.h3"></a>
+ <span class="phrase"><a name="math_toolkit.status.issues.inverse_gamma"></a></span><a class="link" href="issues.html#math_toolkit.status.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.status.issues.h4"></a>
+ <span class="phrase"><a name="math_toolkit.status.issues.polynomials"></a></span><a class="link" href="issues.html#math_toolkit.status.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.status.issues.h5"></a>
+ <span class="phrase"><a name="math_toolkit.status.issues.elliptic_integrals"></a></span><a class="link" href="issues.html#math_toolkit.status.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">
+ <p>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:</p>
+ <p>R<sub>F</sub>(ka,
+ kb, kc) = k<sup>-1/2</sup> R<sub>F</sub>(a, b, c)</p>
+ <p>and</p>
+ <p>R<sub>J</sub>(ka, kb, kc, kr) = k<sup>-3/2</sup> R<sub>J</sub>(a, b, c, r)</p>
+ <p>could
+ be used to sidestep trouble here: provided the problem domains can be
+ accurately identified. (Medium Priority).</p>
+ </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(&#966;, k), Z(&#946;, k), &#923;<sub>0</sub>(&#946;, 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="../special/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.status.issues.h6"></a>
+ <span class="phrase"><a name="math_toolkit.status.issues.owen_s_t_function"></a></span><a class="link" href="issues.html#math_toolkit.status.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.status.issues.h7"></a>
+ <span class="phrase"><a name="math_toolkit.status.issues.jocobi_elliptic_functions"></a></span><a class="link" href="issues.html#math_toolkit.status.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.status.issues.h8"></a>
+ <span class="phrase"><a name="math_toolkit.status.issues.statistical_distributions"></a></span><a class="link" href="issues.html#math_toolkit.status.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.status.issues.h9"></a>
+ <span class="phrase"><a name="math_toolkit.status.issues.feature_requests"></a></span><a class="link" href="issues.html#math_toolkit.status.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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="../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/toolkit.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,41 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Internals and Internal Details</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="gcd_lcm/credits.html" title="Credits">
+<link rel="next" href="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="gcd_lcm/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="toolkit/internals_overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_toolkit">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.toolkit"></a><a class="link" href="toolkit.html" title="Internals and Internal Details">Internals and Internal Details</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Overview</span></dt>
+<dt><span class="section">Utilities & internals</span></dt>
+<dt><span class="section">Testing and Development</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="toolkit/internals_overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Utilities &amp; internals</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../toolkit.html" title="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_toolkit_internals1">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.toolkit.internals1"></a><a class="link" href="internals1.html" title="Utilities &amp; internals">Utilities &amp; internals</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="internals1/series_evaluation.html">Series
+ Evaluation</a></span></dt>
+<dt><span class="section"><a href="internals1/cf.html">Continued Fraction
+ Evaluation</a></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 &amp; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals1/cf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/cf.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,277 @@
+<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.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities &amp; 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_toolkit_internals1_cf">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.toolkit.internals1.cf"></a><a class="link" href="cf.html" title="Continued Fraction Evaluation">Continued Fraction
+ Evaluation</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.toolkit.internals1.cf.h0"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.cf.synopsis"></a></span><a class="link" href="cf.html#math_toolkit.toolkit.internals1.cf.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">tools</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special">&lt;</span><span class="identifier">Gen</span><span class="special">&gt;::</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">&amp;</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_terms</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special">&lt;</span><span class="identifier">Gen</span><span class="special">&gt;::</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">&amp;</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</span> <span class="identifier">tolerance</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special">&lt;</span><span class="identifier">Gen</span><span class="special">&gt;::</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">&amp;</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_terms</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special">&lt;</span><span class="identifier">Gen</span><span class="special">&gt;::</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">&amp;</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special">&lt;</span><span class="identifier">Gen</span><span class="special">&gt;::</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">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special">&lt;</span><span class="identifier">Gen</span><span class="special">&gt;::</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">&amp;</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">&amp;</span> <span class="identifier">max_terms</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special">&lt;</span><span class="identifier">Gen</span><span class="special">&gt;::</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">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special">&lt;</span><span class="identifier">Gen</span><span class="special">&gt;::</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">&amp;</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">&amp;</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.toolkit.internals1.cf.h1"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.cf.description"></a></span><a class="link" href="cf.html#math_toolkit.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&lt;&gt; 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.toolkit.internals1.cf.h2"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.cf.implementation"></a></span><a class="link" href="cf.html#math_toolkit.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.toolkit.internals1.cf.h3"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.cf.examples"></a></span><a class="link" href="cf.html#math_toolkit.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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(),</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals1/minima.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/minima.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,119 @@
+<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.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities &amp; 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_toolkit_internals1_minima">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.toolkit.internals1.minima"></a><a class="link" href="minima.html" title="Locating Function Minima: Brent's algorithm">Locating Function
+ Minima: Brent's algorithm</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.toolkit.internals1.minima.h0"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.minima.synopsis"></a></span><a class="link" href="minima.html#math_toolkit.toolkit.internals1.minima.synopsis">synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+</pre>
+<h5>
+<a name="math_toolkit.toolkit.internals1.minima.h1"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.minima.description"></a></span><a class="link" href="minima.html#math_toolkit.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)&#8773;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.toolkit.internals1.minima.h2"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.minima.implementation"></a></span><a class="link" href="minima.html#math_toolkit.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals1/rational.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/rational.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,228 @@
+<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.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities &amp; 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 &amp; 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_toolkit_internals1_rational">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.toolkit.internals1.rational"></a><a class="link" href="rational.html" title="Polynomial and Rational Function Evaluation">Polynomial
+ and Rational Function Evaluation</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.toolkit.internals1.rational.h0"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.rational.synopsis"></a></span><a class="link" href="rational.html#math_toolkit.toolkit.internals1.rational.synopsis">synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="comment">// Polynomials:</span>
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">(&amp;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">&gt;&amp;</span> <span class="identifier">poly</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">(&amp;</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">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">&gt;&amp;</span> <span class="identifier">poly</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">(&amp;</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">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">&gt;&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">(&amp;</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">(&amp;</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">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">&gt;&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">&gt;&amp;</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">z</span><span class="special">);</spa
n>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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.toolkit.internals1.rational.h1"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.rational.description"></a></span><a class="link" href="rational.html#math_toolkit.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">&lt;</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">&gt;</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">(&amp;</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">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">&gt;&amp;</span> <span class="identifier">poly</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">(&amp;</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">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">&gt;&amp;</span> <span class="identifier">poly</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">(&amp;</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">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">&gt;&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">(&amp;</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">(&amp;</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">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">&gt;&amp;</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">&lt;</span><span class="identifier">U</span><span class="special">,</span><span class="identifier">N</span><span class="special">&gt;&amp;</span> <span class="identifier">denom</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">z</span><span class="special">)
;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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.toolkit.internals1.rational.h2"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.rational.implementation"></a></span><a class="link" href="rational.html#math_toolkit.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="../../perf/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/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals1/roots.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/roots.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,417 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities &amp; 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_toolkit_internals1_roots">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.toolkit.internals1.roots"></a><a class="link" href="roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder">Root Finding
+ With Derivatives: Newton-Raphson, Halley &amp; Schroeder</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.toolkit.internals1.roots.h0"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots.synopsis"></a></span><a class="link" href="roots.html#math_toolkit.toolkit.internals1.roots.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">tools</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&amp;</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.toolkit.internals1.roots.h1"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots.description"></a></span><a class="link" href="roots.html#math_toolkit.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#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#halley">Halley</a> and <a class="link" href="roots.html#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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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&lt;Policy&gt;()).
+ </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">&lt;</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">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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>
+<a name="newton"></a><h5>
+<a name="math_toolkit.toolkit.internals1.roots.h2"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots.newton_raphson_method"></a></span><a class="link" href="roots.html#math_toolkit.toolkit.internals1.roots.newton_raphson_method">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>
+<a name="halley"></a><h5>
+<a name="math_toolkit.toolkit.internals1.roots.h3"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots.halley_s_method"></a></span><a class="link" href="roots.html#math_toolkit.toolkit.internals1.roots.halley_s_method">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>
+<a name="schroeder"></a><h5>
+<a name="math_toolkit.toolkit.internals1.roots.h4"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots.schroeder_s_method"></a></span><a class="link" href="roots.html#math_toolkit.toolkit.internals1.roots.schroeder_s_method">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.toolkit.internals1.roots.h5"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots.example"></a></span><a class="link" href="roots.html#math_toolkit.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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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&#178;, 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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;</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">&gt;</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals1/roots2.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/roots2.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,580 @@
+<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.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities &amp; internals">
+<link rel="prev" href="roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; 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_toolkit_internals1_roots2">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.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>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.toolkit.internals1.roots2.h0"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots2.synopsis"></a></span><a class="link" href="roots2.html#math_toolkit.toolkit.internals1.roots2.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">tools</span><span class="special">{</span>
+ <span class="comment">// Bisection</span>
+ <span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</span>
+
+ <span class="comment">// Bracket and Solve Root</span>
+ <span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">guess</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">guess</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="comment">// TOMS 748 algorithm</span>
+ <span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">b</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">fa</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">b</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">fa</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</span>
+
+ <span class="comment">// Termination conditions:</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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.toolkit.internals1.roots2.h1"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots2.description"></a></span><a class="link" href="roots2.html#math_toolkit.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>
+<h5>
+<a name="math_toolkit.toolkit.internals1.roots2.h2"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots2.bisection"></a></span><a class="link" href="roots2.html#math_toolkit.toolkit.internals1.roots2.bisection">Bisection</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</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 &lt; max</em></span> and <span class="emphasis"><em>f(min)*f(max)
+ &lt;= 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="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="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">&lt;=</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">&gt;=</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>
+<h5>
+<a name="math_toolkit.toolkit.internals1.roots2.h3"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots2.bracket_and_solve"></a></span><a class="link" href="roots2.html#math_toolkit.toolkit.internals1.roots2.bracket_and_solve">Bracket
+ and solve</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">guess</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">guess</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</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="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="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">&lt;=</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">&gt;=</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>
+<h5>
+<a name="math_toolkit.toolkit.internals1.roots2.h4"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots2.algorithm_toms_748__alefeld__potra_and_shi__enclosing_zeros_of_continuous_functions"></a></span><a class="link" href="roots2.html#math_toolkit.toolkit.internals1.roots2.algorithm_toms_748__alefeld__potra_and_shi__enclosing_zeros_of_continuous_functions">Algorithm
+ TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">b</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">fa</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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="Policies">Policy</a><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">b</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">fa</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_iter</span><span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</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 &lt; 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)
+ &lt; 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="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="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) &lt;= 0 and either tol(r.first,
+ r.second) == true or max_iter &gt;= 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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</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.toolkit.internals1.roots2.h5"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.roots2.implementation"></a></span><a class="link" href="roots2.html#math_toolkit.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals1/series_evaluation.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/series_evaluation.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,192 @@
+<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.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities &amp; internals">
+<link rel="prev" href="../internals1.html" title="Utilities &amp; 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_toolkit_internals1_series_evaluation">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.toolkit.internals1.series_evaluation"></a><a class="link" href="series_evaluation.html" title="Series Evaluation">Series
+ Evaluation</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.toolkit.internals1.series_evaluation.h0"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.series_evaluation.synopsis"></a></span><a class="link" href="series_evaluation.html#math_toolkit.toolkit.internals1.series_evaluation.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">tools</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">max_terms</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">init_value</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</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">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">&gt;</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">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">&gt;</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">&amp;</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">&amp;</span> <span class="identifier">max_terms</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</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">&lt;</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">&gt;</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">&amp;</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">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">&gt;</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">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">&gt;</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">&amp;</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">&amp;</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.toolkit.internals1.series_evaluation.h1"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.series_evaluation.description"></a></span><a class="link" href="series_evaluation.html#math_toolkit.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.toolkit.internals1.series_evaluation.h2"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.series_evaluation.example"></a></span><a class="link" href="series_evaluation.html#math_toolkit.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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals1/tuples.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals1/tuples.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,78 @@
+<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.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities &amp; 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_toolkit_internals1_tuples">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.toolkit.internals1.tuples"></a><a class="link" href="tuples.html" title="Tuples">Tuples</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.toolkit.internals1.tuples.h0"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.tuples.synopsis"></a></span><a class="link" href="tuples.html#math_toolkit.toolkit.internals1.tuples.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<h5>
+<a name="math_toolkit.toolkit.internals1.tuples.h1"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals1.tuples.description"></a></span><a class="link" href="tuples.html#math_toolkit.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals2.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../toolkit.html" title="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_toolkit_internals2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.toolkit.internals2"></a><a class="link" href="internals2.html" title="Testing and Development">Testing and Development</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals2/error_test.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2/error_test.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,218 @@
+<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.77.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_toolkit_internals2_error_test">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.toolkit.internals2.error_test"></a><a class="link" href="error_test.html" title="Relative Error and Testing">Relative
+ Error and Testing</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.toolkit.internals2.error_test.h0"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.error_test.synopsis"></a></span><a class="link" href="error_test.html#math_toolkit.toolkit.internals2.error_test.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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">&gt;</span>
+<span class="identifier">test_result</span><span class="special">&lt;</span><span class="identifier">see</span><span class="special">-</span><span class="identifier">below</span><span class="special">&gt;</span> <span class="identifier">test</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;</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.toolkit.internals2.error_test.h1"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.error_test.description"></a></span><a class="link" href="error_test.html#math_toolkit.toolkit.internals2.error_test.description">Description</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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">&gt;</span>
+<span class="identifier">test_result</span><span class="special">&lt;</span><span class="identifier">see</span><span class="special">-</span><span class="identifier">below</span><span class="special">&gt;</span> <span class="identifier">test</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;</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">&amp;</span>
+ <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">test_result</span><span class="special">&amp;</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.toolkit.internals2.error_test.h2"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.error_test.example"></a></span><a class="link" href="error_test.html#math_toolkit.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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">TestType</span><span class="special">,</span> <span class="number">3</span><span class="special">&gt;,</span> <span class="identifier">NumberOfTests</span><span class="special">&gt;</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">&lt;</span><span class="identifier">TestType</span><span class="special">&gt;</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">&lt;</span><span class="identifier">TestType</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">TestType</span><span class="special">&gt;(</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">&lt;&lt;</span> <span class="string">"The Mean was "</span> <span class="special">&lt;&lt;</span> <span class="identifier">result</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"The worst error was "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"The worst error was at row "</span> <span class="special">&lt;&lt;</span> <span class="identifier">result</span><span class="special">.</span><span class="identifier">worst_case</span><span class="special">()</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">TestType</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">TestType</span><span class="special">&gt;(</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals2/minimax.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2/minimax.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,278 @@
+<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.77.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_toolkit_internals2_minimax">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.toolkit.internals2.minimax"></a><a class="link" href="minimax.html" title="Minimax Approximations and the Remez Algorithm">Minimax Approximations
+ and the Remez Algorithm</a>
+</h4></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="../../backgrounders/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">&amp;</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="../../using_udt/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals2/polynomials.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2/polynomials.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,128 @@
+<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.77.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_toolkit_internals2_polynomials">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.toolkit.internals2.polynomials"></a><a class="link" href="polynomials.html" title="Polynomials">Polynomials</a>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.toolkit.internals2.polynomials.h0"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.polynomials.synopsis"></a></span><a class="link" href="polynomials.html#math_toolkit.toolkit.internals2.polynomials.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">tools</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+ <span class="identifier">polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+ <span class="identifier">polynomial</span><span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+ <span class="identifier">polynomial</span><span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+ <span class="identifier">polynomial</span><span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+ <span class="identifier">polynomial</span><span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;&amp;</span> <span class="identifier">value</span><span class="special">);</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+ <span class="identifier">polynomial</span><span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;&amp;</span> <span class="identifier">value</span><span class="special">);</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+ <span class="identifier">polynomial</span><span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;&amp;</span> <span class="identifier">value</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">&lt;&lt;</span>
+ <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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.toolkit.internals2.polynomials.h1"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.polynomials.description"></a></span><a class="link" href="polynomials.html#math_toolkit.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals2/test_data.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals2/test_data.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,541 @@
+<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.77.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="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_toolkit_internals2_test_data">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.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>
+</h4></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.toolkit.internals2.test_data.h0"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.test_data.synopsis"></a></span><a class="link" href="test_data.html#math_toolkit.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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">parameter_info</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">row_type</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">arg1</span><span class="special">);</span>
+
+ <span class="comment">// insertion:</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">&gt;</span>
+ <span class="identifier">test_data</span><span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">arg1</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">&gt;</span>
+ <span class="identifier">test_data</span><span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">arg1</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">arg2</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">&gt;</span>
+ <span class="identifier">test_data</span><span class="special">&amp;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">arg1</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">arg2</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&amp;</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">&lt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&amp;</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">&gt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&amp;</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">&gt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">data</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">os</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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.toolkit.internals2.test_data.h1"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.test_data.description"></a></span><a class="link" href="test_data.html#math_toolkit.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.toolkit.internals2.test_data.h2"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.test_data.example_1__output_data_for_graph_plotting"></a></span><a class="link" href="test_data.html#math_toolkit.toolkit.internals2.test_data.example_1__output_data_for_graph_plotting">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">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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.toolkit.internals2.test_data.h3"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.test_data.example_2__creating_test_data"></a></span><a class="link" href="test_data.html#math_toolkit.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">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">fstream</span><span class="special">&gt;</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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 &lt; 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">&lt;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">&gt;</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">&lt;</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">&gt;</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">&lt;&lt;</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">&lt;&lt;</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&lt;&gt;::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">&lt;&lt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="number">3</span><span class="special">&gt;,</span> <span class="number">1830</span><span class="special">&gt;</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&lt;T&gt;(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.toolkit.internals2.test_data.h4"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.test_data.example_3__profiling_a_continued_fraction_for_convergence_and_accuracy"></a></span><a class="link" href="test_data.html#math_toolkit.toolkit.internals2.test_data.example_3__profiling_a_continued_fraction_for_convergence_and_accuracy">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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">&gt;</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&gt;::</span><span class="identifier">max</span><span class="special">();</span>
+ <span class="identifier">upper_incomplete_gamma_fract</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(),</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.toolkit.internals2.test_data.h5"></a>
+ <span class="phrase"><a name="math_toolkit.toolkit.internals2.test_data.reference"></a></span><a class="link" href="test_data.html#math_toolkit.toolkit.internals2.test_data.reference">reference</a>
+ </h5>
+<p>
+ <a name="test_data_reference"></a>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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/toolkit/internals_overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/toolkit/internals_overview.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../toolkit.html" title="Internals and Internal Details">
+<link rel="prev" href="../toolkit.html" title="Internals and Internal Details">
+<link rel="next" href="internals1.html" title="Utilities &amp; 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_toolkit_internals_overview">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.toolkit.internals_overview"></a><a class="link" href="internals_overview.html" title="Overview">Overview</a>
+</h3></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>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.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions">
+<link rel="next" href="using_udt/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="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="using_udt/high_precision.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_using_udt">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.using_udt"></a><a class="link" href="using_udt.html" title="Use with User-Defined Floating-Point Types">Use with User-Defined Floating-Point
+ Types</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="using_udt/high_precision.html">Using Boost.Math
+ with High-Precision Floating-Point Libraries</a></span></dt>
+<dt><span class="section"><a href="using_udt/concepts.html">Conceptual Requirements
+ for Real Number Types</a></span></dt>
+<dt><span class="section"><a href="using_udt/dist_concept.html">Conceptual Requirements
+ for Distribution Types</a></span></dt>
+<dt><span class="section"><a href="using_udt/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="using_udt/high_precision.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/using_udt/archetypes.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/archetypes.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,200 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../using_udt.html" title="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="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_using_udt_archetypes">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.using_udt.archetypes"></a><a class="link" href="archetypes.html" title="Conceptual Archetypes for Reals and Distributions">Conceptual Archetypes
+ for Reals and Distributions</a>
+</h3></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.using_udt.archetypes.h0"></a>
+ <span class="phrase"><a name="math_toolkit.using_udt.archetypes.real_concept"></a></span><a class="link" href="archetypes.html#math_toolkit.using_udt.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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">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>
+<h4>
+<a name="math_toolkit.using_udt.archetypes.h1"></a>
+ <span class="phrase"><a name="math_toolkit.using_udt.archetypes.testing_the_real_concept"></a></span><a class="link" href="archetypes.html#math_toolkit.using_udt.archetypes.testing_the_real_concept">Testing
+ the real concept</a>
+ </h4>
+<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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">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&lt;&gt; 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 [linkmath_toolkit.using_udt.high_precision.use_ntl
+ "Using With NTL - a High-Precision Floating-Point Library"].
+ </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>
+<h4>
+<a name="math_toolkit.using_udt.archetypes.h2"></a>
+ <span class="phrase"><a name="math_toolkit.using_udt.archetypes.distribution_concept"></a></span><a class="link" href="archetypes.html#math_toolkit.using_udt.archetypes.distribution_concept">Distribution
+ Concept</a>
+ </h4>
+<p>
+ Distribution Concept models statistical distributions.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </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">concepts</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <span class="identifier">distribution_archetype</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Distribution</span><span class="special">&gt;</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>
+<h4>
+<a name="math_toolkit.using_udt.archetypes.h3"></a>
+ <span class="phrase"><a name="math_toolkit.using_udt.archetypes.testing_the_distribution_concept"></a></span><a class="link" href="archetypes.html#math_toolkit.using_udt.archetypes.testing_the_distribution_concept">Testing
+ the distribution concept</a>
+ </h4>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt/concepts.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/concepts.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,1364 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../using_udt.html" title="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_using_udt_concepts">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.using_udt.concepts"></a><a class="link" href="concepts.html" title="Conceptual Requirements for Real Number Types">Conceptual Requirements
+ for Real Number Types</a>
+</h3></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.using_udt.concepts.h0"></a>
+ <span class="phrase"><a name="math_toolkit.using_udt.concepts.basic_arithmetic_requirements"></a></span><a class="link" href="concepts.html#math_toolkit.using_udt.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&amp;
+ </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&amp;
+ </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&amp;
+ </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&amp;
+ </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&amp;
+ </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&amp;
+ </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&amp;
+ </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&amp;
+ </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&amp;
+ </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&amp;
+ </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&amp;
+ </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">&lt;=</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">&lt;=</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">&lt;=</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">&gt;=</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">&gt;=</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">&gt;=</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">&lt;</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">&lt;</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">&lt;</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">&gt;</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">&gt;</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">&gt;</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;()</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;()</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;()</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;()</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;()</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;()</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">&lt;&gt;</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.using_udt.concepts.h1"></a>
+ <span class="phrase"><a name="math_toolkit.using_udt.concepts.standard_library_support_requirements"></a></span><a class="link" href="concepts.html#math_toolkit.using_udt.concepts.standard_library_support_requirements">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">&amp;</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="../backgrounders/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt/dist_concept.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/dist_concept.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,390 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../using_udt.html" title="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_using_udt_dist_concept">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.using_udt.dist_concept"></a><a class="link" href="dist_concept.html" title="Conceptual Requirements for Distribution Types">Conceptual Requirements
+ for Distribution Types</a>
+</h3></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/dist_ref.html" title="Statistical Distributions Reference">reference documentation</a>,
+ and <a class="link" href="../dist/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="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&amp;
+ </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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt/high_precision.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,103 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../using_udt.html" title="Use with User-Defined Floating-Point Types">
+<link rel="prev" href="../using_udt.html" title="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_using_udt_high_precision">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.using_udt.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>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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"><a href="high_precision/e_float.html">Using
+ e_float Library</a></span></dt>
+<dt><span class="section"><a href="high_precision/use_ntl.html">Using
+ NTL Library</a></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">
+ <a href="http://www.shoup.net/ntl/" target="_top">NTL A Library for doing Number
+ Theory</a>
+ </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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt/high_precision/e_float.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/e_float.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,60 @@
+<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.77.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_using_udt_high_precision_e_float">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.e_float"></a><a class="link" href="e_float.html" title="Using e_float Library">Using
+ e_float Library</a>
+</h4></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">&lt;</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">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt/high_precision/float128.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/float128.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,56 @@
+<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.77.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_using_udt_high_precision_float128">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.float128"></a><a class="link" href="float128.html" title="Using with GCC's __float128 datatype">Using
+ with GCC's __float128 datatype</a>
+</h4></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&lt;__float128&gt; 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt/high_precision/use_mpfr.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/use_mpfr.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,106 @@
+<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.77.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_using_udt_high_precision_use_mpfr">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.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>
+</h4></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">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">v</span> <span class="special">&lt;&lt;</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">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">v</span> <span class="special">&lt;&lt;</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="../../backgrounders/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt/high_precision/use_multiprecision.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/use_multiprecision.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,403 @@
+<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.77.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_using_udt_high_precision_use_multiprecision">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.use_multiprecision"></a><a class="link" href="use_multiprecision.html" title="Using Boost.Multiprecision">Using
+ Boost.Multiprecision</a>
+</h4></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.using_udt.high_precision.use_multiprecision.h0"></a>
+ <span class="phrase"><a name="math_toolkit.using_udt.high_precision.use_multiprecision.using_boost_multiprecision__code__phrase_role__identifier__cpp_float__phrase___code__for_numerical_calculations_with_high_precision_"></a></span><a class="link" href="use_multiprecision.html#math_toolkit.using_udt.high_precision.use_multiprecision.using_boost_multiprecision__code__phrase_role__identifier__cpp_float__phrase___code__for_numerical_calculations_with_high_precision_">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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="comment">// using boost::multiprecision::cpp_dec_float</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ So now we can demonstrate with some trivial calculations:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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>
+ </p>
+<p>
+ By default, output would only show the standard 6 decimal digits, so set
+ precision to show all 50 significant digits.
+ </p>
+<p>
+</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">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;::</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">&lt;&lt;</span> <span class="identifier">seventh</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;()</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">&lt;&lt;</span> <span class="identifier">circumference</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ which outputs
+ </p>
+<pre class="programlisting"><span class="number">0.89759790102565521098932668093700082405633411410717</span>
+</pre>
+<h6>
+<a name="math_toolkit.using_udt.high_precision.use_multiprecision.h1"></a>
+ <span class="phrase"><a name="math_toolkit.using_udt.high_precision.use_multiprecision.using_boost_multiprecision_to_generate_a_high_precision_array_of_sin_coefficents_for_use_with_fft_"></a></span><a class="link" href="use_multiprecision.html#math_toolkit.using_udt.high_precision.use_multiprecision.using_boost_multiprecision_to_generate_a_high_precision_array_of_sin_coefficents_for_use_with_fft_">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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="comment">// using boost::math::constants::pi;</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+<span class="comment">// using boost::multiprecision::cpp_dec_float</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">algorithm</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">fstream</span><span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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 &lt;boost/array/array.hpp&gt;\n"</span>
+ <span class="string">"#else\n"</span>
+ <span class="string">"#include &lt;array&gt;\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>
+ </p>
+<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((&#960;/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(&#960;/2<sup>n</sup>) in the range
+ 1 &lt;= n &lt;= 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 &#960; 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>
+<p>
+</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">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;();</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">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;();</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span> <span class="special">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;</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">[&amp;</span><span class="identifier">n</span><span class="special">](</span><span class="identifier">cpp_dec_float_50</span><span class="special">&amp;</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">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;()</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>
+ </p>
+<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>
+<p>
+</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">&lt;&lt;</span> <span class="string">"Generating an `std::array` or `boost::array` for floating-point type: "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">fp_type</span> <span class="special">&lt;&lt;</span> <span class="string">". "</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;::</span><span class="identifier">digits10</span><span class="special">;</span>
+
+<span class="comment">// std::cout.precision(std::numeric_limits&lt;cpp_dec_float_50&gt;::digits10);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">precision</span> <span class="special">&lt;&lt;</span> <span class="string">" decimal digits precision. "</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</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>
+<p>
+</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">// &amp; 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">&lt;&lt;</span> <span class="string">"Open file "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sines_name</span> <span class="special">&lt;&lt;</span> <span class="string">" failed!"</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Open file "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sines_name</span> <span class="special">&lt;&lt;</span> <span class="string">" for output OK."</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span> <span class="identifier">prolog</span> <span class="special">&lt;&lt;</span> <span class="string">"// Table of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sin_values</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" values with "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">precision</span> <span class="special">&lt;&lt;</span> <span class="string">" decimal digits precision,\n"</span>
+ <span class="string">"// generated by program fft_sines_table.cpp.\n"</span> <span class="special">&lt;&lt;</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">&lt;&lt;</span>
+<span class="string">"#ifdef BOOST_NO_CXX11_HDR_ARRAY"</span><span class="string">"\n"</span>
+ <span class="string">" static const boost::array&lt;double, "</span> <span class="special">&lt;&lt;</span> <span class="identifier">size</span> <span class="special">&lt;&lt;</span> <span class="string">"&gt; sines =\n"</span>
+<span class="string">"#else"</span><span class="string">"\n"</span>
+<span class="string">" static const std::array&lt;double, "</span> <span class="special">&lt;&lt;</span> <span class="identifier">size</span> <span class="special">&lt;&lt;</span> <span class="string">"&gt; 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">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="string">"Close file "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sines_name</span> <span class="special">&lt;&lt;</span> <span class="string">" for output OK."</span> <span class="special">&lt;&lt;</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>
+ </p>
+<p>
+ The output file generated can be seen at ..\sines.hpp
+ </p>
+<p>
+ The table output is:
+ </p>
+<p>
+</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>
+ </p>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt/high_precision/use_ntl.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/use_ntl.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,67 @@
+<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.77.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_using_udt_high_precision_use_ntl">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.use_ntl"></a><a class="link" href="use_ntl.html" title="Using NTL Library">Using
+ NTL Library</a>
+</h4></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="../../backgrounders/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt/high_precision/using_test.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/using_test.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,131 @@
+<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.77.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_using_udt_high_precision_using_test">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.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>
+</h4></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>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="number">50</span><span class="special">&gt;</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">&lt;</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">&gt;</span> <span class="identifier">cpp_dec_float_50_noet</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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">&lt;</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">&lt;</span><span class="number">50</span><span class="special">&gt;,</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">&gt;</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>
+<p>
+</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">&lt;</span><span class="identifier">cpp_dec_float</span><span class="special">&lt;</span><span class="number">50</span><span class="special">&gt;,</span> <span class="identifier">et_off</span><span class="special">&gt;</span> <span class="identifier">cpp_dec_float_50_noet</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<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>
+<p>
+</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">&lt;</span><span class="identifier">cpp_dec_float_50_noet</span><span class="special">&gt;::</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">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">showpoint</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="identifier">cpp_dec_float_50_noet</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">cpp_dec_float_50_noet</span><span class="special">&gt;::</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">&lt;&lt;</span><span class="string">"a = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">a</span> <span class="special">&lt;&lt;</span> <span class="string">",\nb = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">b</span> <span class="special">&lt;&lt;</span> <span class="string">",\neps = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">eps</span> <span class="special">&lt;&lt;</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>
+ </p>
+<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>
+<p>
+</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&lt;tag,Arg1,Arg2,Arg3,Arg4&gt;'</span>
+</pre>
+<p>
+ </p>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/using_udt/high_precision/why_high_precision.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/using_udt/high_precision/why_high_precision.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_using_udt_high_precision_why_high_precision">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.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>
+</h4></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="../../dist/stat_tut/overview/complements.html#complements">complements</a>:
+ see <a class="link" href="../../dist/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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Floating Point Utilities</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../index.html" title="Math Toolkit">
+<link rel="prev" href="special/owens_t.html" title="Owen's T function">
+<link rel="next" href="utils/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="special/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="utils/rounding.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_utils">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.utils"></a><a class="link" href="utils.html" title="Floating Point Utilities">Floating Point Utilities</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="utils/rounding.html">Rounding Truncation and
+ Integer Conversion</a></span></dt>
+<dt><span class="section"><a href="utils/fpclass.html">Floating-Point Classification:
+ Infinities and NaNs</a></span></dt>
+<dt><span class="section"><a href="utils/sign_functions.html">Sign Manipulation
+ Functions</a></span></dt>
+<dt><span class="section"><a href="utils/fp_facets.html">Facets for Floating-Point
+ Infinities and NaNs</a></span></dt>
+<dt><span class="section"><a href="utils/next_float.html">Floating-Point Representation
+ Distance (ULP), and Finding Adjacent Floating-Point Values</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/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="utils/rounding.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../utils.html" title="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_utils_fp_facets">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.utils.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>
+</h3></div></div></div>
+<div class="toc"><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></div>
+<h5>
+<a name="math_toolkit.utils.fp_facets.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.synopsis"></a></span><a class="link" href="fp_facets.html#math_toolkit.utils.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">&lt;</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">&lt;</span><span class="identifier">CharType</span><span class="special">&gt;</span>
+ <span class="special">&gt;</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">&lt;</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</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">&lt;</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">&lt;</span><span class="identifier">CharType</span><span class="special">&gt;</span>
+ <span class="special">&gt;</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">&lt;</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">&gt;</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">&lt;</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">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/fp_facets/examples.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/examples.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,261 @@
+<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.77.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_utils_fp_facets_examples">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.fp_facets.examples"></a><a class="link" href="examples.html" title="Examples">Examples</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.utils.fp_facets.examples.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.examples.simple_example_with_std__stringstreams"></a></span><a class="link" href="examples.html#math_toolkit.utils.fp_facets.examples.simple_example_with_std__stringstreams">Simple
+ example with std::stringstreams</a>
+ </h6>
+<p>
+</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">&lt;</span><span class="keyword">char</span><span class="special">&gt;);</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">&lt;</span><span class="keyword">char</span><span class="special">&gt;);</span>
+</pre>
+<p>
+ </p>
+<p>
+</p>
+<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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">infinity</span><span class="special">();</span>
+<span class="identifier">ss</span> <span class="special">&lt;&lt;</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">&gt;&gt;</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">&lt;&lt;</span> <span class="string">"infinity output was "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ss</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"infinity input was "</span> <span class="special">&lt;&lt;</span> <span class="identifier">r</span> <span class="special">&lt;&lt;</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>
+<p>
+ </p>
+<h6>
+<a name="math_toolkit.utils.fp_facets.examples.h1"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.examples.use_with_lexical_cast"></a></span><a class="link" href="examples.html#math_toolkit.utils.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>
+<p>
+</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">&lt;</span><span class="keyword">char</span><span class="special">&gt;);</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">&lt;</span><span class="keyword">char</span><span class="special">&gt;);</span>
+</pre>
+<p>
+ </p>
+<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">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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">&lt;&lt;</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">max_digits10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="identifier">output_value</span><span class="special">;</span>
+<span class="identifier">s</span> <span class="special">&gt;&gt;</span> <span class="identifier">input_value</span><span class="special">;</span>
+</pre>
+<h5>
+<a name="math_toolkit.utils.fp_facets.examples.h2"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.examples.use_with_serialization_archives"></a></span><a class="link" href="examples.html#math_toolkit.utils.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">&lt;</span><span class="keyword">char</span><span class="special">&gt;);</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">&lt;</span><span class="keyword">char</span><span class="special">&gt;);</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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">infinity</span><span class="special">();</span>
+<span class="identifier">oa</span> <span class="special">&amp;</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.utils.fp_facets.examples.h3"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.examples.other_examples"></a></span><a class="link" href="examples.html#math_toolkit.utils.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/fp_facets/intro.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/intro.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,382 @@
+<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.77.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_utils_fp_facets_intro">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.fp_facets.intro"></a><a class="link" href="intro.html" title="Introduction">Introduction</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.utils.fp_facets.intro.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.intro.the_problem"></a></span><a class="link" href="intro.html#math_toolkit.utils.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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</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">&lt;&lt;</span> <span class="identifier">inf</span><span class="special">;</span> <span class="comment">// Write out.</span>
+<span class="identifier">ss</span> <span class="special">&gt;&gt;</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">&lt;&lt;</span> <span class="string">"infinity output was "</span> <span class="special">&lt;&lt;</span> <span class="identifier">inf</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1.#INF</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"infinity input was "</span> <span class="special">&lt;&lt;</span> <span class="identifier">r</span> <span class="special">&lt;&lt;</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.utils.fp_facets.intro.h1"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.intro.the_solution"></a></span><a class="link" href="intro.html#math_toolkit.utils.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>
+<p>
+</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">&lt;</span><span class="keyword">char</span><span class="special">&gt;);</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">&lt;</span><span class="keyword">char</span><span class="special">&gt;);</span>
+</pre>
+<p>
+ </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>
+ 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">&lt;</span><span class="keyword">char</span><span class="special">&gt;),</span> <span class="keyword">new</span> <span class="identifier">boost</span><span clas
s="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">nonfinite_num_get</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;));</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">&lt;</span><span class="keyword">char</span><span class="special">&gt;));</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="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_get</span><span class="special">&lt;</sp
an><span class="keyword">char</span><span class="special">&gt;));</span></code>
+ </p></td></tr>
+</table></div>
+<p>
+</p>
+<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">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">infinity</span><span class="special">();</span>
+<span class="identifier">ss</span> <span class="special">&lt;&lt;</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">&gt;&gt;</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">&lt;&lt;</span> <span class="string">"infinity output was "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ss</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"infinity input was "</span> <span class="special">&lt;&lt;</span> <span class="identifier">r</span> <span class="special">&lt;&lt;</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>
+<p>
+ </p>
+<h5>
+<a name="math_toolkit.utils.fp_facets.intro.h2"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.intro.c__0x_standard_for_output_of_infinity_and_nan"></a></span><a class="link" href="intro.html#math_toolkit.utils.fp_facets.intro.c__0x_standard_for_output_of_infinity_and_nan">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.utils.fp_facets.intro.h3"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.intro.c99_standard_for_output_of_infinity_and_nan"></a></span><a class="link" href="intro.html#math_toolkit.utils.fp_facets.intro.c99_standard_for_output_of_infinity_and_nan">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.utils.fp_facets.intro.c99_representation_of_infinity_and_nan"></a><p class="title"><b>Table&#160;51.&#160;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.utils.fp_facets.intro.h4"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.intro.signaling_nans"></a></span><a class="link" href="intro.html#math_toolkit.utils.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="identifier">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="preprocessor">#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 &lt;= n &lt;=
+ 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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/fp_facets/portability.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/portability.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_utils_fp_facets_portability">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.fp_facets.portability"></a><a class="link" href="portability.html" title="Portability">Portability</a>
+</h4></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/fp_facets/rationale.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/rationale.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.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_utils_fp_facets_rationale">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.fp_facets.rationale"></a><a class="link" href="rationale.html" title="Design Rationale">Design Rationale</a>
+</h4></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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/fp_facets/reference.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/fp_facets/reference.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,482 @@
+<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.77.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_utils_fp_facets_reference">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.fp_facets.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
+</h4></div></div></div>
+<h6>
+<a name="math_toolkit.utils.fp_facets.reference.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.reference.the_facet__code__phrase_role__identifier__nonfinite_num_put__phrase___code_"></a></span><a class="link" href="reference.html#math_toolkit.utils.fp_facets.reference.the_facet__code__phrase_role__identifier__nonfinite_num_put__phrase___code_">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">&lt;</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">&lt;</span><span class="identifier">CharType</span><span class="special">&gt;</span>
+ <span class="special">&gt;</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">&lt;</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</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">&lt;</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</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.utils.fp_facets.reference.h1"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.reference.facet__code__phrase_role__identifier__nonfinite_num_get__phrase___code_"></a></span><a class="link" href="reference.html#math_toolkit.utils.fp_facets.reference.facet__code__phrase_role__identifier__nonfinite_num_get__phrase___code_">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">&lt;</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">&lt;</span><span class="identifier">CharType</span><span class="special">&gt;</span> <span class="special">&gt;</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">&lt;</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">&gt;</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">&lt;</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">IntputIterator</span><span class="special">&gt;</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.utils.fp_facets.reference.h2"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.reference.flags"></a></span><a class="link" href="reference.html#math_toolkit.utils.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.utils.fp_facets.reference.h3"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.reference.legacy"></a></span><a class="link" href="reference.html#math_toolkit.utils.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.utils.fp_facets.reference.h4"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.reference.signed_zero"></a></span><a class="link" href="reference.html#math_toolkit.utils.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">&lt;</span><span class="identifier">ValType</span><span class="special">&gt;(</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.utils.fp_facets.reference.h5"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.reference.trap_infinity"></a></span><a class="link" href="reference.html#math_toolkit.utils.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.utils.fp_facets.reference.h6"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fp_facets.reference.trap_nan"></a></span><a class="link" href="reference.html#math_toolkit.utils.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/fpclass.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/fpclass.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../utils.html" title="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_utils_fpclass">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.utils.fpclass"></a><a class="link" href="fpclass.html" title="Floating-Point Classification: Infinities and NaNs">Floating-Point Classification:
+ Infinities and NaNs</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.utils.fpclass.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fpclass.synopsis"></a></span><a class="link" href="fpclass.html#math_toolkit.utils.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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</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">&gt;</span>
+</pre>
+<p>
+ to use these functions.
+ </p>
+<h5>
+<a name="math_toolkit.utils.fpclass.h1"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fpclass.description"></a></span><a class="link" href="fpclass.html#math_toolkit.utils.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&lt;&gt;
+ 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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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.utils.fpclass.h2"></a>
+ <span class="phrase"><a name="math_toolkit.utils.fpclass.floating_point_format"></a></span><a class="link" href="fpclass.html#math_toolkit.utils.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/next_float.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,74 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../utils.html" title="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_utils_next_float">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.utils.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>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/next_float/float_advance.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/float_advance.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,67 @@
+<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.77.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='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_utils_next_float_float_advance">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.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>
+</h4></div></div></div>
+<p>
+ Function float_advance advances a floating point number by a specified
+ number of ULP.
+ </p>
+<h5>
+<a name="math_toolkit.utils.next_float.float_advance.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.float_advance.synopsis"></a></span><a class="link" href="float_advance.html#math_toolkit.utils.next_float.float_advance.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">FPT</span><span class="special">&gt;</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.utils.next_float.float_advance.h1"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.float_advance.description___float_advance"></a></span><a class="link" href="float_advance.html#math_toolkit.utils.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/next_float/float_distance.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/float_distance.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,101 @@
+<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.77.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_utils_next_float_float_distance">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.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>
+</h4></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.utils.next_float.float_distance.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.float_distance.synopsis"></a></span><a class="link" href="float_distance.html#math_toolkit.utils.next_float.float_distance.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">FPT</span><span class="special">&gt;</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.utils.next_float.float_distance.h1"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.float_distance.description___float_distance"></a></span><a class="link" href="float_distance.html#math_toolkit.utils.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">&gt;</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/next_float/float_next.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/float_next.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,69 @@
+<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.77.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_utils_next_float_float_next">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.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>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.utils.next_float.float_next.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.float_next.synopsis"></a></span><a class="link" href="float_next.html#math_toolkit.utils.next_float.float_next.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">FPT</span><span class="special">&gt;</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.utils.next_float.float_next.h1"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.float_next.description___float_next"></a></span><a class="link" href="float_next.html#math_toolkit.utils.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="../../main_overview/error_handling.html#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="../../main_overview/error_handling.html#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">&lt;</span><span class="identifier">FPT</span><span class="special">&gt;::</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/next_float/float_prior.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/float_prior.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,69 @@
+<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.77.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_utils_next_float_float_prior">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.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>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.utils.next_float.float_prior.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.float_prior.synopsis"></a></span><a class="link" href="float_prior.html#math_toolkit.utils.next_float.float_prior.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">FPT</span><span class="special">&gt;</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.utils.next_float.float_prior.h1"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.float_prior.description___float_prior"></a></span><a class="link" href="float_prior.html#math_toolkit.utils.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="../../main_overview/error_handling.html#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="../../main_overview/error_handling.html#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">&lt;</span><span class="identifier">FPT</span><span class="special">&gt;::</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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/next_float/nextafter.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/next_float/nextafter.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,123 @@
+<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.77.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_utils_next_float_nextafter">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.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>
+</h4></div></div></div>
+<h5>
+<a name="math_toolkit.utils.next_float.nextafter.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.nextafter.synopsis"></a></span><a class="link" href="nextafter.html#math_toolkit.utils.next_float.nextafter.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">FPT</span><span class="special">&gt;</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.utils.next_float.nextafter.h1"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.nextafter.description___nextafter"></a></span><a class="link" href="nextafter.html#math_toolkit.utils.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="../../main_overview/error_handling.html#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="../../main_overview/error_handling.html#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.utils.next_float.nextafter.h2"></a>
+ <span class="phrase"><a name="math_toolkit.utils.next_float.nextafter.examples___nextafter"></a></span><a class="link" href="nextafter.html#math_toolkit.utils.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>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/rounding.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/rounding.html 2013-05-05 08:32:36 EDT (Sun, 05 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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../utils.html" title="Floating Point Utilities">
+<link rel="prev" href="../utils.html" title="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_utils_rounding">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.utils.rounding"></a><a class="link" href="rounding.html" title="Rounding Truncation and Integer Conversion">Rounding Truncation and
+ Integer Conversion</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/rounding/modf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/rounding/modf.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,77 @@
+<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.77.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_utils_rounding_modf">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.rounding.modf"></a><a class="link" href="modf.html" title="Integer and Fractional Part Splitting (modf)">Integer and Fractional
+ Part Splitting (modf)</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;</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">&gt;</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">&amp;</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">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;</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">&gt;</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">&amp;</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">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;</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">&gt;</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">&amp;</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">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&lt;</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">&gt;</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">&amp;</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">&amp;);</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="../../main_overview/error_handling.html#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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/rounding/round.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/rounding/round.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,77 @@
+<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.77.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_utils_rounding_round">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.rounding.round"></a><a class="link" href="round.html" title="Rounding Functions">Rounding Functions</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;);</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="../../main_overview/error_handling.html#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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/rounding/trunc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/rounding/trunc.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,79 @@
+<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.77.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_utils_rounding_trunc">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.utils.rounding.trunc"></a><a class="link" href="trunc.html" title="Truncation Functions">Truncation Functions</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></pre>
+<p>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;);</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="../../main_overview/error_handling.html#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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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/utils/sign_functions.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/utils/sign_functions.html 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -0,0 +1,246 @@
+<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.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../utils.html" title="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_utils_sign_functions">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.utils.sign_functions"></a><a class="link" href="sign_functions.html" title="Sign Manipulation Functions">Sign Manipulation
+ Functions</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.utils.sign_functions.h0"></a>
+ <span class="phrase"><a name="math_toolkit.utils.sign_functions.synopsis"></a></span><a class="link" href="sign_functions.html#math_toolkit.utils.sign_functions.synopsis">Synopsis</a>
+ </h5>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ </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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<a class="link" href="../main_overview/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">&amp;</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.utils.sign_functions.h1"></a>
+ <span class="phrase"><a name="math_toolkit.utils.sign_functions.description"></a></span><a class="link" href="sign_functions.html#math_toolkit.utils.sign_functions.description">Description</a>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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">&gt;</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">&lt;</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">&lt;</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">&gt;</span>
+<a class="link" href="../main_overview/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">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&amp;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</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">&amp;</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.utils.sign_functions.h2"></a>
+ <span class="phrase"><a name="math_toolkit.utils.sign_functions.sign_bits"></a></span><a class="link" href="sign_functions.html#math_toolkit.utils.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.utils.sign_functions.h3"></a>
+ <span class="phrase"><a name="math_toolkit.utils.sign_functions.examples"></a></span><a class="link" href="sign_functions.html#math_toolkit.utils.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.utils.sign_functions.h4"></a>
+ <span class="phrase"><a name="math_toolkit.utils.sign_functions.portability"></a></span><a class="link" href="sign_functions.html#math_toolkit.utils.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 &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or 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>

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-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,230 +1,578 @@
-[article Boost.Math
+[article Math Toolkit
     [quickbook 1.5]
- [copyright 2006, 2007, 2008, 2009, 2010 John Maddock, Paul A. Bristow, Hubert Holin, Daryle Walker, Xiaogang Zhang, Bruno Lalande, Johan R&#xE5;de, Gautam Sewani and Thijs van den Berg]
+ [copyright 2006, 2007, 2008, 2009, 2010, 2012, 2013 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan RÃ¥de, Gautam Sewani, Thijs van den Berg, Benjamin Sobotta and Christopher Kormanyos]
+ [/purpose ISBN 0-9504833-2-X 978-0-9504833-2-0, Classification 519.2-dc22]
     [license
         Distributed under the Boost Software License, Version 1.0.
         (See accompanying file LICENSE_1_0.txt or copy at
- [@http://www.boost.org/LICENSE_1_0.txt http://www.boost.org/LICENSE_1_0.txt])
+ [@http://www.boost.org/LICENSE_1_0.txt])
     ]
- [authors [Maddock, John], [Bristow, Paul A.], [Holin, Hubert], [Walker, Daryle], [Zhang, Xiaogang], [Lalande, Bruno], [R&#xE5;de, Johan], [Sewani, Gautam], [van den Berg, Thijs]]
- [last-revision $Date$]
+ [authors [Bristow, Paul A.], [Holin, Hubert], [Kormanyos, Christopher], [Lalande, Bruno], [Maddock, John], [RÃ¥de, Johan], [Sobotta, Benjamin], [Sewani, Gautam], [van den Berg, Thijs], [Zhang, Xiaogang] ]
+ [/last-revision $Date$]
 ]
 
-[def __R ['[*R]]]
-[def __C ['[*C]]]
-[def __H ['[*H]]]
-[def __O ['[*O]]]
-[def __R3 ['[*'''R<superscript>3</superscript>''']]]
-[def __R4 ['[*'''R<superscript>4</superscript>''']]]
-[def __quadrulple ('''&#x03B1;,&#x03B2;,&#x03B3;,&#x03B4;''')]
-[def __quat_formula ['[^q = '''&#x03B1; + &#x03B2;i + &#x03B3;j + &#x03B4;k''']]]
-[def __quat_complex_formula ['[^q = ('''&#x03B1; + &#x03B2;i) + (&#x03B3; + &#x03B4;i)j''' ]]]
-[def __not_equal ['[^xy '''&#x2260;''' yx]]]
-[def __octulple ('''&#x03B1;,&#x03B2;,&#x03B3;,&#x03B4;,&#x03B5;,&#x03B6;,&#x03B7;,&#x03B8;''')]
-[def __oct_formula ['[^o = '''&#x03B1; + &#x03B2;i + &#x03B3;j + &#x03B4;k + &#x03B5;e' + &#x03B6;i' + &#x03B7;j' + &#x03B8;k' ''']]]
-[def __oct_complex_formula ['[^o = ('''&#x03B1; + &#x03B2;i) + (&#x03B3; + &#x03B4;i)j + (&#x03B5; + &#x03B6;i)e' + (&#x03B7; - &#x03B8;i)j' ''']]]
-[def __oct_quat_formula ['[^o = ('''&#x03B1; + &#x03B2;i + &#x03B3;j + &#x03B4;k) + (&#x03B5; + &#x03B6;i + &#x03B7;j - &#x03B8;j)e' ''']]]
-[def __oct_not_equal ['[^x(yz) '''&#x2260;''' (xy)z]]]
-[template tr1[] [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Technical Report on C++ Library Extensions]]
+[/ \u00E5 = Latin small letter A with ring above doesn't seem to work in authors with Quickbook 1.5]
 
-The following libraries are present in Boost.Math:
+[template equation[name] '''<inlinemediaobject>
+<imageobject role="html">
+<imagedata fileref="../equations/'''[name]'''.png"></imagedata>
+</imageobject>
+<imageobject role="print">
+<imagedata fileref="../equations/'''[name]'''.svg"></imagedata>
+</imageobject>
+</inlinemediaobject>''']
+
+[template graph[name] '''<inlinemediaobject>
+<imageobject role="html">
+<imagedata align="center" fileref="../graphs/'''[name]'''.png"></imagedata>
+</imageobject>
+<imageobject role="print">
+<imagedata align="center" fileref="../graphs/'''[name]'''.svg"></imagedata>
+</imageobject>
+</inlinemediaobject>''']
+
+[include ../../../tools/auto_index/include/auto_index_helpers.qbk]
+[/ Must be first included file!]
+
+[include html4_symbols.qbk]
+
+[include overview/common_overviews.qbk] [/ overviews that appear in more than one place!]
+[include overview/tr1.qbk] [/tr1 docs also appear in more than one place!]
+[include overview/roadmap.qbk] [/ for history]
+
+[def __effects [*Effects: ]]
+[def __formula [*Formula: ]]
+[def __exm1 '''<code>e<superscript>x</superscript> - 1</code>'''] [/e^x -1]
+[def __ex '''<code>e<superscript>x</superscript></code>'''] [/e^x]
+[def __te '''2&#x025B;'''] [/small Latin letter open e]
+
+[def __ceilR '''&#x2309;''']
+[def __ceilL '''&#2308;''']
+[def __floorR '''&#x230B;''']
+[def __floorL '''&#x230A;''']
+[def __infin '''&#8734;''']
+[def __integral '''&#8747;''']
+[def __aacute '''&#225;''']
+[def __eacute '''&#233;''']
+[def __quarter '''&#x00BC;''']
+[def __nearequal '''&#x224A;''']
+[def __spaces '''&#x2000;&#x2000;'''] [/ two spaces - useful for an indent.]
+
+[def __caution This is now an official Boost library, but remains a library under
+ development, the code is fully functional and robust, but
+ interfaces, library structure, and function and distribution names
+ may still be changed without notice.]
 
-[table
-[[Library][Description]]
+[template tr1[] [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Technical Report on C++ Library Extensions]]
+[template C99[] [@http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf C99 Standard ISO/IEC 9899:1999]]
+[template jm_rationals[] [link math_toolkit.backgrounders.implementation.rational_approximations_used devised by JM]]
 
- [[Complex Number Inverse Trigonometric Functions
-
- [@../complex/html/index.html HTML Docs]
-
- [@http://sourceforge.net/projects/boost/files/boost-docs/
- PDF Docs]]
- [
-These 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 [tr1].
- ]]
-
- [[Greatest Common Divisor and Least Common Multiple
-
- [@../gcd/html/index.html HTML Docs]
-
- [@http://sourceforge.net/projects/boost/files/boost-docs/
- PDF Docs]]
- [
-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.
- ]]
-
-[[Octonions
-
-[@../octonion/html/index.html HTML Docs]
-
-[@http://sourceforge.net/projects/boost/files/boost-docs/
-PDF Docs]]
- [
-Octonions, like [@../quaternion/html/index.html quaternions], are a relative of complex numbers.
-
-Octonions see some use in theoretical physics.
-
-In practical terms, an octonion is simply an octuple of real numbers __octulple,
-which we can write in the form __oct_formula, where ['[^i]], ['[^j]] and ['[^k]]
-are the same objects as for quaternions, and ['[^e']], ['[^i']], ['[^j']] and ['[^k']]
-are distinct objects which play essentially the same kind of role as ['[^i]] (or ['[^j]] or ['[^k]]).
-
-Addition and a multiplication is defined on the set of octonions,
-which generalize their quaternionic counterparts. The main novelty this time
-is that [*the multiplication is not only not commutative, is now not even
-associative] (i.e. there are quaternions ['[^x]], ['[^y]] and ['[^z]] such that __oct_not_equal).
-A way of remembering things is by using the following multiplication table:
-
-[$../../octonion/graphics/octonion_blurb17.jpeg]
-
-Octonions (and their kin) are described in far more details in this other
-[@../../quaternion/TQE.pdf document]
-(with [@../../quaternion/TQE_EA.pdf errata and addenda]).
-
-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).
- ]]
-
-[[Special Functions
-
-[@../sf_and_dist/html/index.html HTML Docs]
-
-[@http://sourceforge.net/projects/boost/files/boost-docs/
-PDF Docs]]
-
- [ Provides a number of high quality special functions, initially
- these were concentrated on functions used in statistical applications
- along with those in the Technical Report on C++ Library Extensions.
-
- 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.
-
- All the implementations are fully generic and support the use of
- arbitrary "real-number" types, although they are optimised for
- use with types with known-about significand (or mantissa)
- sizes: typically float, double or long double. ]]
-
-[[Statistical Distributions
-
-[@../sf_and_dist/html/index.html HTML Docs]
-
-[@http://sourceforge.net/projects/boost/files/boost-docs/
-PDF Docs]]
-
- [Provides a reasonably comprehensive set of statistical distributions,
- upon which higher level statistical tests can be built.
-
- The initial focus is on the central univariate distributions.
- Both continuous (like normal & Fisher) and discrete (like binomial
- & Poisson) distributions are provided.
-
- A comprehensive tutorial is provided, along with a series of worked
- examples illustrating how the library is used to conduct statistical tests. ]]
-
-[[Quaternions
-
-[@../quaternion/html/index.html HTML Docs]
-
-[@http://sourceforge.net/projects/boost/files/boost-docs/
-PDF Docs]]
-
- [
-Quaternions are a relative of complex numbers.
-
-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 __R), the set of complex numbers (traditionally named __C),
-the set of quaternions (traditionally named __H) and the set of octonions
-(traditionally named __O), which possess interesting mathematical properties
-(chief among which is the fact that they are ['division algebras],
-['i.e.] where the following property is true: if ['[^y]] is an element of that
-algebra and is [*not equal to zero], then ['[^yx = yx']], where ['[^x]] and ['[^x']]
-denote elements of that algebra, implies that ['[^x = x']]).
-Each member of the hierarchy is a super-set of the former.
-
-One of the most important aspects of quaternions is that they provide an
-efficient way to parameterize rotations in __R3 (the usual three-dimensional space)
-and __R4.
-
-In practical terms, a quaternion is simply a quadruple of real numbers __quadrulple,
-which we can write in the form __quat_formula, where ['[^i]] is the same object as for complex numbers,
-and ['[^j]] and ['[^k]] are distinct objects which play essentially the same kind of role as ['[^i]].
-
-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 [*the multiplication is not commutative] (i.e. there are
-quaternions ['[^x]] and ['[^y]] such that __not_equal). A good mnemotechnical way of remembering
-things is by using the formula ['[^i*i = j*j = k*k = -1]].
-
-Quaternions (and their kin) are described in far more details in this
-other [@../../quaternion/TQE.pdf document]
-(with [@../../quaternion/TQE_EA.pdf errata and addenda]).
-
-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.
- ]]
-
+[def __domain_error [link domain_error domain_error]]
+[def __pole_error [link pole_error pole_error]]
+[def __overflow_error [link overflow_error overflow_error]]
+[def __underflow_error [link underflow_error underflow_error]]
+[def __denorm_error [link denorm_error denorm_error]]
+[def __evaluation_error [link evaluation_error evaluation_error]]
+[def __rounding_error [link rounding_error rounding_error]]
+[def __indeterminate_result_error [link indeterminate_result_error indeterminate_result_error]]
+[def __checked_narrowing_cast [link checked_narrowing_cast checked_narrowing_cast]]
+
+[def __arg_pomotion_rules [link math_toolkit.main_overview.result_type ['result type calculation rules]]]
+[def __sf_result [link math_toolkit.main_overview.result_type ['calculated-result-type]]]
+
+[/ The following macros expand to links to the various special functions
+and use the function's name as the link text.]
+
+[/Misc]
+[def __lanczos [link math_toolkit.backgrounders.lanczos Lanczos approximation]]
+[def __zero_error [link zero_error effectively zero error]]
+[def __relative_error [link math_toolkit.backgrounders.relative_error relative zero error]]
+[def __root_finding_with_derivatives [link math_toolkit.toolkit.internals1.roots root-finding with derivatives]]
+
+[/gammas]
+[def __lgamma [link math_toolkit.special.sf_gamma.lgamma lgamma]]
+[def __digamma [link math_toolkit.special.sf_gamma.digamma digamma]]
+[def __tgamma_ratio [link math_toolkit.special.sf_gamma.gamma_ratios tgamma_ratio]]
+[def __tgamma_delta_ratio [link math_toolkit.special.sf_gamma.gamma_ratios tgamma_delta_ratio]]
+[def __tgamma [link math_toolkit.special.sf_gamma.tgamma tgamma]]
+[def __tgamma1pm1 [link math_toolkit.special.sf_gamma.tgamma tgamma1pm1]]
+[def __tgamma_lower [link math_toolkit.special.sf_gamma.igamma tgamma_lower]]
+[def __gamma_p [link math_toolkit.special.sf_gamma.igamma gamma_p]]
+[def __gamma_q [link math_toolkit.special.sf_gamma.igamma gamma_q]]
+[def __gamma_q_inv [link math_toolkit.special.sf_gamma.igamma_inv gamma_q_inv]]
+[def __gamma_p_inv [link math_toolkit.special.sf_gamma.igamma_inv gamma_p_inv]]
+[def __gamma_q_inva [link math_toolkit.special.sf_gamma.igamma_inv gamma_q_inva]]
+[def __gamma_p_inva [link math_toolkit.special.sf_gamma.igamma_inv gamma_p_inva]]
+[def __gamma_p_derivative [link math_toolkit.special.sf_gamma.gamma_derivatives gamma_p_derivative]]
+
+[/factorials]
+[def __factorial [link math_toolkit.special.factorials.sf_factorial factorial]]
+[def __unchecked_factorial [link math_toolkit.special.factorials.sf_factorial unchecked_factorial]]
+[def __max_factorial [link math_toolkit.special.factorials.sf_factorial max_factorial]]
+[def __double_factorial [link math_toolkit.special.factorials.sf_double_factorial double_factorial]]
+[def __rising_factorial [link math_toolkit.special.factorials.sf_rising_factorial rising_factorial]]
+[def __falling_factorial [link math_toolkit.special.factorials.sf_falling_factorial falling_factorial]]
+
+[/error functions]
+[def __erf [link math_toolkit.special.sf_erf.error_function erf]]
+[def __erfc [link math_toolkit.special.sf_erf.error_function erfc]]
+[def __erf_inv [link math_toolkit.special.sf_erf.error_inv erf_inv]]
+[def __erfc_inv [link math_toolkit.special.sf_erf.error_inv erfc_inv]]
+
+[/beta functions]
+[def __beta [link math_toolkit.special.sf_beta.beta_function beta]]
+[def __beta3 [link math_toolkit.special.sf_beta.ibeta_function beta]]
+[def __betac [link math_toolkit.special.sf_beta.ibeta_function betac]]
+[def __ibeta [link math_toolkit.special.sf_beta.ibeta_function ibeta]]
+[def __ibetac [link math_toolkit.special.sf_beta.ibeta_function ibetac]]
+[def __ibeta_inv [link math_toolkit.special.sf_beta.ibeta_inv_function ibeta_inv]]
+[def __ibetac_inv [link math_toolkit.special.sf_beta.ibeta_inv_function ibetac_inv]]
+[def __ibeta_inva [link math_toolkit.special.sf_beta.ibeta_inv_function ibeta_inva]]
+[def __ibetac_inva [link math_toolkit.special.sf_beta.ibeta_inv_function ibetac_inva]]
+[def __ibeta_invb [link math_toolkit.special.sf_beta.ibeta_inv_function ibeta_invb]]
+[def __ibetac_invb [link math_toolkit.special.sf_beta.ibeta_inv_function ibetac_invb]]
+[def __ibeta_derivative [link math_toolkit.special.sf_beta.beta_derivative ibeta_derivative]]
+
+[/elliptic integrals]
+[def __ellint_rj [link math_toolkit.special.ellint.ellint_carlson ellint_rj]]
+[def __ellint_rf [link math_toolkit.special.ellint.ellint_carlson ellint_rf]]
+[def __ellint_rc [link math_toolkit.special.ellint.ellint_carlson ellint_rc]]
+[def __ellint_rd [link math_toolkit.special.ellint.ellint_carlson ellint_rd]]
+[def __ellint_1 [link math_toolkit.special.ellint.ellint_1 ellint_1]]
+[def __ellint_2 [link math_toolkit.special.ellint.ellint_2 ellint_2]]
+[def __ellint_3 [link math_toolkit.special.ellint.ellint_3 ellint_3]]
+
+[/Bessel functions]
+[def __cyl_bessel_j [link math_toolkit.special.bessel.bessel cyl_bessel_j]]
+[def __cyl_neumann [link math_toolkit.special.bessel.bessel cyl_neumann]]
+[def __cyl_bessel_i [link math_toolkit.special.bessel.mbessel cyl_bessel_i]]
+[def __cyl_bessel_k [link math_toolkit.special.bessel.mbessel cyl_bessel_k]]
+[def __sph_bessel [link math_toolkit.special.bessel.sph_bessel sph_bessel]]
+[def __sph_neumann [link math_toolkit.special.bessel.sph_bessel sph_neumann]]
+
+[/Hankel Functions]
+[def __cyl_hankel_1 [link math_toolkit.special.hankel.cyl_hankel cyl_hankel_1]]
+[def __cyl_hankel_2 [link math_toolkit.special.hankel.cyl_hankel cyl_hankel_2]]
+[def __sph_hankel_1 [link math_toolkit.special.hankel.sph_hankel sph_hankel_1]]
+[def __sph_hankel_2 [link math_toolkit.special.hankel.sph_hankel sph_hankel_2]]
+
+[/Airy Functions]
+[def __airy_ai [link math_toolkit.special.airy.ai airy_ai]]
+[def __airy_bi [link math_toolkit.special.airy.bi airy_bi]]
+[def __airy_bi_prime [link math_toolkit.special.airy.bip airy_bi_prime]]
+[def __airy_ai_prime [link math_toolkit.special.airy.aip airy_ai_prime]]
+
+[/Jacobi Elliptic Functions]
+[def __jacobi_elliptic [link math_toolkit.special.jacobi.jacobi_elliptic jacobi_elliptic]]
+[def __jacobi_cd [link math_toolkit.special.jacobi.jacobi_cd jacobi_cd]]
+[def __jacobi_cn [link math_toolkit.special.jacobi.jacobi_cn jacobi_cn]]
+[def __jacobi_cs [link math_toolkit.special.jacobi.jacobi_cs jacobi_cs]]
+[def __jacobi_dc [link math_toolkit.special.jacobi.jacobi_dc jacobi_dc]]
+[def __jacobi_dn [link math_toolkit.special.jacobi.jacobi_dn jacobi_dn]]
+[def __jacobi_ds [link math_toolkit.special.jacobi.jacobi_ds jacobi_ds]]
+[def __jacobi_nd [link math_toolkit.special.jacobi.jacobi_nd jacobi_nd]]
+[def __jacobi_nc [link math_toolkit.special.jacobi.jacobi_nc jacobi_nc]]
+[def __jacobi_ns [link math_toolkit.special.jacobi.jacobi_ns jacobi_ns]]
+[def __jacobi_sd [link math_toolkit.special.jacobi.jacobi_sd jacobi_sd]]
+[def __jacobi_sn [link math_toolkit.special.jacobi.jacobi_sn jacobi_sn]]
+[def __jacobi_sc [link math_toolkit.special.jacobi.jacobi_sc jacobi_sc]]
+
+[/sinus cardinals]
+[def __sinc_pi [link math_toolkit.special.sinc.sinc_pi sinc_pi]]
+[def __sinhc_pi [link math_toolkit.special.sinc.sinhc_pi sinhc_pi]]
+
+[/Inverse hyperbolics]
+[def __acosh [link math_toolkit.special.inv_hyper.acosh acosh]]
+[def __asinh [link math_toolkit.special.inv_hyper.asinh asinh]]
+[def __atanh [link math_toolkit.special.inv_hyper.atanh atanh]]
+
+[/classify]
+[def __fpclassify [link math_toolkit.special.fpclass fpclassify]]
+[def __isfinite [link math_toolkit.special.fpclass isfinite]]
+[def __isnan [link math_toolkit.special.fpclass isnan]]
+[def __isinf [link math_toolkit.special.fpclass isinf]]
+[def __isnormal [link math_toolkit.special.fpclass isnormal]]
+[def __fp_facets [link math_toolkit.utils.fp_facets nonfinite fp_facets]]
+
+[/powers etc]
+[def __expm1 [link math_toolkit.special.powers.expm1 expm1]]
+[def __log1p [link math_toolkit.special.powers.log1p log1p]]
+[def __cbrt [link math_toolkit.special.powers.cbrt cbrt]]
+[def __sqrt1pm1 [link math_toolkit.special.powers.sqrt1pm1 sqrt1pm1]]
+[def __powm1 [link math_toolkit.special.powers.powm1 powm1]]
+[def __hypot [link math_toolkit.special.powers.hypot hypot]]
+[def __pow [link math_toolkit.special.powers.ct_pow pow]]
+
+[/zeta]
+[def __zeta [link math_toolkit.special.zetas.zeta zeta]]
+
+[/expint]
+[def __expint_i [link math_toolkit.special.expint.expint_i zeta]]
+[def __expint_n [link math_toolkit.special.expint.expint_n zeta]]
+
+[/rounding]
+[def __round [link math_toolkit.utils.rounding.round round]]
+[def __lround [link math_toolkit.utils.rounding.round round]]
+[def __llround [link math_toolkit.utils.rounding.round round]]
+[def __trunc [link math_toolkit.utils.rounding.trunc trunc]]
+[def __modf [link math_toolkit.utils.rounding.modf modf]]
+
+[/polynomials]
+[def __laguerre [link math_toolkit.special.sf_poly.laguerre laguerre]]
+[def __legendre [link math_toolkit.special.sf_poly.legendre legendre_p]]
+[def __hermite [link math_toolkit.special.sf_poly.hermite hermite]]
+
+[/Misc]
+[def __expint [link math_toolkit.special.expint.expint_i expint]]
+[def __spherical_harmonic [link math_toolkit.special.sf_poly.sph_harm spherical_harmonic]]
+[def __owens_t [link math_toolkit.special.owens_t Owens T]]
+
+
+[/tools]
+[def __tuple [link math_toolkit.toolkit.internals1.tuples boost::math::tuple]]
+
+[/ distribution non-members]
+[def __cdf [link math.dist.cdf Cumulative Distribution Function]]
+[def __pdf [link math.dist.pdf Probability Density Function]]
+[def __ccdf [link math.dist.ccdf Complement of the Cumulative Distribution Function]]
+[def __quantile [link math.dist.quantile Quantile]]
+[def __quantile_c [link math.dist.quantile_c Quantile from the complement of the probability]]
+[def __mean [link math.dist.mean mean]]
+[def __median [link math.dist.median median]]
+[def __mode [link math.dist.mode mode]]
+[def __skewness [link math.dist.skewness skewness]]
+[def __kurtosis [link math.dist.kurtosis kurtosis]]
+[def __kurtosis_excess [link math.dist.kurtosis_excess kurtosis_excess]]
+[def __variance [link math.dist.variance variance]]
+[def __sd [link math.dist.sd standard deviation]]
+[def __hazard [link math.dist.hazard Hazard Function]]
+[def __chf [link math.dist.chf Cumulative Hazard Function]]
+[def __range [link math.dist.range range]]
+[def __support [link math.dist.support support]]
+
+[/ distribution def names end in distrib to avoid clashes]
+[def __beta_distrib [link math_toolkit.dist.dist_ref.dists.beta_dist Beta Distribution]]
+[def __binomial_distrib [link math_toolkit.dist.dist_ref.dists.binomial_dist Binomial Distribution]]
+[def __cauchy_distrib [link math_toolkit.dist.dist_ref.dists.cauchy_dist Cauchy Distribution]]
+[def __chi_squared_distrib [link math_toolkit.dist.dist_ref.dists.chi_squared_dist Chi Squared Distribution]]
+[def __extreme_distrib [link math_toolkit.dist.dist_ref.dists.extreme_dist Extreme Distributions]]
+[def __exp_distrib [link math_toolkit.dist.dist_ref.dists.exp_dist Exponential Distribution]]
+[def __F_distrib [link math_toolkit.dist.dist_ref.dists.f_dist Fisher F Distribution]]
+[def __gamma_distrib [link math_toolkit.dist.dist_ref.dists.gamma_dist Gamma Distribution]]
+[def __geometric_distrib [link math_toolkit.dist.dist_ref.dists.geometric_dist Geometric Distribution]]
+[def __hypergeometric_distrib [link math_toolkit.dist.dist_ref.dists.hypergeometric_dist hypergeometric Distribution]]
+[def __inverse_gamma_distrib [link math_toolkit.dist.dist_ref.dists.inverse_gamma_dist Inverse Gamma Distribution]]
+[def __inverse_gaussian_distrib [link math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist Inverse Gaussian Distribution]]
+[def __inverse_chi_squared_distrib [link math_toolkit.dist.dist_ref.dists.inverse_chi_squared_dist Inverse chi squared Distribution]]
+[def __laplace_distrib [link math_toolkit.dist.dist_ref.dists.laplace_dist Laplace Distribution]]
+[def __logistic_distrib [link math_toolkit.dist.dist_ref.dists.logistic_dist Logistic Distribution]]
+[def __lognormal_distrib [link math_toolkit.dist.dist_ref.dists.lognormal_dist Log-normal Distribution]]
+[def __negative_binomial_distrib [link math_toolkit.dist.dist_ref.dists.negative_binomial_dist Negative Binomial Distribution]]
+[def __non_central_chi_squared_distrib [link math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist Noncentral Chi Squared Distribution]]
+[def __non_central_beta_distrib [link math_toolkit.dist.dist_ref.dists.nc_beta_dist Noncentral Beta Distribution]]
+[def __non_central_F_distrib [link math_toolkit.dist.dist_ref.dists.nc_f_dist Noncentral F Distribution]]
+[def __non_central_T_distrib [link math_toolkit.dist.dist_ref.dists.nc_t_dist Noncentral T Distribution]]
+[def __non_central_t_distrib [link math_toolkit.dist.dist_ref.dists.nc_t_dist noncentral T distribution]]
+[def __normal_distrib [link math_toolkit.dist.dist_ref.dists.normal_dist Normal Distribution]]
+[def __poisson_distrib [link math_toolkit.dist.dist_ref.dists.poisson_dist Poisson Distribution]]
+[def __pareto_distrib [link math_toolkit.dist.dist_ref.dists.pareto_dist Pareto Distribution]]
+[def __students_t_distrib [link math_toolkit.dist.dist_ref.dists.students_t_dist Students t Distribution]]
+[def __skew_normal_distrib [link math_toolkit.dist.dist_ref.dists.skew_normal_dist Skew Normal Distribution]]
+[def __weibull_distrib [link math_toolkit.dist.dist_ref.dists.weibull_dist Weibull Distribution]]
+
+[/links to policy]
+[def __Policy [link math_toolkit.policy Policy]] [/ Used in distribution template specifications]
+[def __policy_section [link math_toolkit.policy Policies]] [/ Used in text to refer to.]
+[def __policy_class [link math_toolkit.policy.pol_ref.pol_ref_ref policies::policy<>]]
+[def __math_undefined [link math_toolkit.policy.pol_ref.assert_undefined mathematically undefined function]]
+[def __policy_ref [link math_toolkit.policy.pol_ref policy reference]]
+[def __math_discrete [link math_toolkit.policy.pol_ref.discrete_quant_ref discrete functions]]
+[def __error_policy [link math_toolkit.policy.pol_ref.error_handling_policies error handling policies]]
+[def __changing_policy_defaults [link math_toolkit.policy.pol_ref.policy_defaults changing policies defaults]]
+[def __user_error_handling [link math_toolkit.policy.pol_tutorial.user_def_err_pol user error handling]]
+[def __promotion_policy [link math_toolkit.policy.pol_ref.internal_promotion internal promotion policy]]
+[def __precision_policy [link math_toolkit.policy.pol_ref.precision_pol precision policy]]
+[def __policy_macros [link math_toolkit.policy.pol_ref.policy_defaults Using Macros to Change the Policy Defaults]]
+
+[def __random_variate [@http://en.wikipedia.org/wiki/Random_variate random variate]]
+[def __random_variable [@http://en.wikipedia.org/wiki/Random_variable random variable]]
+[def __probability_distribution [@[@http://en.wikipedia.org/wiki/Probability_distribution probability_distribution]]
+
+[def __usual_accessors __cdf, __pdf, __quantile, __hazard,
+ __chf, __mean, __median, __mode, __variance, __sd, __skewness,
+ __kurtosis, __kurtosis_excess, __range and __support]
+
+[def __gsl [@http://www.gnu.org/software/gsl/ GSL-1.9]]
+[def __glibc [@http://www.gnu.org/software/libc/ GNU C Lib]]
+[def __hpc [@http://docs.hp.com/en/B9106-90010/index.html HP-UX C Library]]
+[def __cephes [@http://www.netlib.org/cephes/ Cephes]]
+[def __NTL [@http://www.shoup.net/ntl/ NTL A Library for doing Number Theory]]
+[def __NTL_RR [@http://shoup.net/ntl/doc/RR.txt NTL::RR]]
+[def __NTL_quad_float [@http://shoup.net/ntl/doc/quad_float.txt NTL::quad_float]]
+[def __MPFR [@http://www.mpfr.org/ GNU MPFR library]]
+[def __GMP [@http://gmplib.org/ GNU Multiple Precision Arithmetic Library]]
+[def __multiprecision [@http://www.boost.org/doc/libs/1_53_0_beta1/libs/multiprecision/doc/html/index.html Boost.Multiprecision]]
+[def __cpp_dec_float [@http://www.boost.org/doc/libs/1_53_0_beta1/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/cpp_dec_float.html cpp_dec_float]]
+[def __R [@http://www.r-project.org/ The R Project for Statistical Computing]]
+[def __godfrey [link godfrey Godfrey]]
+[def __pugh [link pugh Pugh]]
+[def __NaN [@http://en.wikipedia.org/wiki/NaN NaN]]
+[def __errno [@http://en.wikipedia.org/wiki/Errno `::errno`]]
+[def __Mathworld [@http://mathworld.wolfram.com Wolfram MathWorld]]
+[def __Mathematica [@http://www.wolfram.com/products/mathematica/index.html Wolfram Mathematica]]
+[def __WolframAlpha [@http://www.wolframalpha.com/ Wolfram Alpha]]
+[def __TOMS748 [@http://portal.acm.org/citation.cfm?id=210111 TOMS Algorithm 748: enclosing zeros of continuous functions]]
+[def __TOMS910 [@http://portal.acm.org/citation.cfm?id=1916469 TOMS Algorithm 910: A Portable C++ Multiple-Precision System for Special-Function Calculations]]
+[def __why_complements [link why_complements why complements?]]
+[def __complements [link complements complements]]
+[def __performance [link math_toolkit.perf performance]]
+[def __building [link math_toolkit.main_overview.building building libraries]]
+[def __e_float [@http://calgo.acm.org/910.zip e_float (TOMS Algorithm 910)]]
+[def __Abramowitz_Stegun M. Abramowitz and I. A. Stegun, Handbook of Mathematical Functions, NBS (1964)]
+[def _DMLF [@http://dlmf.nist.gov/ NIST Digital Library of Mathematical Functions]]
+
+[/ Some composite templates]
+[template super[x]'''<superscript>'''[x]'''</superscript>''']
+[template sub[x]'''<subscript>'''[x]'''</subscript>''']
+[template floor[x]'''&#x230A;'''[x]'''&#x230B;''']
+[template floorlr[x][lfloor][x][rfloor]]
+[template ceil[x] '''&#x2308;'''[x]'''&#x2309;''']
+
+[template header_file[file] [@../../../../../[file] [file]]]
+
+[template optional_policy[]
+The final __Policy 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
+[link math_toolkit.policy policy documentation for more details].]
+
+[template discrete_quantile_warning[NAME]
+[caution
+The [NAME] distribution is a discrete distribution: internally,
+functions like the `cdf` and `pdf` 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.
+
+The quantile function will by default return an integer result that has been
+/rounded outwards/. 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 /at least/ the requested
+coverage will be present in the central region, and /no more than/
+the requested coverage will be present in the tails.
+
+This behaviour can be changed so that the quantile functions are rounded
+differently, or even return a real-valued result using
+[link math_toolkit.policy.pol_overview Policies]. It is strongly
+recommended that you read the tutorial
+[link math_toolkit.policy.pol_tutorial.understand_dis_quant
+Understanding Quantiles of Discrete Distributions] before
+using the quantile function on the [NAME] distribution. The
+[link math_toolkit.policy.pol_ref.discrete_quant_ref reference docs]
+describe how to change the rounding policy
+for these distributions.
+] [/ caution]
+] [/ template discrete_quantile_warning]
+
+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.
+
+[section:main_overview Overview]
+[include overview/overview.qbk]
+[include overview/structure.qbk] [/getting about, directory and file structure.]
+[include overview/result_type_calc.qbk]
+[include overview/error_handling.qbk]
+
+[section:compilers_overview Compilers]
+[compilers_overview]
+[endsect]
+[include overview/config_macros.qbk]
+[section:pol_overview Policies]
+[policy_overview]
+[endsect]
+
+[include overview/thread_safety.qbk]
+
+[section:perf_over Performance]
+[performance_overview]
+[endsect]
+[include overview/building.qbk]
+[section:history1 History and What's New]
+[history]
+[endsect]
+[section:tr1 C99 and C++ TR1 C-style Functions]
+[tr1_overview]
+[endsect]
+[include overview/faq.qbk]
+[include overview/contact_info.qbk]
+
+[endsect] [/section:main_overview Overview]
+
+[section:dist Statistical Distributions and Functions]
+[include distributions/dist_tutorial.qbk]
+[include distributions/dist_reference.qbk] [/includes all individual distribution.qbk files]
+[endsect] [/section:dist Statistical Distributions and Functions]
+
+[section:special Special Functions]
+
+[section:sf_gamma Gamma Functions]
+[include sf/tgamma.qbk]
+[include sf/lgamma.qbk]
+[include sf/digamma.qbk]
+[include sf/gamma_ratios.qbk]
+[include sf/igamma.qbk]
+[include sf/igamma_inv.qbk]
+[include sf/gamma_derivatives.qbk]
+[endsect] [/section:sf_gamma Gamma Functions]
+
+[include sf/factorials.qbk]
+
+[section:sf_beta Beta Functions]
+[include sf/beta.qbk]
+[include sf/ibeta.qbk]
+[include sf/ibeta_inv.qbk]
+[include sf/beta_derivative.qbk]
+[endsect] [/section:sf_beta Beta Functions]
+
+[section:sf_erf Error Functions]
+[include sf/erf.qbk]
+[include sf/erf_inv.qbk]
+[endsect] [/section:sf_erf Error Functions]
+
+[section:sf_poly Polynomials]
+[include sf/legendre.qbk]
+[include sf/laguerre.qbk]
+[include sf/hermite.qbk]
+[include sf/spherical_harmonic.qbk]
+[endsect] [/section:sf_poly Polynomials]
+
+[section:bessel Bessel Functions]
+[include sf/bessel_introduction.qbk]
+[include sf/bessel_jy.qbk]
+[include sf/bessel_ik.qbk]
+[include sf/bessel_spherical.qbk]
+[endsect] [/section:bessel Bessel Functions]
+
+[/Hankel functions]
+[include sf/hankel.qbk]
+
+[/Airy Functions]
+[include sf/airy.qbk]
+
+[section:ellint Elliptic Integrals]
+[include sf/ellint_introduction.qbk]
+[include sf/ellint_carlson.qbk]
+[include sf/ellint_legendre.qbk]
+[endsect] [/section:ellint Elliptic Integrals]
+
+[include sf/jacobi_elliptic.qbk]
+
+[section:zetas Zeta Functions]
+[include sf/zeta.qbk]
+[endsect]
+
+[include sf/expint.qbk]
+
+[include sf/powers.qbk]
+[include sf/sinc.qbk]
+[include sf/inv_hyper.qbk]
+
+[include sf/owens_t.qbk]
+
+[endsect] [/section:special Special Functions]
+
+[section:utils Floating Point Utilities]
+[include fp_utilities/rounding_func.qbk]
+[include fp_utilities/fpclassify.qbk]
+[include fp_utilities/sign.qbk]
+[include fp_utilities/fp_facets.qbk]
+[include fp_utilities/float_next.qbk]
+[endsect]
+
+[section:extern_c TR1 and C99 external "C" Functions]
+[section:tr1 C99 and TR1 C Functions Overview]
+[tr1_overview]
+[endsect]
+[include tr1/c99_ref.qbk]
+[include tr1/tr1_ref.qbk]
+[endsect]
+
+[include constants/constants.qbk]
+
+[include complex/complex-tr1.qbk]
+[include quaternion/math-quaternion.qbk]
+[include octonion/math-octonion.qbk]
+[include gcd/math-gcd.qbk]
+
+[section:toolkit Internals and Internal Details]
+
+[include internals/internals_overview.qbk]
+
+[section:internals1 Utilities & internals]
+[include internals/series.qbk]
+[include internals/fraction.qbk]
+[include internals/rational.qbk]
+[include internals/roots.qbk]
+[include internals/roots_without_derivatives.qbk]
+[include internals/minima.qbk]
+[include internals/tuple.qbk]
+[endsect] [/section:internals1 Utilities & internals]
+
+[section:internals2 Testing and Development]
+[include internals/polynomial.qbk]
+[include internals/minimax.qbk]
+[include internals/relative_error.qbk] [/ uncertainty of floating-point calculations.]
+[include internals/test_data.qbk]
+[endsect] [/section:internals2 Testing and Development]
+
+[endsect] [/section:toolkit Toolkit]
+
+[section:using_udt Use with User-Defined Floating-Point Types]
+[include concepts/concepts.qbk]
+[endsect] [/section:using_udt Use with User Defined Floating-Point Types]
+
+[include policies/policy.qbk]
+
+[include performance/performance.qbk]
+
+[section:backgrounders Backgrounders]
+[include background/implementation.qbk]
+[include background/error.qbk] [/relative error NOT handling]
+[include background/lanczos.qbk]
+[include background/remez.qbk]
+[include background/references.qbk]
+[endsect] [/section:backgrounders Backgrounders]
+
+[section:status Library Status]
+[section:history1 History and What's New]
+[history]
+[endsect]
+[include overview/issues.qbk]
+[include overview/credits.qbk]
+[/include test_HTML4_symbols.qbk]
+[/include test_Latin1_symbols.qbk]
+
+[endsect] [/section:status Status and Roadmap]
+
+[section:indexes Indexes]
+
+[named_index function_name Function Index]
+[named_index class_name Class Index]
+[named_index typedef_name Typedef Index]
+[named_index macro_name Macro Index]
+[index]
+
+[endsect]
+
+[/ math.qbk
+ Copyright 2008, 2010, 2012 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
 ]
 
-The following Boost libraries are also mathematically oriented:
-
-[table
-[[Library][Description]]
 
- [[[@../../../integer/index.html Integer]]
- [Headers to ease dealing with integral types.]]
-
- [[[@../../../numeric/interval/doc/interval.htm Interval]]
- [As implied by its name, this library is intended to help manipulating
- mathematical intervals. It consists of a single header
- <boost/numeric/interval.hpp> and principally a type which can be
- used as interval<T>. ]]
-
- [[[@../../../multi_array/doc/index.html Multi Array]]
- [Boost.MultiArray provides a generic N-dimensional array concept
- definition and common implementations of that interface.]]
-
- [[[@../../../numeric/conversion/index.html Numeric.Conversion]]
- [The Boost Numeric Conversion library is a collection of tools to
- describe and perform conversions between values of different numeric types.]]
-
- [[[@../../../utility/operators.htm Operators]]
- [The header <boost/operators.hpp> supplies several sets of class
- templates (in namespace boost). These templates define operators at
- namespace scope in terms of a minimal number of fundamental
- operators provided by the class.]]
-
- [[[@../../../random/index.html Random]]
- [Random numbers are useful in a variety of applications. The Boost
- Random Number Library (Boost.Random for short) provides a vast variety
- of generators and distributions to produce random numbers having useful
- properties, such as uniform distribution.]]
-
- [[[@../../../rational/index.html Rational]]
- [The header rational.hpp provides an implementation of rational numbers.
- The implementation is template-based, in a similar manner to the
- standard complex number class.]]
-
- [[[@../../../numeric/ublas/doc/index.htm uBLAS]]
- [uBLAS is a C++ template class library that provides BLAS level 1, 2, 3
- functionality for dense, packed and sparse matrices. The design and
- implementation unify mathematical notation via operator overloading and
- efficient code generation via expression templates.]]
-
-]
 

Deleted: sandbox/math/libs/math/doc/octonion/Jamfile.v2
==============================================================================
--- sandbox/math/libs/math/doc/octonion/Jamfile.v2 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,66 +0,0 @@
-
-# Copyright John Maddock 2005. Use, modification, and distribution are
-# subject to the Boost Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-using quickbook ;
-
-path-constant images_location : html ;
-
-xml octonion : math-octonion.qbk ;
-boostbook standalone
- :
- octonion
- :
- # Path for links to Boost:
- <xsl:param>boost.root=../../../../..
-
- # Some general style settings:
- <xsl:param>table.footnote.number.format=1
- <xsl:param>footnote.number.format=1
-
- # HTML options first:
- # Use graphics not text for navigation:
- <xsl:param>navig.graphics=1
- # How far down we chunk nested sections, basically all of them:
- <xsl:param>chunk.section.depth=10
- # Don't put the first section on the same page as the TOC:
- <xsl:param>chunk.first.sections=1
- # How far down sections get TOC's
- <xsl:param>toc.section.depth=10
- # Max depth in each TOC:
- <xsl:param>toc.max.depth=4
- # How far down we go with TOC's
- <xsl:param>generate.section.toc.level=10
- #<xsl:param>root.filename="sf_dist_and_tools"
-
- # PDF Options:
- # TOC Generation: this is needed for FOP-0.9 and later:
- # <xsl:param>fop1.extensions=1
- <format>pdf:<xsl:param>xep.extensions=1
- # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
- <format>pdf:<xsl:param>fop.extensions=0
- <format>pdf:<xsl:param>fop1.extensions=0
- # No indent on body text:
- <format>pdf:<xsl:param>body.start.indent=0pt
- # Margin size:
- <format>pdf:<xsl:param>page.margin.inner=0.5in
- # Margin size:
- <format>pdf:<xsl:param>page.margin.outer=0.5in
- # Paper type = A4
- <format>pdf:<xsl:param>paper.type=A4
- # Yes, we want graphics for admonishments:
- <xsl:param>admon.graphics=1
- # Set this one for PDF generation *only*:
- # default pnd graphics are awful in PDF form,
- # better use SVG's instead:
- <format>pdf:<xsl:param>admon.graphics.extension=".svg"
- <format>pdf:<xsl:param>use.role.for.mediaobject=1
- <format>pdf:<xsl:param>preferred.mediaobject.role=print
- <format>pdf:<xsl:param>img.src.path=$(images_location)/
- <format>pdf:<xsl:param>draft.mode="no"
- <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/math/doc/octonion/html
- ;
-
-
-

Modified: sandbox/math/libs/math/doc/octonion/math-octonion.qbk
==============================================================================
--- sandbox/math/libs/math/doc/octonion/math-octonion.qbk (original)
+++ sandbox/math/libs/math/doc/octonion/math-octonion.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,16 +1,3 @@
-[article Boost.Octonions
- [quickbook 1.3]
- [copyright 2001-2003 Hubert Holin]
- [purpose Octonions]
- [license
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- [@http://www.boost.org/LICENSE_1_0.txt http://www.boost.org/LICENSE_1_0.txt])
- ]
- [authors [Holin, Hubert]]
- [category math]
- [last-revision $Date: 2006-12-29 11:08:32 +0000 (Fri, 29 Dec 2006) $]
-]
 
 [def __R ['[*R]]]
 [def __C ['[*C]]]
@@ -24,23 +11,9 @@
 [def __oct_quat_formula ['[^o = ('''&#x03B1; + &#x03B2;i + &#x03B3;j + &#x03B4;k) + (&#x03B5; + &#x03B6;i + &#x03B7;j - &#x03B8;j)e' ''']]]
 [def __oct_not_equal ['[^x(yz) '''&#x2260;''' (xy)z]]]
 
-[def __asinh [link boost_quaternions.math_special_functions.asinh asinh]]
-[def __acosh [link boost_quaternions.math_special_functions.acosh acosh]]
-[def __atanh [link boost_quaternions.math_special_functions.atanh atanh]]
-[def __sinc_pi [link boost_quaternions.math_special_functions.sinc_pi sinc_pi]]
-[def __sinhc_pi [link boost_quaternions.math_special_functions.sinhc_pi sinhc_pi]]
-
-[def __log1p [link boost_quaternions.math_special_functions.log1p log1p]]
-[def __expm1 [link boost_quaternions.math_special_functions.expm1 expm1]]
-[def __hypot [link boost_quaternions.math_special_functions.hypot hypot]]
-
-This manual is also available in
-[@http://sourceforge.net/projects/boost/files/boost-docs/
-printer friendly PDF format].
+[section:octonions Octonions]
 
-[section Octonions]
-
-[section Overview]
+[section:overview Overview]
 
 Octonions, like [@../../quaternion/html/index.html quaternions], are a relative of complex numbers.
 
@@ -71,113 +44,113 @@
 
 [endsect]
 
-[section Header File]
+[section:header Header File]
 
 The interface and implementation are both supplied by the header file
 [@../../../../../boost/math/octonion.hpp octonion.hpp].
 
 [endsect]
 
-[section Synopsis]
+[section:synopsis Synopsis]
 
    namespace boost{ namespace math{
 
- template<typename T> class ``[link boost_octonions.octonions.template_class_octonion octonion]``;
- template<> class ``[link boost_octonions.octonions.octonion_specializations octonion<float>]``;
- template<> class ``[link boost_octonions.octonion_double octonion<double>]``;
- template<> class ``[link boost_octonions.octonion_long_double octonion<long double>]``;
+ template<typename T> class ``[link math_toolkit.octonions.octonion octonion]``;
+ template<> class ``[link math_toolkit.octonions.oct_specialization octonion<float>]``;
+ template<> class ``[link math_toolkit.octonion_double octonion<double>]``;
+ template<> class ``[link math_toolkit.octonion_long_double octonion<long double>]``;
 
    // operators
 
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_addition_operators operator +]`` (T const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_addition_operators operator +]`` (octonion<T> const & lhs, T const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_addition_operators operator +]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_addition_operators operator +]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_addition_operators operator +]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_addition_operators operator +]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_addition_operators operator +]`` (octonion<T> const & lhs, octonion<T> const & rhs);
-
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_subtraction_operators operator -]`` (T const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_subtraction_operators operator -]`` (octonion<T> const & lhs, T const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_subtraction_operators operator -]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_subtraction_operators operator -]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_subtraction_operators operator -]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_subtraction_operators operator -]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_subtraction_operators operator -]`` (octonion<T> const & lhs, octonion<T> const & rhs);
-
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_multiplication_operators operator *]`` (T const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_multiplication_operators operator *]`` (octonion<T> const & lhs, T const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_multiplication_operators operator *]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_multiplication_operators operator *]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_multiplication_operators operator *]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_multiplication_operators operator *]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_multiplication_operators operator *]`` (octonion<T> const & lhs, octonion<T> const & rhs);
-
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_division_operators operator /]`` (T const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_division_operators operator /]`` (octonion<T> const & lhs, T const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_division_operators operator /]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_division_operators operator /]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_division_operators operator /]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_division_operators operator /]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.binary_division_operators operator /]`` (octonion<T> const & lhs, octonion<T> const & rhs);
-
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.unary_plus_and_minus_operators operator +]`` (octonion<T> const & o);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.non_mem.unary_plus_and_minus_operators operator -]`` (octonion<T> const & o);
-
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_equality_operators operator ==]`` (T const & lhs, octonion<T> const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_equality_operators operator ==]`` (octonion<T> const & lhs, T const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_equality_operators operator ==]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_equality_operators operator ==]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_equality_operators operator ==]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_equality_operators operator ==]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_equality_operators operator ==]`` (octonion<T> const & lhs, octonion<T> const & rhs);
-
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_inequality_operators operator !=]`` (T const & lhs, octonion<T> const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_inequality_operators operator !=]`` (octonion<T> const & lhs, T const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_inequality_operators operator !=]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_inequality_operators operator !=]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_inequality_operators operator !=]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_inequality_operators operator !=]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
- template<typename T> bool ``[link boost_octonions.octonions.non_mem.binary_inequality_operators operator !=]`` (octonion<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_addition_operators operator +]`` (T const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_addition_operators operator +]`` (octonion<T> const & lhs, T const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_addition_operators operator +]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_addition_operators operator +]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_addition_operators operator +]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_addition_operators operator +]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_addition_operators operator +]`` (octonion<T> const & lhs, octonion<T> const & rhs);
+
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_subtraction_operators operator -]`` (T const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_subtraction_operators operator -]`` (octonion<T> const & lhs, T const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_subtraction_operators operator -]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_subtraction_operators operator -]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_subtraction_operators operator -]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_subtraction_operators operator -]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_subtraction_operators operator -]`` (octonion<T> const & lhs, octonion<T> const & rhs);
+
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_multiplication_operators operator *]`` (T const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_multiplication_operators operator *]`` (octonion<T> const & lhs, T const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_multiplication_operators operator *]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_multiplication_operators operator *]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_multiplication_operators operator *]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_multiplication_operators operator *]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_multiplication_operators operator *]`` (octonion<T> const & lhs, octonion<T> const & rhs);
+
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_division_operators operator /]`` (T const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_division_operators operator /]`` (octonion<T> const & lhs, T const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_division_operators operator /]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_division_operators operator /]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_division_operators operator /]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_division_operators operator /]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.binary_division_operators operator /]`` (octonion<T> const & lhs, octonion<T> const & rhs);
+
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.unary_plus_and_minus_operators operator +]`` (octonion<T> const & o);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.non_mem.unary_plus_and_minus_operators operator -]`` (octonion<T> const & o);
+
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_equality_operators operator ==]`` (T const & lhs, octonion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_equality_operators operator ==]`` (octonion<T> const & lhs, T const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_equality_operators operator ==]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_equality_operators operator ==]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_equality_operators operator ==]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_equality_operators operator ==]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_equality_operators operator ==]`` (octonion<T> const & lhs, octonion<T> const & rhs);
+
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_inequality_operators operator !=]`` (T const & lhs, octonion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_inequality_operators operator !=]`` (octonion<T> const & lhs, T const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_inequality_operators operator !=]`` (::std::complex<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_inequality_operators operator !=]`` (octonion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_inequality_operators operator !=]`` (::boost::math::quaternion<T> const & lhs, octonion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_inequality_operators operator !=]`` (octonion<T> const & lhs, ::boost::math::quaternion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.octonions.non_mem.binary_inequality_operators operator !=]`` (octonion<T> const & lhs, octonion<T> const & rhs);
 
    template<typename T, typename charT, class traits>
- ::std::basic_istream<charT,traits> & ``[link boost_octonions.octonions.non_mem.stream_extractor operator >>]`` (::std::basic_istream<charT,traits> & is, octonion<T> & o);
+ ::std::basic_istream<charT,traits> & ``[link math_toolkit.octonions.non_mem.stream_extractor operator >>]`` (::std::basic_istream<charT,traits> & is, octonion<T> & o);
 
    template<typename T, typename charT, class traits>
- ::std::basic_ostream<charT,traits> & ``[link boost_octonions.octonions.non_mem.stream_inserter operator <<]`` (::std::basic_ostream<charT,traits> & os, octonion<T> const & o);
+ ::std::basic_ostream<charT,traits> & ``[link math_toolkit.octonions.non_mem.stream_inserter operator <<]`` (::std::basic_ostream<charT,traits> & os, octonion<T> const & o);
 
    // values
 
- template<typename T> T ``[link boost_octonions.octonions.octonion_value_operations.real_and_unreal real]``(octonion<T> const & o);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.octonion_value_operations.real_and_unreal unreal]``(octonion<T> const & o);
+ template<typename T> T ``[link math_toolkit.octonions.oct_value_ops.real_and_unreal real]``(octonion<T> const & o);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_value_ops.real_and_unreal unreal]``(octonion<T> const & o);
 
- template<typename T> T ``[link boost_octonions.octonions.octonion_value_operations.sup sup]``(octonion<T> const & o);
- template<typename T> T ``[link boost_octonions.octonions.octonion_value_operations.l1 l1]``(octonion<T>const & o);
- template<typename T> T ``[link boost_octonions.octonions.octonion_value_operations.abs abs]``(octonion<T> const & o);
- template<typename T> T ``[link boost_octonions.octonions.octonion_value_operations.norm norm]``(octonion<T>const & o);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.octonion_value_operations.conj conj]``(octonion<T> const & o);
-
- template<typename T> octonion<T> ``[link boost_octonions.octonions.oct_create spherical]``(T const & rho, T const & theta, T const & phi1, T const & phi2, T const & phi3, T const & phi4, T const & phi5, T const & phi6);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.oct_create multipolar]``(T const & rho1, T const & theta1, T const & rho2, T const & theta2, T const & rho3, T const & theta3, T const & rho4, T const & theta4);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.oct_create cylindrical]``(T const & r, T const & angle, T const & h1, T const & h2, T const & h3, T const & h4, T const & h5, T const & h6);
+ template<typename T> T ``[link math_toolkit.octonions.oct_value_ops.sup sup]``(octonion<T> const & o);
+ template<typename T> T ``[link math_toolkit.octonions.oct_value_ops.l1 l1]``(octonion<T>const & o);
+ template<typename T> T ``[link math_toolkit.octonions.oct_value_ops.abs abs]``(octonion<T> const & o);
+ template<typename T> T ``[link math_toolkit.octonions.oct_value_ops.norm norm]``(octonion<T>const & o);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_value_ops.conj conj]``(octonion<T> const & o);
+
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_create spherical]``(T const & rho, T const & theta, T const & phi1, T const & phi2, T const & phi3, T const & phi4, T const & phi5, T const & phi6);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_create multipolar]``(T const & rho1, T const & theta1, T const & rho2, T const & theta2, T const & rho3, T const & theta3, T const & rho4, T const & theta4);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_create cylindrical]``(T const & r, T const & angle, T const & h1, T const & h2, T const & h3, T const & h4, T const & h5, T const & h6);
 
    // transcendentals
 
- template<typename T> octonion<T> ``[link boost_octonions.octonions.octonions_transcendentals.exp exp]``(octonion<T> const & o);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.octonions_transcendentals.cos cos]``(octonion<T> const & o);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.octonions_transcendentals.sin sin]``(octonion<T> const & o);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.octonions_transcendentals.tan tan]``(octonion<T> const & o);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.octonions_transcendentals.cosh cosh]``(octonion<T> const & o);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.octonions_transcendentals.sinh sinh]``(octonion<T> const & o);
- template<typename T> octonion<T> ``[link boost_octonions.octonions.octonions_transcendentals.tanh tanh]``(octonion<T> const & o);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_trans.exp exp]``(octonion<T> const & o);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_trans.cos cos]``(octonion<T> const & o);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_trans.sin sin]``(octonion<T> const & o);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_trans.tan tan]``(octonion<T> const & o);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_trans.cosh cosh]``(octonion<T> const & o);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_trans.sinh sinh]``(octonion<T> const & o);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_trans.tanh tanh]``(octonion<T> const & o);
 
- template<typename T> octonion<T> ``[link boost_octonions.octonions.octonions_transcendentals.pow pow]``(octonion<T> const & o, int n);
+ template<typename T> octonion<T> ``[link math_toolkit.octonions.oct_trans.pow pow]``(octonion<T> const & o, int n);
 
    } } // namespaces
    
 [endsect]
 
-[section Template Class octonion]
+[section:octonion Template Class octonion]
 
    namespace boost{ namespace math {
  
@@ -187,69 +160,69 @@
    public:
       typedef T value_type;
 
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(T const & requested_a = T(), T const & requested_b = T(), T const & requested_c = T(), T const & requested_d = T(), T const & requested_e = T(), T const & requested_f = T(), T const & requested_g = T(), T const & requested_h = T());
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(::std::complex<T> const & z0, ::std::complex<T> const & z1 = ::std::complex<T>(), ::std::complex<T> const & z2 = ::std::complex<T>(), ::std::complex<T> const & z3 = ::std::complex<T>());
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(::boost::math::quaternion<T> const & q0, ::boost::math::quaternion<T> const & q1 = ::boost::math::quaternion<T>());
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(T const & requested_a = T(), T const & requested_b = T(), T const & requested_c = T(), T const & requested_d = T(), T const & requested_e = T(), T const & requested_f = T(), T const & requested_g = T(), T const & requested_h = T());
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(::std::complex<T> const & z0, ::std::complex<T> const & z1 = ::std::complex<T>(), ::std::complex<T> const & z2 = ::std::complex<T>(), ::std::complex<T> const & z3 = ::std::complex<T>());
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(::boost::math::quaternion<T> const & q0, ::boost::math::quaternion<T> const & q1 = ::boost::math::quaternion<T>());
       template<typename X>
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(octonion<X> const & a_recopier);
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(octonion<X> const & a_recopier);
 
- T ``[link boost_octonions.octonions.octonion_member_functions.real_and_unreal_parts real]``() const;
- octonion<T> ``[link boost_octonions.octonions.octonion_member_functions.real_and_unreal_parts unreal]``() const;
+ T ``[link math_toolkit.octonions.mem_fun.real_and_unreal_parts real]``() const;
+ octonion<T> ``[link math_toolkit.octonions.mem_fun.real_and_unreal_parts unreal]``() const;
 
- T ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_1]``() const;
- T ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_2]``() const;
- T ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_3]``() const;
- T ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_4]``() const;
- T ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_5]``() const;
- T ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_6]``() const;
- T ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_7]``() const;
- T ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_8]``() const;
+ T ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_1]``() const;
+ T ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_2]``() const;
+ T ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_3]``() const;
+ T ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_4]``() const;
+ T ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_5]``() const;
+ T ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_6]``() const;
+ T ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_7]``() const;
+ T ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_8]``() const;
 
- ::std::complex<T> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_1]``() const;
- ::std::complex<T> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_2]``() const;
- ::std::complex<T> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_3]``() const;
- ::std::complex<T> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_4]``() const;
+ ::std::complex<T> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_1]``() const;
+ ::std::complex<T> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_2]``() const;
+ ::std::complex<T> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_3]``() const;
+ ::std::complex<T> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_4]``() const;
 
- ::boost::math::quaternion<T> ``[link boost_octonions.octonions.octonion_member_functions.individual_quaternion_components H_component_1]``() const;
- ::boost::math::quaternion<T> ``[link boost_octonions.octonions.octonion_member_functions.individual_quaternion_components H_component_2]``() const;
+ ::boost::math::quaternion<T> ``[link math_toolkit.octonions.mem_fun.individual_quaternion_components H_component_1]``() const;
+ ::boost::math::quaternion<T> ``[link math_toolkit.octonions.mem_fun.individual_quaternion_components H_component_2]``() const;
 
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (octonion<T> const & a_affecter);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (octonion<T> const & a_affecter);
       template<typename X>
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (octonion<X> const & a_affecter);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (T const & a_affecter);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (::std::complex<T> const & a_affecter);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (::boost::math::quaternion<T> const & a_affecter);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (octonion<X> const & a_affecter);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (T const & a_affecter);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (::std::complex<T> const & a_affecter);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (::boost::math::quaternion<T> const & a_affecter);
 
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (T const & rhs);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (::std::complex<T> const & rhs);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (::boost::math::quaternion<T> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (T const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (::std::complex<T> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (::boost::math::quaternion<T> const & rhs);
       template<typename X>
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (octonion<X> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (octonion<X> const & rhs);
 
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (T const & rhs);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (::std::complex<T> const & rhs);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (::boost::math::quaternion<T> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (T const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (::std::complex<T> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (::boost::math::quaternion<T> const & rhs);
       template<typename X>
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (octonion<X> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (octonion<X> const & rhs);
 
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (T const & rhs);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (::std::complex<T> const & rhs);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (::boost::math::quaternion<T> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (T const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (::std::complex<T> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (::boost::math::quaternion<T> const & rhs);
       template<typename X>
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (octonion<X> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (octonion<X> const & rhs);
 
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (T const & rhs);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (::std::complex<T> const & rhs);
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (::boost::math::quaternion<T> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (T const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (::std::complex<T> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (::boost::math::quaternion<T> const & rhs);
       template<typename X>
- octonion<T> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (octonion<X> const & rhs);
+ octonion<T> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (octonion<X> const & rhs);
    };
 
    } } // namespaces
    
 [endsect]
 
-[section Octonion Specializations]
+[section:oct_specialization Octonion Specializations]
 
    namespace boost{ namespace math{
    
@@ -259,65 +232,65 @@
    public:
       typedef float value_type;
 
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(float const & requested_a = 0.0f, float const & requested_b = 0.0f, float const & requested_c = 0.0f, float const & requested_d = 0.0f, float const & requested_e = 0.0f, float const & requested_f = 0.0f, float const & requested_g = 0.0f, float const & requested_h = 0.0f);
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(::std::complex<float> const & z0, ::std::complex<float> const & z1 = ::std::complex<float>(), ::std::complex<float> const & z2 = ::std::complex<float>(), ::std::complex<float> const & z3 = ::std::complex<float>());
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(::boost::math::quaternion<float> const & q0, ::boost::math::quaternion<float> const & q1 = ::boost::math::quaternion<float>());
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(octonion<double> const & a_recopier);
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(octonion<long double> const & a_recopier);
-
- float ``[link boost_octonions.octonions.octonion_member_functions.real_and_unreal_parts real]``() const;
- octonion<float> ``[link boost_octonions.octonions.octonion_member_functions.real_and_unreal_parts unreal]``() const;
-
- float ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_1]``() const;
- float ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_2]``() const;
- float ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_3]``() const;
- float ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_4]``() const;
- float ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_5]``() const;
- float ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_6]``() const;
- float ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_7]``() const;
- float ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_8]``() const;
-
- ::std::complex<float> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_1]``() const;
- ::std::complex<float> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_2]``() const;
- ::std::complex<float> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_3]``() const;
- ::std::complex<float> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_4]``() const;
-
- ::boost::math::quaternion<float> ``[link boost_octonions.octonions.octonion_member_functions.individual_quaternion_components H_component_1]``() const;
- ::boost::math::quaternion<float> ``[link boost_octonions.octonions.octonion_member_functions.individual_quaternion_components H_component_2]``() const;
-
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (octonion<float> const & a_affecter);
- template<typename X>
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (octonion<X> const & a_affecter);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (float const & a_affecter);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (::std::complex<float> const & a_affecter);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (::boost::math::quaternion<float> const & a_affecter);
-
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (float const & rhs);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (::std::complex<float> const & rhs);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (::boost::math::quaternion<float> const & rhs);
- template<typename X>
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (octonion<X> const & rhs);
-
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (float const & rhs);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (::std::complex<float> const & rhs);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (::boost::math::quaternion<float> const & rhs);
- template<typename X>
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (octonion<X> const & rhs);
-
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (float const & rhs);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (::std::complex<float> const & rhs);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (::boost::math::quaternion<float> const & rhs);
- template<typename X>
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (octonion<X> const & rhs);
-
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (float const & rhs);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (::std::complex<float> const & rhs);
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (::boost::math::quaternion<float> const & rhs);
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(float const & requested_a = 0.0f, float const & requested_b = 0.0f, float const & requested_c = 0.0f, float const & requested_d = 0.0f, float const & requested_e = 0.0f, float const & requested_f = 0.0f, float const & requested_g = 0.0f, float const & requested_h = 0.0f);
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(::std::complex<float> const & z0, ::std::complex<float> const & z1 = ::std::complex<float>(), ::std::complex<float> const & z2 = ::std::complex<float>(), ::std::complex<float> const & z3 = ::std::complex<float>());
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(::boost::math::quaternion<float> const & q0, ::boost::math::quaternion<float> const & q1 = ::boost::math::quaternion<float>());
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(octonion<double> const & a_recopier);
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(octonion<long double> const & a_recopier);
+
+ float ``[link math_toolkit.octonions.mem_fun.real_and_unreal_parts real]``() const;
+ octonion<float> ``[link math_toolkit.octonions.mem_fun.real_and_unreal_parts unreal]``() const;
+
+ float ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_1]``() const;
+ float ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_2]``() const;
+ float ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_3]``() const;
+ float ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_4]``() const;
+ float ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_5]``() const;
+ float ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_6]``() const;
+ float ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_7]``() const;
+ float ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_8]``() const;
+
+ ::std::complex<float> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_1]``() const;
+ ::std::complex<float> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_2]``() const;
+ ::std::complex<float> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_3]``() const;
+ ::std::complex<float> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_4]``() const;
+
+ ::boost::math::quaternion<float> ``[link math_toolkit.octonions.mem_fun.individual_quaternion_components H_component_1]``() const;
+ ::boost::math::quaternion<float> ``[link math_toolkit.octonions.mem_fun.individual_quaternion_components H_component_2]``() const;
+
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (octonion<float> const & a_affecter);
+ template<typename X>
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (octonion<X> const & a_affecter);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (float const & a_affecter);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (::std::complex<float> const & a_affecter);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (::boost::math::quaternion<float> const & a_affecter);
+
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (float const & rhs);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (::std::complex<float> const & rhs);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (::boost::math::quaternion<float> const & rhs);
+ template<typename X>
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (octonion<X> const & rhs);
+
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (float const & rhs);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (::std::complex<float> const & rhs);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (::boost::math::quaternion<float> const & rhs);
+ template<typename X>
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (octonion<X> const & rhs);
+
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (float const & rhs);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (::std::complex<float> const & rhs);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (::boost::math::quaternion<float> const & rhs);
+ template<typename X>
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (octonion<X> const & rhs);
+
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (float const & rhs);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (::std::complex<float> const & rhs);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (::boost::math::quaternion<float> const & rhs);
       template<typename X>
- octonion<float> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (octonion<X> const & rhs);
+ octonion<float> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (octonion<X> const & rhs);
    };
 
-[#boost_octonions.octonion_double]
+[#math_toolkit.octonion_double]
 
    template<>
    class octonion<double>
@@ -325,65 +298,65 @@
    public:
       typedef double value_type;
 
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(double const & requested_a = 0.0, double const & requested_b = 0.0, double const & requested_c = 0.0, double const & requested_d = 0.0, double const & requested_e = 0.0, double const & requested_f = 0.0, double const & requested_g = 0.0, double const & requested_h = 0.0);
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(::std::complex<double> const & z0, ::std::complex<double> const & z1 = ::std::complex<double>(), ::std::complex<double> const & z2 = ::std::complex<double>(), ::std::complex<double> const & z3 = ::std::complex<double>());
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(::boost::math::quaternion<double> const & q0, ::boost::math::quaternion<double> const & q1 = ::boost::math::quaternion<double>());
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(octonion<float> const & a_recopier);
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(octonion<long double> const & a_recopier);
-
- double ``[link boost_octonions.octonions.octonion_member_functions.real_and_unreal_parts real]``() const;
- octonion<double> ``[link boost_octonions.octonions.octonion_member_functions.real_and_unreal_parts unreal]``() const;
-
- double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_1]``() const;
- double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_2]``() const;
- double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_3]``() const;
- double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_4]``() const;
- double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_5]``() const;
- double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_6]``() const;
- double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_7]``() const;
- double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_8]``() const;
-
- ::std::complex<double> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_1]``() const;
- ::std::complex<double> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_2]``() const;
- ::std::complex<double> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_3]``() const;
- ::std::complex<double> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_4]``() const;
-
- ::boost::math::quaternion<double> ``[link boost_octonions.octonions.octonion_member_functions.individual_quaternion_components H_component_1]``() const;
- ::boost::math::quaternion<double> ``[link boost_octonions.octonions.octonion_member_functions.individual_quaternion_components H_component_2]``() const;
-
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (octonion<double> const & a_affecter);
- template<typename X>
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (octonion<X> const & a_affecter);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (double const & a_affecter);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (::std::complex<double> const & a_affecter);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (::boost::math::quaternion<double> const & a_affecter);
-
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (double const & rhs);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (::std::complex<double> const & rhs);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (::boost::math::quaternion<double> const & rhs);
- template<typename X>
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (octonion<X> const & rhs);
-
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (double const & rhs);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (::std::complex<double> const & rhs);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (::boost::math::quaternion<double> const & rhs);
- template<typename X>
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (octonion<X> const & rhs);
-
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (double const & rhs);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (::std::complex<double> const & rhs);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (::boost::math::quaternion<double> const & rhs);
- template<typename X>
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (octonion<X> const & rhs);
-
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (double const & rhs);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (::std::complex<double> const & rhs);
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (::boost::math::quaternion<double> const & rhs);
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(double const & requested_a = 0.0, double const & requested_b = 0.0, double const & requested_c = 0.0, double const & requested_d = 0.0, double const & requested_e = 0.0, double const & requested_f = 0.0, double const & requested_g = 0.0, double const & requested_h = 0.0);
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(::std::complex<double> const & z0, ::std::complex<double> const & z1 = ::std::complex<double>(), ::std::complex<double> const & z2 = ::std::complex<double>(), ::std::complex<double> const & z3 = ::std::complex<double>());
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(::boost::math::quaternion<double> const & q0, ::boost::math::quaternion<double> const & q1 = ::boost::math::quaternion<double>());
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(octonion<float> const & a_recopier);
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(octonion<long double> const & a_recopier);
+
+ double ``[link math_toolkit.octonions.mem_fun.real_and_unreal_parts real]``() const;
+ octonion<double> ``[link math_toolkit.octonions.mem_fun.real_and_unreal_parts unreal]``() const;
+
+ double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_1]``() const;
+ double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_2]``() const;
+ double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_3]``() const;
+ double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_4]``() const;
+ double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_5]``() const;
+ double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_6]``() const;
+ double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_7]``() const;
+ double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_8]``() const;
+
+ ::std::complex<double> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_1]``() const;
+ ::std::complex<double> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_2]``() const;
+ ::std::complex<double> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_3]``() const;
+ ::std::complex<double> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_4]``() const;
+
+ ::boost::math::quaternion<double> ``[link math_toolkit.octonions.mem_fun.individual_quaternion_components H_component_1]``() const;
+ ::boost::math::quaternion<double> ``[link math_toolkit.octonions.mem_fun.individual_quaternion_components H_component_2]``() const;
+
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (octonion<double> const & a_affecter);
+ template<typename X>
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (octonion<X> const & a_affecter);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (double const & a_affecter);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (::std::complex<double> const & a_affecter);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (::boost::math::quaternion<double> const & a_affecter);
+
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (double const & rhs);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (::std::complex<double> const & rhs);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (::boost::math::quaternion<double> const & rhs);
+ template<typename X>
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (octonion<X> const & rhs);
+
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (double const & rhs);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (::std::complex<double> const & rhs);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (::boost::math::quaternion<double> const & rhs);
+ template<typename X>
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (octonion<X> const & rhs);
+
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (double const & rhs);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (::std::complex<double> const & rhs);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (::boost::math::quaternion<double> const & rhs);
+ template<typename X>
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (octonion<X> const & rhs);
+
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (double const & rhs);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (::std::complex<double> const & rhs);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (::boost::math::quaternion<double> const & rhs);
       template<typename X>
- octonion<double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (octonion<X> const & rhs);
+ octonion<double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (octonion<X> const & rhs);
    };
 
-[#boost_octonions.octonion_long_double]
+[#math_toolkit.octonion_long_double]
 
    template<>
    class octonion<long double>
@@ -391,69 +364,69 @@
    public:
       typedef long double value_type;
 
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(long double const & requested_a = 0.0L, long double const & requested_b = 0.0L, long double const & requested_c = 0.0L, long double const & requested_d = 0.0L, long double const & requested_e = 0.0L, long double const & requested_f = 0.0L, long double const & requested_g = 0.0L, long double const & requested_h = 0.0L);
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``( ::std::complex<long double> const & z0, ::std::complex<long double> const & z1 = ::std::complex<long double>(), ::std::complex<long double> const & z2 = ::std::complex<long double>(), ::std::complex<long double> const & z3 = ::std::complex<long double>());
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``( ::boost::math::quaternion<long double> const & q0, ::boost::math::quaternion<long double> const & z1 = ::boost::math::quaternion<long double>());
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(octonion<float> const & a_recopier);
- explicit ``[link boost_octonions.octonions.octonion_member_functions.constructors octonion]``(octonion<double> const & a_recopier);
-
- long double ``[link boost_octonions.octonions.octonion_member_functions.real_and_unreal_parts real]``() const;
- octonion<long double> ``[link boost_octonions.octonions.octonion_member_functions.real_and_unreal_parts unreal]``() const;
-
- long double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_1]``() const;
- long double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_2]``() const;
- long double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_3]``() const;
- long double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_4]``() const;
- long double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_5]``() const;
- long double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_6]``() const;
- long double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_7]``() const;
- long double ``[link boost_octonions.octonions.octonion_member_functions.individual_real_components R_component_8]``() const;
-
- ::std::complex<long double> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_1]``() const;
- ::std::complex<long double> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_2]``() const;
- ::std::complex<long double> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_3]``() const;
- ::std::complex<long double> ``[link boost_octonions.octonions.octonion_member_functions.individual_complex_components C_component_4]``() const;
-
- ::boost::math::quaternion<long double> ``[link boost_octonions.octonions.octonion_member_functions.individual_quaternion_components H_component_1]``() const;
- ::boost::math::quaternion<long double> ``[link boost_octonions.octonions.octonion_member_functions.individual_quaternion_components H_component_2]``() const;
-
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (octonion<long double> const & a_affecter);
- template<typename X>
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (octonion<X> const & a_affecter);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (long double const & a_affecter);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (::std::complex<long double> const & a_affecter);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.assignment_operators operator =]`` (::boost::math::quaternion<long double> const & a_affecter);
-
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (long double const & rhs);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (::std::complex<long double> const & rhs);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (::boost::math::quaternion<long double> const & rhs);
- template<typename X>
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator +=]`` (octonion<X> const & rhs);
-
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (long double const & rhs);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (::std::complex<long double> const & rhs);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (::boost::math::quaternion<long double> const & rhs);
- template<typename X>
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator -=]`` (octonion<X> const & rhs);
-
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (long double const & rhs);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (::std::complex<long double> const & rhs);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (::boost::math::quaternion<long double> const & rhs);
- template<typename X>
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator *=]`` (octonion<X> const & rhs);
-
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (long double const & rhs);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (::std::complex<long double> const & rhs);
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (::boost::math::quaternion<long double> const & rhs);
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(long double const & requested_a = 0.0L, long double const & requested_b = 0.0L, long double const & requested_c = 0.0L, long double const & requested_d = 0.0L, long double const & requested_e = 0.0L, long double const & requested_f = 0.0L, long double const & requested_g = 0.0L, long double const & requested_h = 0.0L);
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``( ::std::complex<long double> const & z0, ::std::complex<long double> const & z1 = ::std::complex<long double>(), ::std::complex<long double> const & z2 = ::std::complex<long double>(), ::std::complex<long double> const & z3 = ::std::complex<long double>());
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``( ::boost::math::quaternion<long double> const & q0, ::boost::math::quaternion<long double> const & z1 = ::boost::math::quaternion<long double>());
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(octonion<float> const & a_recopier);
+ explicit ``[link math_toolkit.octonions.mem_fun.constructors octonion]``(octonion<double> const & a_recopier);
+
+ long double ``[link math_toolkit.octonions.mem_fun.real_and_unreal_parts real]``() const;
+ octonion<long double> ``[link math_toolkit.octonions.mem_fun.real_and_unreal_parts unreal]``() const;
+
+ long double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_1]``() const;
+ long double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_2]``() const;
+ long double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_3]``() const;
+ long double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_4]``() const;
+ long double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_5]``() const;
+ long double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_6]``() const;
+ long double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_7]``() const;
+ long double ``[link math_toolkit.octonions.mem_fun.individual_real_components R_component_8]``() const;
+
+ ::std::complex<long double> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_1]``() const;
+ ::std::complex<long double> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_2]``() const;
+ ::std::complex<long double> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_3]``() const;
+ ::std::complex<long double> ``[link math_toolkit.octonions.mem_fun.individual_complex_components C_component_4]``() const;
+
+ ::boost::math::quaternion<long double> ``[link math_toolkit.octonions.mem_fun.individual_quaternion_components H_component_1]``() const;
+ ::boost::math::quaternion<long double> ``[link math_toolkit.octonions.mem_fun.individual_quaternion_components H_component_2]``() const;
+
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (octonion<long double> const & a_affecter);
+ template<typename X>
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (octonion<X> const & a_affecter);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (long double const & a_affecter);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (::std::complex<long double> const & a_affecter);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.assignment_operators operator =]`` (::boost::math::quaternion<long double> const & a_affecter);
+
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (long double const & rhs);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (::std::complex<long double> const & rhs);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (::boost::math::quaternion<long double> const & rhs);
+ template<typename X>
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator +=]`` (octonion<X> const & rhs);
+
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (long double const & rhs);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (::std::complex<long double> const & rhs);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (::boost::math::quaternion<long double> const & rhs);
+ template<typename X>
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator -=]`` (octonion<X> const & rhs);
+
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (long double const & rhs);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (::std::complex<long double> const & rhs);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (::boost::math::quaternion<long double> const & rhs);
+ template<typename X>
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator *=]`` (octonion<X> const & rhs);
+
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (long double const & rhs);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (::std::complex<long double> const & rhs);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (::boost::math::quaternion<long double> const & rhs);
       template<typename X>
- octonion<long double> & ``[link boost_octonions.octonions.octonion_member_functions.other_member_operators operator /=]`` (octonion<X> const & rhs);
+ octonion<long double> & ``[link math_toolkit.octonions.mem_fun.other_member_operators operator /=]`` (octonion<X> const & rhs);
    };
 
    } } // namespaces
    
 [endsect]
 
-[section Octonion Member Typedefs]
+[section:oct_typedefs Octonion Member Typedefs]
 
 [*value_type]
 
@@ -477,7 +450,7 @@
 
 [endsect]
 
-[section Octonion Member Functions]
+[section:mem_fun Octonion Member Functions]
 
 [h3 Constructors]
 
@@ -784,7 +757,7 @@
    
 [endsect]
 
-[section Octonion Value Operations]
+[section:oct_value_ops Octonion Value Operations]
 
 [h4 Real and Unreal]
 
@@ -867,7 +840,7 @@
 
 [endsect]
 
-[section Octonions Transcendentals]
+[section:oct_trans Octonions Transcendentals]
 
 There is no `log` or `sqrt` provided for octonions in this implementation,
 and `pow` is likewise restricted to integral powers of the exponent.
@@ -951,7 +924,7 @@
 
 [endsect]
 
-[section Test Program]
+[section:tests Test Program]
 
 The [@../../../octonion/octonion_test.cpp octonion_test.cpp]
 test program tests octonions specialisations for float, double and long double
@@ -968,7 +941,7 @@
 
 [endsect]
 
-[section Acknowledgements]
+[section:acknowledgements Acknowledgements]
 
 The mathematical text has been typeset with
 [@http://www.nisus-soft.com/ Nisus Writer].
@@ -978,7 +951,7 @@
 
 [endsect]
 
-[section History]
+[section:history History]
 
 * 1.5.8 - 17/12/2005: Converted documentation to Quickbook Format.
 * 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>.
@@ -998,7 +971,7 @@
 
 [endsect]
 
-[section To Do]
+[section:todo To Do]
 
 * Improve testing.
 * Rewrite input operatore using Spirit (creates a dependency).

Deleted: sandbox/math/libs/math/doc/quaternion/Jamfile.v2
==============================================================================
--- sandbox/math/libs/math/doc/quaternion/Jamfile.v2 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,66 +0,0 @@
-
-# Copyright John Maddock 2005. Use, modification, and distribution are
-# subject to the Boost Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-using quickbook ;
-
-path-constant images_location : html ;
-
-xml quaternion : math-quaternion.qbk ;
-boostbook standalone
- :
- quaternion
- :
- # Path for links to Boost:
- <xsl:param>boost.root=../../../../..
-
- # Some general style settings:
- <xsl:param>table.footnote.number.format=1
- <xsl:param>footnote.number.format=1
-
- # HTML options first:
- # Use graphics not text for navigation:
- <xsl:param>navig.graphics=1
- # How far down we chunk nested sections, basically all of them:
- <xsl:param>chunk.section.depth=10
- # Don't put the first section on the same page as the TOC:
- <xsl:param>chunk.first.sections=1
- # How far down sections get TOC's
- <xsl:param>toc.section.depth=10
- # Max depth in each TOC:
- <xsl:param>toc.max.depth=4
- # How far down we go with TOC's
- <xsl:param>generate.section.toc.level=10
- #<xsl:param>root.filename="sf_dist_and_tools"
-
- # PDF Options:
- # TOC Generation: this is needed for FOP-0.9 and later:
- # <xsl:param>fop1.extensions=1
- <format>pdf:<xsl:param>xep.extensions=1
- # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
- <format>pdf:<xsl:param>fop.extensions=0
- <format>pdf:<xsl:param>fop1.extensions=0
- # No indent on body text:
- <format>pdf:<xsl:param>body.start.indent=0pt
- # Margin size:
- <format>pdf:<xsl:param>page.margin.inner=0.5in
- # Margin size:
- <format>pdf:<xsl:param>page.margin.outer=0.5in
- # Paper type = A4
- <format>pdf:<xsl:param>paper.type=A4
- # Yes, we want graphics for admonishments:
- <xsl:param>admon.graphics=1
- # Set this one for PDF generation *only*:
- # default pnd graphics are awful in PDF form,
- # better use SVG's instead:
- <format>pdf:<xsl:param>admon.graphics.extension=".svg"
- <format>pdf:<xsl:param>use.role.for.mediaobject=1
- <format>pdf:<xsl:param>preferred.mediaobject.role=print
- <format>pdf:<xsl:param>img.src.path=$(images_location)/
- <format>pdf:<xsl:param>draft.mode="no"
- <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/math/doc/quaternion/html
- ;
-
-
-

Modified: sandbox/math/libs/math/doc/quaternion/math-quaternion.qbk
==============================================================================
--- sandbox/math/libs/math/doc/quaternion/math-quaternion.qbk (original)
+++ sandbox/math/libs/math/doc/quaternion/math-quaternion.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
@@ -1,17 +1,3 @@
-[article Boost.Quaternions
- [quickbook 1.3]
- [copyright 2001-2003 Hubert Holin]
- [purpose Quaternions]
- [license
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- [@http://www.boost.org/LICENSE_1_0.txt http://www.boost.org/LICENSE_1_0.txt])
- ]
- [authors [Holin, Hubert]]
- [category math]
- [last-revision $Date: 2006-12-29 11:08:32 +0000 (Fri, 29 Dec 2006) $]
-]
-
 [def __R ['[*R]]]
 [def __C ['[*C]]]
 [def __H ['[*H]]]
@@ -23,24 +9,9 @@
 [def __quat_complex_formula ['[^q = ('''&#x03B1; + &#x03B2;i) + (&#x03B3; + &#x03B4;i)j''' ]]]
 [def __not_equal ['[^xy '''&#x2260;''' yx]]]
 
-[def __asinh [link boost_quaternions.math_special_functions.asinh asinh]]
-[def __acosh [link boost_quaternions.math_special_functions.acosh acosh]]
-[def __atanh [link boost_quaternions.math_special_functions.atanh atanh]]
-[def __sinc_pi [link boost_quaternions.math_special_functions.sinc_pi sinc_pi]]
-[def __sinhc_pi [link boost_quaternions.math_special_functions.sinhc_pi sinhc_pi]]
-
-[def __log1p [link boost_quaternions.math_special_functions.log1p log1p]]
-[def __expm1 [link boost_quaternions.math_special_functions.expm1 expm1]]
-[def __hypot [link boost_quaternions.math_special_functions.hypot hypot]]
-
-This manual is also available in
-[@http://sourceforge.net/projects/boost/files/boost-docs/
-printer friendly PDF format].
-
-
-[section Quaternions]
+[section:quaternions Quaternions]
 
-[section Overview]
+[section:overview Overview]
 
 Quaternions are a relative of complex numbers.
 
@@ -79,93 +50,93 @@
 
 [endsect]
 
-[section Header File]
+[section:header Header File]
 
 The interface and implementation are both supplied by the header file
 [@../../../../../boost/math/quaternion.hpp quaternion.hpp].
 
 [endsect]
 
-[section Synopsis]
+[section:synopsis Synopsis]
 
    namespace boost{ namespace math{
    
- template<typename T> class ``[link boost_quaternions.quaternions.quat quaternion]``;
- template<> class ``[link boost_quaternions.quaternions.spec quaternion<float>]``;
- template<> class ``[link boost_quaternions.quaternion_double quaternion<double>]``;
- template<> class ``[link boost_quaternions.quaternion_long_double quaternion<long double>]``;
+ template<typename T> class ``[link math_toolkit.quaternions.quat quaternion]``;
+ template<> class ``[link math_toolkit.quaternions.spec quaternion<float>]``;
+ template<> class ``[link math_toolkit.quaternion_double quaternion<double>]``;
+ template<> class ``[link math_toolkit.quaternion_long_double quaternion<long double>]``;
 
    // operators
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_addition_operators operator +]`` (T const & lhs, quaternion<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_addition_operators operator +]`` (quaternion<T> const & lhs, T const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_addition_operators operator +]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_addition_operators operator +]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_addition_operators operator +]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
-
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_subtraction_operators operator -]`` (T const & lhs, quaternion<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_subtraction_operators operator -]`` (quaternion<T> const & lhs, T const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_subtraction_operators operator -]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_subtraction_operators operator -]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_subtraction_operators operator -]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
-
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_multiplication_operators operator *]`` (T const & lhs, quaternion<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_multiplication_operators operator *]`` (quaternion<T> const & lhs, T const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_multiplication_operators operator *]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_multiplication_operators operator *]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_multiplication_operators operator *]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
-
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_division_operators operator /]`` (T const & lhs, quaternion<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_division_operators operator /]`` (quaternion<T> const & lhs, T const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_division_operators operator /]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_division_operators operator /]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.binary_division_operators operator /]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
-
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.unary_plus operator +]`` (quaternion<T> const & q);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.non_mem.unary_minus operator -]`` (quaternion<T> const & q);
-
- template<typename T> bool ``[link boost_quaternions.quaternions.non_mem.equality_operators operator ==]`` (T const & lhs, quaternion<T> const & rhs);
- template<typename T> bool ``[link boost_quaternions.quaternions.non_mem.equality_operators operator ==]`` (quaternion<T> const & lhs, T const & rhs);
- template<typename T> bool ``[link boost_quaternions.quaternions.non_mem.equality_operators operator ==]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
- template<typename T> bool ``[link boost_quaternions.quaternions.non_mem.equality_operators operator ==]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> bool ``[link boost_quaternions.quaternions.non_mem.equality_operators operator ==]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
-
- template<typename T> bool ``[link boost_quaternions.quaternions.non_mem.inequality_operators operator !=]`` (T const & lhs, quaternion<T> const & rhs);
- template<typename T> bool ``[link boost_quaternions.quaternions.non_mem.inequality_operators operator !=]`` (quaternion<T> const & lhs, T const & rhs);
- template<typename T> bool ``[link boost_quaternions.quaternions.non_mem.inequality_operators operator !=]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
- template<typename T> bool ``[link boost_quaternions.quaternions.non_mem.inequality_operators operator !=]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
- template<typename T> bool ``[link boost_quaternions.quaternions.non_mem.inequality_operators operator !=]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_addition_operators operator +]`` (T const & lhs, quaternion<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_addition_operators operator +]`` (quaternion<T> const & lhs, T const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_addition_operators operator +]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_addition_operators operator +]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_addition_operators operator +]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
+
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_subtraction_operators operator -]`` (T const & lhs, quaternion<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_subtraction_operators operator -]`` (quaternion<T> const & lhs, T const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_subtraction_operators operator -]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_subtraction_operators operator -]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_subtraction_operators operator -]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
+
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_multiplication_operators operator *]`` (T const & lhs, quaternion<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_multiplication_operators operator *]`` (quaternion<T> const & lhs, T const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_multiplication_operators operator *]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_multiplication_operators operator *]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_multiplication_operators operator *]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
+
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_division_operators operator /]`` (T const & lhs, quaternion<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_division_operators operator /]`` (quaternion<T> const & lhs, T const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_division_operators operator /]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_division_operators operator /]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.binary_division_operators operator /]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
+
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.unary_plus operator +]`` (quaternion<T> const & q);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.non_mem.unary_minus operator -]`` (quaternion<T> const & q);
+
+ template<typename T> bool ``[link math_toolkit.quaternions.non_mem.equality_operators operator ==]`` (T const & lhs, quaternion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.quaternions.non_mem.equality_operators operator ==]`` (quaternion<T> const & lhs, T const & rhs);
+ template<typename T> bool ``[link math_toolkit.quaternions.non_mem.equality_operators operator ==]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.quaternions.non_mem.equality_operators operator ==]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.quaternions.non_mem.equality_operators operator ==]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
+
+ template<typename T> bool ``[link math_toolkit.quaternions.non_mem.inequality_operators operator !=]`` (T const & lhs, quaternion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.quaternions.non_mem.inequality_operators operator !=]`` (quaternion<T> const & lhs, T const & rhs);
+ template<typename T> bool ``[link math_toolkit.quaternions.non_mem.inequality_operators operator !=]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.quaternions.non_mem.inequality_operators operator !=]`` (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
+ template<typename T> bool ``[link math_toolkit.quaternions.non_mem.inequality_operators operator !=]`` (quaternion<T> const & lhs, quaternion<T> const & rhs);
 
    template<typename T, typename charT, class traits>
- ::std::basic_istream<charT,traits>& ``[link boost_quaternions.quaternions.non_mem.stream_extractor operator >>]`` (::std::basic_istream<charT,traits> & is, quaternion<T> & q);
+ ::std::basic_istream<charT,traits>& ``[link math_toolkit.quaternions.non_mem.stream_extractor operator >>]`` (::std::basic_istream<charT,traits> & is, quaternion<T> & q);
 
    template<typename T, typename charT, class traits>
- ::std::basic_ostream<charT,traits>& operator ``[link boost_quaternions.quaternions.non_mem.stream_inserter operator <<]`` (::std::basic_ostream<charT,traits> & os, quaternion<T> const & q);
+ ::std::basic_ostream<charT,traits>& operator ``[link math_toolkit.quaternions.non_mem.stream_inserter operator <<]`` (::std::basic_ostream<charT,traits> & os, quaternion<T> const & q);
 
    // values
- template<typename T> T ``[link boost_quaternions.quaternions.value_op.real_and_unreal real]``(quaternion<T> const & q);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.value_op.real_and_unreal unreal]``(quaternion<T> const & q);
+ template<typename T> T ``[link math_toolkit.quaternions.value_op.real_and_unreal real]``(quaternion<T> const & q);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.value_op.real_and_unreal unreal]``(quaternion<T> const & q);
 
- template<typename T> T ``[link boost_quaternions.quaternions.value_op.sup sup]``(quaternion<T> const & q);
- template<typename T> T ``[link boost_quaternions.quaternions.value_op.l1 l1]``(quaternion<T> const & q);
- template<typename T> T ``[link boost_quaternions.quaternions.value_op.abs abs]``(quaternion<T> const & q);
- template<typename T> T ``[link boost_quaternions.quaternions.value_op.norm norm]``(quaternion<T>const & q);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.value_op.conj conj]``(quaternion<T> const & q);
-
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.creation_spherical spherical]``(T const & rho, T const & theta, T const & phi1, T const & phi2);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.creation_semipolar semipolar]``(T const & rho, T const & alpha, T const & theta1, T const & theta2);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.creation_multipolar multipolar]``(T const & rho1, T const & theta1, T const & rho2, T const & theta2);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.creation_cylindrospherical cylindrospherical]``(T const & t, T const & radius, T const & longitude, T const & latitude);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.creation_cylindrical cylindrical]``(T const & r, T const & angle, T const & h1, T const & h2);
+ template<typename T> T ``[link math_toolkit.quaternions.value_op.sup sup]``(quaternion<T> const & q);
+ template<typename T> T ``[link math_toolkit.quaternions.value_op.l1 l1]``(quaternion<T> const & q);
+ template<typename T> T ``[link math_toolkit.quaternions.value_op.abs abs]``(quaternion<T> const & q);
+ template<typename T> T ``[link math_toolkit.quaternions.value_op.norm norm]``(quaternion<T>const & q);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.value_op.conj conj]``(quaternion<T> const & q);
+
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.creation_spherical spherical]``(T const & rho, T const & theta, T const & phi1, T const & phi2);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.creation_semipolar semipolar]``(T const & rho, T const & alpha, T const & theta1, T const & theta2);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.creation_multipolar multipolar]``(T const & rho1, T const & theta1, T const & rho2, T const & theta2);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.creation_cylindrospherical cylindrospherical]``(T const & t, T const & radius, T const & longitude, T const & latitude);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.creation_cylindrical cylindrical]``(T const & r, T const & angle, T const & h1, T const & h2);
 
    // transcendentals
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.trans.exp exp]``(quaternion<T> const & q);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.trans.cos cos]``(quaternion<T> const & q);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.trans.sin sin]``(quaternion<T> const & q);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.trans.tan tan]``(quaternion<T> const & q);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.trans.cosh cosh]``(quaternion<T> const & q);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.trans.sinh sinh]``(quaternion<T> const & q);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.trans.tanh tanh]``(quaternion<T> const & q);
- template<typename T> quaternion<T> ``[link boost_quaternions.quaternions.trans.pow pow]``(quaternion<T> const & q, int n);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.trans.exp exp]``(quaternion<T> const & q);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.trans.cos cos]``(quaternion<T> const & q);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.trans.sin sin]``(quaternion<T> const & q);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.trans.tan tan]``(quaternion<T> const & q);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.trans.cosh cosh]``(quaternion<T> const & q);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.trans.sinh sinh]``(quaternion<T> const & q);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.trans.tanh tanh]``(quaternion<T> const & q);
+ template<typename T> quaternion<T> ``[link math_toolkit.quaternions.trans.pow pow]``(quaternion<T> const & q, int n);
 
    } // namespace math
    } // namespace boost
@@ -181,47 +152,47 @@
    {
    public:
 
- typedef T ``[link boost_quaternions.quaternions.mem_typedef value_type]``;
+ typedef T ``[link math_toolkit.quaternions.mem_typedef value_type]``;
 
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(T const & requested_a = T(), T const & requested_b = T(), T const & requested_c = T(), T const & requested_d = T());
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(::std::complex<T> const & z0, ::std::complex<T> const & z1 = ::std::complex<T>());
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(T const & requested_a = T(), T const & requested_b = T(), T const & requested_c = T(), T const & requested_d = T());
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(::std::complex<T> const & z0, ::std::complex<T> const & z1 = ::std::complex<T>());
       template<typename X>
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(quaternion<X> const & a_recopier);
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(quaternion<X> const & a_recopier);
 
- T ``[link boost_quaternions.quaternions.mem_fun.real_and_unreal_parts real]``() const;
- quaternion<T> ``[link boost_quaternions.quaternions.mem_fun.real_and_unreal_parts unreal]``() const;
- T ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_1]``() const;
- T ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_2]``() const;
- T ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_3]``() const;
- T ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_4]``() const;
- ::std::complex<T> ``[link boost_quaternions.quaternions.mem_fun.individual_complex__components C_component_1]``() const;
- ::std::complex<T> ``[link boost_quaternions.quaternions.mem_fun.individual_complex__components C_component_2]``() const;
+ T ``[link math_toolkit.quaternions.mem_fun.real_and_unreal_parts real]``() const;
+ quaternion<T> ``[link math_toolkit.quaternions.mem_fun.real_and_unreal_parts unreal]``() const;
+ T ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_1]``() const;
+ T ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_2]``() const;
+ T ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_3]``() const;
+ T ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_4]``() const;
+ ::std::complex<T> ``[link math_toolkit.quaternions.mem_fun.individual_complex__components C_component_1]``() const;
+ ::std::complex<T> ``[link math_toolkit.quaternions.mem_fun.individual_complex__components C_component_2]``() const;
 
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<T> const & a_affecter);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<T> const & a_affecter);
       template<typename X>
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<X> const & a_affecter);
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(T const & a_affecter);
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(::std::complex<T> const & a_affecter);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<X> const & a_affecter);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(T const & a_affecter);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(::std::complex<T> const & a_affecter);
 
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(T const & rhs);
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(::std::complex<T> const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(T const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(::std::complex<T> const & rhs);
       template<typename X>
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(quaternion<X> const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(quaternion<X> const & rhs);
 
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(T const & rhs);
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(::std::complex<T> const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(T const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(::std::complex<T> const & rhs);
       template<typename X>
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(quaternion<X> const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(quaternion<X> const & rhs);
 
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(T const & rhs);
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(::std::complex<T> const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(T const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(::std::complex<T> const & rhs);
       template<typename X>
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(quaternion<X> const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(quaternion<X> const & rhs);
 
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(T const & rhs);
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(::std::complex<T> const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(T const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(::std::complex<T> const & rhs);
       template<typename X>
- quaternion<T>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(quaternion<X> const & rhs);
+ quaternion<T>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(quaternion<X> const & rhs);
    };
 
    } // namespace math
@@ -237,145 +208,145 @@
    class quaternion<float>
    {
    public:
- typedef float ``[link boost_quaternions.quaternions.mem_typedef value_type]``;
+ typedef float ``[link math_toolkit.quaternions.mem_typedef value_type]``;
            
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(float const & requested_a = 0.0f, float const & requested_b = 0.0f, float const & requested_c = 0.0f, float const & requested_d = 0.0f);
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(::std::complex<float> const & z0, ::std::complex<float> const & z1 = ::std::complex<float>());
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(quaternion<double> const & a_recopier);
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(quaternion<long double> const & a_recopier);
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(float const & requested_a = 0.0f, float const & requested_b = 0.0f, float const & requested_c = 0.0f, float const & requested_d = 0.0f);
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(::std::complex<float> const & z0, ::std::complex<float> const & z1 = ::std::complex<float>());
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(quaternion<double> const & a_recopier);
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(quaternion<long double> const & a_recopier);
            
- float ``[link boost_quaternions.quaternions.mem_fun.real_and_unreal_parts real]``() const;
- quaternion<float> ``[link boost_quaternions.quaternions.mem_fun.real_and_unreal_parts unreal]``() const;
- float ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_1]``() const;
- float ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_2]``() const;
- float ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_3]``() const;
- float ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_4]``() const;
- ::std::complex<float> ``[link boost_quaternions.quaternions.mem_fun.individual_complex__components C_component_1]``() const;
- ::std::complex<float> ``[link boost_quaternions.quaternions.mem_fun.individual_complex__components C_component_2]``() const;
+ float ``[link math_toolkit.quaternions.mem_fun.real_and_unreal_parts real]``() const;
+ quaternion<float> ``[link math_toolkit.quaternions.mem_fun.real_and_unreal_parts unreal]``() const;
+ float ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_1]``() const;
+ float ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_2]``() const;
+ float ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_3]``() const;
+ float ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_4]``() const;
+ ::std::complex<float> ``[link math_toolkit.quaternions.mem_fun.individual_complex__components C_component_1]``() const;
+ ::std::complex<float> ``[link math_toolkit.quaternions.mem_fun.individual_complex__components C_component_2]``() const;
 
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<float> const & a_affecter);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<float> const & a_affecter);
       template<typename X>
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<X> const & a_affecter);
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(float const & a_affecter);
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(::std::complex<float> const & a_affecter);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<X> const & a_affecter);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(float const & a_affecter);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(::std::complex<float> const & a_affecter);
 
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(float const & rhs);
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(::std::complex<float> const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(float const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(::std::complex<float> const & rhs);
       template<typename X>
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(quaternion<X> const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(quaternion<X> const & rhs);
 
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(float const & rhs);
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(::std::complex<float> const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(float const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(::std::complex<float> const & rhs);
       template<typename X>
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(quaternion<X> const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(quaternion<X> const & rhs);
 
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(float const & rhs);
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(::std::complex<float> const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(float const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(::std::complex<float> const & rhs);
       template<typename X>
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(quaternion<X> const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(quaternion<X> const & rhs);
 
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(float const & rhs);
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(::std::complex<float> const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(float const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(::std::complex<float> const & rhs);
       template<typename X>
- quaternion<float>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(quaternion<X> const & rhs);
+ quaternion<float>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(quaternion<X> const & rhs);
    };
    
-[#boost_quaternions.quaternion_double]
+[#math_toolkit.quaternion_double]
 
    template<>
    class quaternion<double>
    {
    public:
- typedef double ``[link boost_quaternions.quaternions.mem_typedef value_type]``;
+ typedef double ``[link math_toolkit.quaternions.mem_typedef value_type]``;
            
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(double const & requested_a = 0.0, double const & requested_b = 0.0, double const & requested_c = 0.0, double const & requested_d = 0.0);
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(::std::complex<double> const & z0, ::std::complex<double> const & z1 = ::std::complex<double>());
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(quaternion<float> const & a_recopier);
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(quaternion<long double> const & a_recopier);
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(double const & requested_a = 0.0, double const & requested_b = 0.0, double const & requested_c = 0.0, double const & requested_d = 0.0);
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(::std::complex<double> const & z0, ::std::complex<double> const & z1 = ::std::complex<double>());
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(quaternion<float> const & a_recopier);
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(quaternion<long double> const & a_recopier);
            
- double ``[link boost_quaternions.quaternions.mem_fun.real_and_unreal_parts real]``() const;
- quaternion<double> ``[link boost_quaternions.quaternions.mem_fun.real_and_unreal_parts unreal]``() const;
- double ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_1]``() const;
- double ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_2]``() const;
- double ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_3]``() const;
- double ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_4]``() const;
- ::std::complex<double> ``[link boost_quaternions.quaternions.mem_fun.individual_complex__components C_component_1]``() const;
- ::std::complex<double> ``[link boost_quaternions.quaternions.mem_fun.individual_complex__components C_component_2]``() const;
+ double ``[link math_toolkit.quaternions.mem_fun.real_and_unreal_parts real]``() const;
+ quaternion<double> ``[link math_toolkit.quaternions.mem_fun.real_and_unreal_parts unreal]``() const;
+ double ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_1]``() const;
+ double ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_2]``() const;
+ double ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_3]``() const;
+ double ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_4]``() const;
+ ::std::complex<double> ``[link math_toolkit.quaternions.mem_fun.individual_complex__components C_component_1]``() const;
+ ::std::complex<double> ``[link math_toolkit.quaternions.mem_fun.individual_complex__components C_component_2]``() const;
 
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<double> const & a_affecter);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<double> const & a_affecter);
       template<typename X>
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<X> const & a_affecter);
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(double const & a_affecter);
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(::std::complex<double> const & a_affecter);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<X> const & a_affecter);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(double const & a_affecter);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(::std::complex<double> const & a_affecter);
 
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(double const & rhs);
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(::std::complex<double> const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(double const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(::std::complex<double> const & rhs);
       template<typename X>
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(quaternion<X> const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(quaternion<X> const & rhs);
 
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(double const & rhs);
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(::std::complex<double> const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(double const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(::std::complex<double> const & rhs);
       template<typename X>
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(quaternion<X> const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(quaternion<X> const & rhs);
 
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(double const & rhs);
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(::std::complex<double> const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(double const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(::std::complex<double> const & rhs);
       template<typename X>
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(quaternion<X> const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(quaternion<X> const & rhs);
 
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(double const & rhs);
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(::std::complex<double> const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(double const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(::std::complex<double> const & rhs);
       template<typename X>
- quaternion<double>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(quaternion<X> const & rhs);
+ quaternion<double>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(quaternion<X> const & rhs);
    };
 
-[#boost_quaternions.quaternion_long_double]
+[#math_toolkit.quaternion_long_double]
 
    template<>
    class quaternion<long double>
    {
    public:
- typedef long double ``[link boost_quaternions.quaternions.mem_typedef value_type]``;
+ typedef long double ``[link math_toolkit.quaternions.mem_typedef value_type]``;
            
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(long double const & requested_a = 0.0L, long double const & requested_b = 0.0L, long double const & requested_c = 0.0L, long double const & requested_d = 0.0L);
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(::std::complex<long double> const & z0, ::std::complex<long double> const & z1 = ::std::complex<long double>());
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(quaternion<float> const & a_recopier);
- explicit ``[link boost_quaternions.quaternions.mem_fun.constructors quaternion]``(quaternion<double> const & a_recopier);
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(long double const & requested_a = 0.0L, long double const & requested_b = 0.0L, long double const & requested_c = 0.0L, long double const & requested_d = 0.0L);
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(::std::complex<long double> const & z0, ::std::complex<long double> const & z1 = ::std::complex<long double>());
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(quaternion<float> const & a_recopier);
+ explicit ``[link math_toolkit.quaternions.mem_fun.constructors quaternion]``(quaternion<double> const & a_recopier);
            
- long double ``[link boost_quaternions.quaternions.mem_fun.real_and_unreal_parts real]``() const;
- quaternion<long double> ``[link boost_quaternions.quaternions.mem_fun.real_and_unreal_parts unreal]``() const;
- long double ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_1]``() const;
- long double ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_2]``() const;
- long double ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_3]``() const;
- long double ``[link boost_quaternions.quaternions.mem_fun.individual_real_components R_component_4]``() const;
- ::std::complex<long double> ``[link boost_quaternions.quaternions.mem_fun.individual_complex__components C_component_1]``() const;
- ::std::complex<long double> ``[link boost_quaternions.quaternions.mem_fun.individual_complex__components C_component_2]``() const;
+ long double ``[link math_toolkit.quaternions.mem_fun.real_and_unreal_parts real]``() const;
+ quaternion<long double> ``[link math_toolkit.quaternions.mem_fun.real_and_unreal_parts unreal]``() const;
+ long double ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_1]``() const;
+ long double ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_2]``() const;
+ long double ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_3]``() const;
+ long double ``[link math_toolkit.quaternions.mem_fun.individual_real_components R_component_4]``() const;
+ ::std::complex<long double> ``[link math_toolkit.quaternions.mem_fun.individual_complex__components C_component_1]``() const;
+ ::std::complex<long double> ``[link math_toolkit.quaternions.mem_fun.individual_complex__components C_component_2]``() const;
 
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<long double> const & a_affecter);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<long double> const & a_affecter);
       template<typename X>
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<X> const & a_affecter);
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(long double const & a_affecter);
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.assignment_operators operator = ]``(::std::complex<long double> const & a_affecter);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(quaternion<X> const & a_affecter);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(long double const & a_affecter);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.assignment_operators operator = ]``(::std::complex<long double> const & a_affecter);
 
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(long double const & rhs);
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(::std::complex<long double> const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(long double const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(::std::complex<long double> const & rhs);
       template<typename X>
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.addition_operators operator += ]``(quaternion<X> const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.addition_operators operator += ]``(quaternion<X> const & rhs);
 
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(long double const & rhs);
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(::std::complex<long double> const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(long double const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(::std::complex<long double> const & rhs);
       template<typename X>
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.subtraction_operators operator -= ]``(quaternion<X> const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.subtraction_operators operator -= ]``(quaternion<X> const & rhs);
 
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(long double const & rhs);
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(::std::complex<long double> const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(long double const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(::std::complex<long double> const & rhs);
       template<typename X>
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.multiplication_operators operator *= ]``(quaternion<X> const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.multiplication_operators operator *= ]``(quaternion<X> const & rhs);
 
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(long double const & rhs);
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(::std::complex<long double> const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(long double const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(::std::complex<long double> const & rhs);
       template<typename X>
- quaternion<long double>& ``[link boost_quaternions.quaternions.mem_fun.division_operators operator /= ]``(quaternion<X> const & rhs);
+ quaternion<long double>& ``[link math_toolkit.quaternions.mem_fun.division_operators operator /= ]``(quaternion<X> const & rhs);
    };
 
    } // namespace math
@@ -738,7 +709,7 @@
 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.
 
-[#boost_quaternions.quaternions.creation_spherical] `spherical` is a simple transposition of `polar`, it takes as inputs
+[#math_toolkit.quaternions.creation_spherical] `spherical` is a simple transposition of `polar`, it takes as inputs
 a (positive) magnitude and a point on the hypersphere, given by three angles.
 The first of these, `theta` 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
@@ -747,23 +718,23 @@
 outside their natural ranges. The expected degeneracies (a magnitude of
 zero ignores the angles settings...) do happen however.
 
-[#boost_quaternions.quaternions.creation_cylindrical] `cylindrical` is likewise a simple transposition of the usual
+[#math_toolkit.quaternions.creation_cylindrical] `cylindrical` is likewise a simple transposition of the usual
 cylindrical coordinates in __R3, which in turn is another derivative of
 planar polar coordinates. The first two inputs are the polar coordinates of
 the first __C component of the quaternion. The third and fourth inputs
 are placed into the third and fourth __R components of the quaternion,
 respectively.
 
-[#boost_quaternions.quaternions.creation_multipolar] `multipolar` is yet another simple generalization of polar coordinates.
+[#math_toolkit.quaternions.creation_multipolar] `multipolar` is yet another simple generalization of polar coordinates.
 This time, both __C components of the quaternion are given in polar coordinates.
 
-[#boost_quaternions.quaternions.creation_cylindrospherical] `cylindrospherical` is specific to quaternions. It is often interesting to
+[#math_toolkit.quaternions.creation_cylindrospherical] `cylindrospherical` is specific to quaternions. It is often interesting to
 consider __H as the cartesian product of __R by __R3 (the quaternionic
 multiplication as then a special form, as given here). This function
 therefore builds a quaternion from this representation, with the __R3
 component given in usual __R3 spherical coordinates.
 
-[#boost_quaternions.quaternions.creation_semipolar] `semipolar` is another generator which is specific to quaternions.
+[#math_toolkit.quaternions.creation_semipolar] `semipolar` 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 `0` to `+pi/2` such that magnitudes
 of the first two __C components of the quaternion are the product of the
@@ -865,14 +836,14 @@
 
 [endsect]
 
-[section Test Program]
+[section:tests Test Program]
 
 The [@../../../quaternion/quaternion_test.cpp quaternion_test.cpp]
 test program tests quaternions specializations for float, double and long double
 ([@../../../quaternion/output.txt sample output], with message output
 enabled).
 
-If you define the symbol boost_quaternions_TEST_VERBOSE, you will get
+If you define the symbol math_toolkit_TEST_VERBOSE, you will get
 additional output ([@../../../quaternion/output_more.txt 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
@@ -893,7 +864,7 @@
 
 [endsect]
 
-[section Acknowledgements]
+[section:acknowledgement Acknowledgements]
 
 The mathematical text has been typeset with
 [@http://www.nisus-soft.com/ Nisus Writer]. Jens Maurer has helped with
@@ -903,7 +874,7 @@
 
 [endsect]
 
-[section History]
+[section:history History]
 
 * 1.5.8 - 17/12/2005: Converted documentation to Quickbook Format.
 * 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).
@@ -922,7 +893,7 @@
 * 1.0.0 - 10/08/1999: first public version.
 
 [endsect]
-[section To Do]
+[section:todo To Do]
 
 * Improve testing.
 * Rewrite input operatore using Spirit (creates a dependency).

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/Jamfile.v2
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/Jamfile.v2 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,89 +0,0 @@
-
-# Copyright John Maddock 2005. Use, modification, and distribution are
-# subject to the Boost Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-using quickbook ;
-using auto-index ;
-import modules ;
-
-path-constant images_location : html ;
-path-constant here : . ;
-
-xml math : math.qbk ;
-boostbook standalone
- :
- math
- :
- # Path for links to Boost:
- <xsl:param>boost.root=../../../../..
-
- # Some general style settings:
- <xsl:param>table.footnote.number.format=1
- <xsl:param>footnote.number.format=1
-
- # HTML options first:
- # Use graphics not text for navigation:
- <xsl:param>navig.graphics=1
- # How far down we chunk nested sections, basically all of them:
- <xsl:param>chunk.section.depth=10
- # Don't put the first section on the same page as the TOC:
- <xsl:param>chunk.first.sections=1
- # How far down sections get TOC's
- <xsl:param>toc.section.depth=10
- # Max depth in each TOC:
- <xsl:param>toc.max.depth=4
- # How far down we go with TOC's
- <xsl:param>generate.section.toc.level=10
- # Index on type:
- <xsl:param>index.on.type=1
-
- #<xsl:param>root.filename="sf_dist_and_tools"
- #<xsl:param>graphicsize.extension=1
- #<xsl:param>use.extensions=1
-
- # PDF Options:
- # TOC Generation: this is needed for FOP-0.9 and later:
- <xsl:param>fop1.extensions=0
- <format>pdf:<xsl:param>xep.extensions=1
- # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
- <format>pdf:<xsl:param>fop.extensions=0
- <format>pdf:<xsl:param>fop1.extensions=0
- # No indent on body text:
- <format>pdf:<xsl:param>body.start.indent=0pt
- # Margin size:
- <format>pdf:<xsl:param>page.margin.inner=0.5in
- # Margin size:
- <format>pdf:<xsl:param>page.margin.outer=0.5in
- # Paper type = A4
- <format>pdf:<xsl:param>paper.type=A4
- # Yes, we want graphics for admonishments:
- <xsl:param>admon.graphics=1
- # Set this one for PDF generation *only*:
- # default pnd graphics are awful in PDF form,
- # better use SVG's instead:
- <format>pdf:<xsl:param>admon.graphics.extension=".svg"
- <format>pdf:<xsl:param>use.role.for.mediaobject=1
- <format>pdf:<xsl:param>preferred.mediaobject.role=print
- <format>pdf:<xsl:param>img.src.path=$(images_location)/
- <format>pdf:<xsl:param>draft.mode="no"
- <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/math/doc/sf_and_dist/html
- <auto-index>on <format>pdf:<auto-index-internal>off
- <format>html:<auto-index-internal>on
- <auto-index-script>$(here)/index.idx
- <auto-index-prefix>$(here)/../../../..
- <auto-index-verbose>on
- <quickbook-define>enable_index
- <format>pdf:<xsl:param>index.on.type=1
- ;
-
-install pdfinstall : standalone/<format>pdf : <location>. <install-type>PDF <name>math.pdf ;
-explicit pdfinstall ;
-
-
-
-
-
-
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/background.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/background.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,84 +0,0 @@
-[section:variates Random Variates and Distribution Parameters]
-
-[@http://en.wikipedia.org/wiki/Random_variate Random variates]
-and [@http://en.wikipedia.org/wiki/Parameter distribution parameters]
-are conventionally distinguished (for example in Wikipedia and Wolfram MathWorld
-by placing a semi-colon after the __random_variate (whose value you 'choose'),
-to separate the variate from the parameter(s) that defines the shape of the distribution.
-
-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 /k/: the number of successes observed.
-This means the probability density\/mass function (pdf) is written as ['f(k; n, p)].
-
-Translating this into code the `binomial_distribution` constructor
-therefore has two parameters:
-
- binomial_distribution(RealType n, RealType p);
-
-While the function `pdf` has one argument specifying the distribution type
-(which includes its parameters, if any),
-and a second argument for the __random_variate. So taking our binomial distribution
-example, we would write:
-
- pdf(binomial_distribution<RealType>(n, p), k);
-
-[endsect]
-
-[section:dist_params Discrete Probability Distributions]
-
-Note that the [@http://en.wikipedia.org/wiki/Discrete_probability_distribution
-discrete distributions], including the binomial, negative binomial, Poisson & Bernoulli,
-are all mathematically defined as discrete functions:
-only integral values of the __random_variate 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.
-
-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.
-
-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.
-
-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.
-
-[caution
-The quantile function of a discrete distribution will by
-default return an integer result that has been
-/rounded outwards/. 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 /at least/ the requested
-coverage will be present in the central region, and /no more than/
-the requested coverage will be present in the tails.
-
-This behaviour can be changed so that the quantile functions are rounded
-differently, or even return a real-valued result using
-[link math_toolkit.policy.pol_overview Policies]. It is strongly
-recommended that you read the tutorial
-[link math_toolkit.policy.pol_tutorial.understand_dis_quant
-Understanding Quantiles of Discrete Distributions] before
-using the quantile function on a discrete distribution. The
-[link math_toolkit.policy.pol_ref.discrete_quant_ref reference docs]
-describe how to change the rounding policy
-for these distributions.
-]
-
-[endsect]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/building.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/building.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,106 +0,0 @@
-[section:building If and How to Build a Boost.Math Library, and its Examples and Tests]
-
-[h4 Building a Library (shared, dynamic .dll or static .lib)]
-
-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).
-
-For most simple uses,
-including a header (or few) is best for compile time and program size.
-
-Refer to
-[link math_toolkit.extern_c C99 and C++ TR1 C-style Functions]
-for pros and cons of using
-the TR1 components as opposed to the header only ones.
-
-The ['only] time you ['need] to build the library is if you want to use the
-`extern "C"` functions declared in `<boost/math/tr1.hpp>`. To build this
-using Boost.Build, from a commandline boost-root directory issue a command like:
-
- bjam toolset=gcc --with-math install
-
-that will do the job on Linux, while:
-
- bjam toolset=msvc --with-math --build-type=complete stage
-
-will work better on Windows (leaving libraries built
-in sub-folder `/stage` below your Boost root directory).
-Either way you should consult the
-[@http://www.boost.org/doc/libs/release/more/getting_started/index.html
-getting started guide] for more information.
-
-You can also build the libraries from your favourite IDE or command line tool:
-each `extern "C"` function declared in `<boost/math/tr1.hpp>` has its own
-source file with the same name in `libs/math/src/tr1`. 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 `libs/math/src/tr1` 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).
-
-[note 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 `<boost/math/tr1.hpp>` 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).
-]
-
-Optionally the sources in `libs/math/src/tr1` have support for using
-`libs/math/src/tr1/pch.hpp` as a precompiled header
-['if your compiler supports precompiled headers.] 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.
-
-[h4 Building the Examples]
-
-The examples are all located in `libs/math/example`, 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.
-
-[h4 Building the Tests]
-
-The tests are located in `libs/math/test` 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 `libs/math/test` to the list of your compiler's
-search paths.
-
-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
-[@http://www.boost.org/doc/libs/release/more/getting_started/index.html
-getting started guide], using a command such as:
-
- bjam toolset=gcc --with-regex install
-
-or
-
- bjam toolset=msvc --with-regex --build-type=complete stage
-
-depending on whether you are on Linux or Windows.
-
-Many of the tests have optional precompiled header support
-using the header `libs/math/test/pch.hpp`.
-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.
-
-[endsect]
-
-[/ building.qbk
- Copyright 2006, 2007, 2008, 2010 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/c99_ref.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/c99_ref.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,299 +0,0 @@
-[section:c99 C99 C Functions]
-
-[h4 Supported C99 Functions]
-
- namespace boost{ namespace math{ namespace tr1{ extern "C"{
-
- typedef unspecified float_t;
- typedef unspecified double_t;
-
- double acosh(double x);
- float acoshf(float x);
- long double acoshl(long double x);
-
- double asinh(double x);
- float asinhf(float x);
- long double asinhl(long double x);
-
- double atanh(double x);
- float atanhf(float x);
- long double atanhl(long double x);
-
- double cbrt(double x);
- float cbrtf(float x);
- long double cbrtl(long double x);
-
- double copysign(double x, double y);
- float copysignf(float x, float y);
- long double copysignl(long double x, long double y);
-
- double erf(double x);
- float erff(float x);
- long double erfl(long double x);
-
- double erfc(double x);
- float erfcf(float x);
- long double erfcl(long double x);
-
- double expm1(double x);
- float expm1f(float x);
- long double expm1l(long double x);
-
- double fmax(double x, double y);
- float fmaxf(float x, float y);
- long double fmaxl(long double x, long double y);
-
- double fmin(double x, double y);
- float fminf(float x, float y);
- long double fminl(long double x, long double y);
-
- double hypot(double x, double y);
- float hypotf(float x, float y);
- long double hypotl(long double x, long double y);
-
- double lgamma(double x);
- float lgammaf(float x);
- long double lgammal(long double x);
-
- long long llround(double x);
- long long llroundf(float x);
- long long llroundl(long double x);
-
- double log1p(double x);
- float log1pf(float x);
- long double log1pl(long double x);
-
- long lround(double x);
- long lroundf(float x);
- long lroundl(long double x);
-
- double nextafter(double x, double y);
- float nextafterf(float x, float y);
- long double nextafterl(long double x, long double y);
-
- double nexttoward(double x, long double y);
- float nexttowardf(float x, long double y);
- long double nexttowardl(long double x, long double y);
-
- double round(double x);
- float roundf(float x);
- long double roundl(long double x);
-
- double tgamma(double x);
- float tgammaf(float x);
- long double tgammal(long double x);
-
- double trunc(double x);
- float truncf(float x);
- long double truncl(long double x);
-
- }}}} // namespaces
-
-In addition sufficient additional overloads of the `double` versions of the
-above functions are provided, so that calling the function with any mixture
-of `float`, `double`, `long double`, or /integer/ arguments is supported, with the
-return type determined by the __arg_pomotion_rules.
-
-For example:
-
- acoshf(2.0f); // float version, returns float.
- acosh(2.0f); // also calls the float version and returns float.
- acosh(2.0); // double version, returns double.
- acoshl(2.0L); // long double version, returns a long double.
- acosh(2.0L); // also calls the long double version.
- acosh(2); // integer argument is treated as a double, returns double.
-
-[h4 Quick Reference]
-
-More detailed descriptions of these functions are available in the
-C99 standard.
-
- typedef unspecified float_t;
- typedef unspecified double_t;
-
-In this implementation `float_t` is the same as type `float`, and
-`double_t` the same as type `double` unless the preprocessor symbol
-FLT_EVAL_METHOD is defined, in which case these are set as follows:
-
-[table
-[[FLT_EVAL_METHOD][float_t][double_t]]
-[[0][float][double]]
-[[1][double][double]]
-[[2][long double][long double]]
-]
-
- double acosh(double x);
- float acoshf(float x);
- long double acoshl(long double x);
-
-Returns the inverse hyperbolic cosine of /x/.
-
-See also __acosh for the full template (header only) version of this function.
-
- double asinh(double x);
- float asinhf(float x);
- long double asinhl(long double x);
-
-Returns the inverse hyperbolic sine of /x/.
-
-See also __asinh for the full template (header only) version of this function.
-
- double atanh(double x);
- float atanhf(float x);
- long double atanhl(long double x);
-
-Returns the inverse hyperbolic tangent of /x/.
-
-See also __atanh for the full template (header only) version of this function.
-
- double cbrt(double x);
- float cbrtf(float x);
- long double cbrtl(long double x);
-
-Returns the cubed root of /x/.
-
-See also __cbrt for the full template (header only) version of this function.
-
- double copysign(double x, double y);
- float copysignf(float x, float y);
- long double copysignl(long double x, long double y);
-
-Returns a value with the magnitude of /x/ and the sign of /y/.
-
- double erf(double x);
- float erff(float x);
- long double erfl(long double x);
-
-Returns the error function of /x/:
-
-[equation erf1]
-
-See also __erf for the full template (header only) version of this function.
-
- double erfc(double x);
- float erfcf(float x);
- long double erfcl(long double x);
-
-Returns the complementary error function of /x/ `1-erf(x)` without the loss
-of precision implied by the subtraction.
-
-See also __erfc for the full template (header only) version of this function.
-
- double expm1(double x);
- float expm1f(float x);
- long double expm1l(long double x);
-
-Returns `exp(x)-1` without the loss
-of precision implied by the subtraction.
-
-See also __expm1 for the full template (header only) version of this function.
-
- double fmax(double x, double y);
- float fmaxf(float x, float y);
- long double fmaxl(long double x, long double y);
-
-Returns the larger (most positive) of /x/ and /y/.
-
- double fmin(double x, double y);
- float fminf(float x, float y);
- long double fminl(long double x, long double y);
-
-Returns the smaller (most negative) of /x/ and /y/.
-
- double hypot(double x, double y);
- float hypotf(float x, float y);
- long double hypotl(long double x, long double y);
-
-Returns `sqrt(x*x + y*y)` without the danger of numeric overflow
-implied by that formulation.
-
-See also __hypot for the full template (header only) version of this function.
-
- double lgamma(double x);
- float lgammaf(float x);
- long double lgammal(long double x);
-
-Returns the log of the gamma function of /x/.
-
-[equation lgamm1]
-
-See also __lgamma for the full template (header only) version of this function.
-
- long long llround(double x);
- long long llroundf(float x);
- long long llroundl(long double x);
-
-Returns the value /x/ rounded to the nearest integer as a `long long`:
-equivalent to `floor(x + 0.5)`
-
-See also __llround for the full template (header only) version of this function.
-
- double log1p(double x);
- float log1pf(float x);
- long double log1pl(long double x);
-
-Returns the `log(x+1)` without the loss of precision
-implied by that formulation.
-
-See also __log1p for the full template (header only) version of this function.
-
- long lround(double x);
- long lroundf(float x);
- long lroundl(long double x);
-
-Returns the value /x/ rounded to the nearest integer as a `long`:
-equivalent to `floor(x + 0.5)`
-
-See also __lround for the full template (header only) version of this function.
-
- double nextafter(double x, double y);
- float nextafterf(float x, float y);
- long double nextafterl(long double x, long double y);
-
-Returns the next representable floating point number after /x/
-in the direction of /y/, or /x/ if `x == y`.
-
- double nexttoward(double x, long double y);
- float nexttowardf(float x, long double y);
- long double nexttowardl(long double x, long double y);
-
-As `nextafter`, but with /y/ always expressed as a `long double`.
-
- double round(double x);
- float roundf(float x);
- long double roundl(long double x);
-
-Returns the value /x/ rounded to the nearest integer:
-equivalent to `floor(x + 0.5)`
-
-See also __round for the full template (header only) version of this function.
-
- double tgamma(double x);
- float tgammaf(float x);
- long double tgammal(long double x);
-
-Returns the gamma function of /x/:
-
-[equation gamm1]
-
-See also __tgamma for the full template (header only) version of this function.
-
- double trunc(double x);
- float truncf(float x);
- long double truncl(long double x);
-
-Returns /x/ truncated to the nearest integer.
-
-See also __trunc for the full template (header only) version of this function.
-
-See also [@http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf C99 ISO Standard]
-
-[endsect]
-
-[/
- Copyright 2008 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/common_overviews.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/common_overviews.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,225 +0,0 @@
-
-
-[template policy_overview[]
-
-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 [link math_toolkit.policy.pol_tutorial policy tutorial]
-and the [link math_toolkit.policy.pol_ref policy reference].
-
-Generally speaking, unless you find that the
-[link math_toolkit.policy.pol_tutorial.policy_tut_defaults
- default policy behaviour]
-when encountering 'bad' argument values does not meet your needs,
-you should not need to worry about policies.
-
-Policies are a compile-time mechanism that allow you to change
-error-handling or calculation precision either
-program wide, or at the call site.
-
-Although the policy mechanism itself is rather complicated,
-in practice it is easy to use, and very flexible.
-
-Using policies you can control:
-
-* [link math_toolkit.policy.pol_ref.error_handling_policies How results from 'bad' arguments are handled],
- including those that cannot be fully evaluated.
-* How [link math_toolkit.policy.pol_ref.internal_promotion accuracy is controlled by internal promotion] to use more precise types.
-* What working [link math_toolkit.policy.pol_ref.precision_pol precision] should be used to calculate results.
-* What to do when a [link math_toolkit.policy.pol_ref.assert_undefined mathematically undefined function]
- is used: Should this raise a run-time or compile-time error?
-* Whether [link math_toolkit.policy.pol_ref.discrete_quant_ref discrete functions],
- like the binomial, should return real or only integral values, and how they are rounded.
-* 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
- __evaluation_error.
-
-You can control policies:
-
-* Using [link math_toolkit.policy.pol_ref.policy_defaults macros] to
-change any default policy: the is the prefered method for installation
-wide policies.
-* At your chosen [link math_toolkit.policy.pol_ref.namespace_pol
-namespace scope] for distributions and/or functions: this is the
-prefered method for project, namespace, or translation unit scope
-policies.
-* In an ad-hoc manner [link math_toolkit.policy.pol_tutorial.ad_hoc_sf_policies
-by passing a specific policy to a special function], or to a
-[link math_toolkit.policy.pol_tutorial.ad_hoc_dist_policies
-statistical distribution].
-
-]
-
-[template performance_overview[]
-
-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 /not/ speed.
-
-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.
-
-The two most important things you can do to ensure the best performance
-from this library are:
-
-# Turn on your compilers optimisations: the difference between "release"
-and "debug" builds can easily be a [link math_toolkit.perf.getting_best factor of 20].
-# Pick your compiler carefully: [link math_toolkit.perf.comp_compilers
-performance differences of up to
-8 fold] have been found between some Windows compilers for example.
-
-The [link math_toolkit.perf performance section] 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.
-
-]
-
-[template compilers_overview[]
-
-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.
-
-[table Supported/Tested Compilers
-[[Platform][Compiler][Has long double support][Notes]]
-[[Windows][MSVC 7.1 and later][Yes]
- [All tests OK.
-
- We aim to keep our headers warning free at level 4 with
- this compiler.]]
-[[Windows][Intel 8.1 and later][Yes]
- [All tests OK.
-
- 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.]]
-[[Windows][GNU Mingw32 C++][Yes]
- [All tests OK.
-
- We aim to keep our headers warning free with -Wall with this compiler.]]
-[[Windows][GNU Cygwin C++][No]
- [All tests OK.
-
- We aim to keep our headers warning free with -Wall with this compiler.
-
- Long double support has been disabled because there are no native
- long double C std library functions available.]]
-[[Windows][Borland C++ 5.8.2 (Developer studio 2006)][No]
- [We have only partial compatability with this compiler:
-
- 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 `sqrtl` applied to a
- finite value, can result in an infinite result.
-
- Some functions still fail to compile, there are no known workarounds at present.]]
-[[Windows 7/Netbeans 7.2][Clang 3.1][Yes][Spot examples OK. Expect all tests to compile and run OK.]]
-
-[[Linux][GNU C++ 3.4 and later][Yes]
- [All tests OK.
-
- We aim to keep our headers warning free with -Wall with this compiler.]]
-[[Linux][Clang 3.2][Yes][All tests OK.]]
-[[Linux][Intel C++ 10.0 and later][Yes]
- [All tests OK.
-
- 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.]]
-[[Linux][Intel C++ 8.1 and 9.1][No]
- [All tests OK.
-
- 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 boost/math/tools/config.hpp].
-
- 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.]]
-[[Linux][QLogic PathScale 3.0][Yes]
- [Some tests involving conceptual checks fail to build, otherwise
- there appear to be no issues.]]
-[[Linux][Sun Studio 12][Yes]
- [Some tests involving function overload resolution fail to build,
- these issues should be rairly encountered in practice.]]
-[[Solaris][Sun Studio 12][Yes]
- [Some tests involving function overload resolution fail to build,
- these issues should be rairly encountered in practice.]]
-[[Solaris][GNU C++ 4.x][Yes]
- [All tests OK.
-
- We aim to keep our headers warning free with -Wall with this compiler.]]
-[[HP Tru64][Compaq C++ 7.1][Yes]
- [All tests OK.]]
-[[HP-UX Itanium][HP aCC 6.x][Yes]
- [All tests OK.
-
- Unfortunately this compiler emits quite a few warnings from libraries
- upon which we depend (TR1, Array etc).]]
-[[HP-UX PA-RISC][GNU C++ 3.4][No]
- [All tests OK.]]
-[[Apple Mac OS X, Intel][Darwin/GNU C++ 4.x][Yes][All tests OK.]]
-[[Apple Mac OS X, PowerPC][Darwin/GNU C++ 4.x][No]
- [All tests OK.
-
- 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.]]
-[[Apple Mac OS X,][Clang 3.2][Yes][All tests expected to be OK.]]
-[[IBM AIX][IBM xlc 5.3][Yes]
- [All tests pass except for our fpclassify tests which fail due to a
- bug in `std::numeric_limits`, the bug effects the test code, not
- fpclassify itself. The IBM compiler group are aware of the problem.]]
-]
-
-[table Unsupported Compilers
-[[Platform][Compiler]]
-[[Windows][Borland C++ 5.9.2 (Borland Developer Studio 2007)]]
-[[Windows][MSVC 6 and 7]]
-]
-
-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:
-
- bjam mytoolset
-
-where "mytoolset" is the name of the
-[@../../../../../tools/build/index.html Boost.Build] toolset used for your
-compiler. The chances are that [*many of the accuracy tests will fail
-at this stage] - 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.
-]
-
-[/ math.qbk
- Copyright 2007, 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/concepts.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/concepts.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,637 +0,0 @@
-[section:high_precision Using Boost.Math with High-Precision Floating-Point Libraries]
-
-The special functions, distributions, constants and tools in this library
-can be used with a number of high-precision libraries, including:
-
-* __multiprecision
-* __e_float
-* __NTL
-* __GMP
-* __MPFR
-* __float128
-
-The last four have some license restrictions;
-only __multiprecision when using the `cpp_float` backend
-can provide an unrestricted [@http://www.boost.org/LICENSE_1_0.txt Boost] license.
-
-At present, the price of a free license is slightly lower speed.
-
-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.
-
-Some libraries offer true
-[@http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic arbitrary precision arithmetic]
-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.
-
-__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.
-
-[section:why_high_precision Why use a high-precision library rather than built-in floating-point types?]
-
-For nearly all applications, the built-in floating-point types, `double`
-(and `long double` if this offers higher precision than `double`)
-offer enough precision, typically a dozen decimal digits.
-
-Some reasons why one would want to use a higher precision:
-
-* A much more precise result (many more digits) is just a requirement.
-* The range of the computed value exceeds the range of the type: factorials are the textbook example.
-* Using double is (or may be) too inaccurate.
-* Using long double (or may be) is too inaccurate.
-* Using an extended precision type implemented in software as
-[@http://en.wikipedia.org/wiki/Double-double_(arithmetic)#Double-double_arithmetic double-double]
-([@http://en.wikipedia.org/wiki/Darwin_(operating_system) Darwin]) is sometimes unpredictably inaccurate.
-* Loss of precision or inaccuracy caused by extreme arguments or cancellation error.
-* An accuracy as good as possible for a chosen built-in floating-point type is required.
-* 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).
-
-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.
-
-Much larger loss of precision can occur for [@http://en.wikipedia.org/wiki/Boundary_case boundary]
-or [@http://en.wikipedia.org/wiki/Corner_case corner cases],
-often caused by [@http://en.wikipedia.org/wiki/Loss_of_significance cancellation errors].
-
-(Some of the worst and most common examples of
-[@http://en.wikipedia.org/wiki/Loss_of_significance cancellation error or loss of significance]
-can be avoided by using __complements: see __why_complements).
-
-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
-[@http://en.wikipedia.org/wiki/Least_significant_bit least significant bit] or
-[@http://en.wikipedia.org/wiki/Unit_in_the_last_place ulp]
-it may be useful to use a higher-precision type,
-for example, `cpp_dec_float_50`, to generate this value.
-Conversion of this value to a built-in floating-point type ('float', `double` or `long double`)
-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.
-
-[note In contrast, reading a value from an `std::istream` into a built-in floating-point type
-is [*not guaranteed] by the C++ Standard to give the nearest representable value.]
-
-William Kahan coined the term
-[@http://en.wikipedia.org/wiki/Rounding#The_table-maker.27s_dilemma Table-Maker's Dilemma]
-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.
-
-[endsect] [/section:why_high_precision Why use a high-precision library rather than built-in floating-point types?]
-
-[section:use_multiprecision Using Boost.Multiprecision]
-
-[*All new projects are recommended to use __multiprecision.]
-
-[import ../../example/big_seventh.cpp]
-
-[big_seventh_example_1]
-
-[import ../../example/fft_sines_table.cpp]
-
-[fft_sines_table_example_1]
-
-The table output is:
-
-[fft_sines_table_example_output]
-
-[fft_sines_table_example_check]
-
-
-[/TODO another example needed here]
-
-[/import ../../example/ibeta_mp_example.cpp]
-
-[/ibeta_mp_example_1]
-
-[/The program output is:]
-
-[/ibeta_mp_output_1]
-
-[endsect] [/section:use_multiprecision Using Boost.Multiprecision]
-
-[section:float128 Using with GCC's __float128 datatype]
-
-At present support for GCC's native `__float128` 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:
-
-* Provides std::numeric_limits<__float128> support.
-* Provides overloads of the standard library math function for type __float128 and which forward to the libquadmath equivalents.
-
-Ultimately these facilities should be provided by GCC and libstdc++.
-
-[endsect]
-
-[section:use_mpfr Using With MPFR or GMP - High-Precision Floating-Point Library]
-
-The special functions and tools in this library can be used with
-[@http://www.mpfr.org MPFR] (an arbitrary precision number type based on the __GMP),
-either via the bindings in [@../../../../../boost/math/bindings/mpfr.hpp boost/math/bindings/mpfr.hpp],
-or via [@../../../../../boost/math/bindings/mpfr.hpp boost/math/bindings/mpreal.hpp].
-
-[*New projects are recommended to use __multiprecision with GMP/MPFR backend instead.]
-
-In order to use these bindings you will need to have installed [@http://www.mpfr.org MPFR]
-plus its dependency the [@http://gmplib.org GMP library]. You will also need one of the
-two supported C++ wrappers for MPFR:
-[@http://math.berkeley.edu/~wilken/code/gmpfrxx/ gmpfrxx (or mpfr_class)],
-or [@http://www.holoborodko.com/pavel/mpfr/ mpfr-C++ (mpreal)].
-
-Unfortunately neither `mpfr_class` nor `mpreal` 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 boost/math/bindings/mpfr.hpp] and
-[@../../../../../boost/math/bindings/mpreal.hpp boost/math/bindings/mpreal.hpp]
-that you should use in place of including 'gmpfrxx.h' or 'mpreal.h' directly.
-The classes `mpfr_class` or `mpreal` are
-then usable unchanged once this header is included, so for example `mpfr_class`'s
-performance-enhancing expression templates are preserved and fully supported by this library:
-
- #include <boost/math/bindings/mpfr.hpp>
- #include <boost/math/special_functions/gamma.hpp>
-
- int main()
- {
- mpfr_class::set_dprec(500); // 500 bit precision
- //
- // Note that the argument to tgamma is
- // an expression template - that's just fine here.
- //
- mpfr_class v = boost::math::tgamma(sqrt(mpfr_class(2)));
- std::cout << std::setprecision(50) << v << std::endl;
- }
-
-Alternatively use with `mpreal` would look like:
-
- #include <boost/math/bindings/mpreal.hpp>
- #include <boost/math/special_functions/gamma.hpp>
-
- int main()
- {
- mpfr::mpreal::set_precision(500); // 500 bit precision
- mpfr::mpreal v = boost::math::tgamma(sqrt(mpfr::mpreal(2)));
- std::cout << std::setprecision(50) << v << std::endl;
- }
-
-For those functions that are based upon the __lanczos, 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 `mpfr_class` or `mpreal`.
-
-There is a concept checking test program for mpfr support
-[@../../../../../libs/math/test/mpfr_concept_check.cpp here] and
-[@../../../../../libs/math/test/mpreal_concept_check.cpp here].
-
-[endsect] [/section:use_mpfr Using With MPFR / GMP - a High-Precision Floating-Point Library]
-
-[section:e_float Using e_float Library]
-
-__multiprecision was a development from the __e_float library by Christopher Kormanyos.
-
-e_float can still be used with Boost.Math library via the header:
-
- <boost/math/bindings/e_float.hpp>
-
-And the type `boost::math::ef::e_float`:
-this type is a thin wrapper class around ::e_float which provides the necessary
-syntactic sugar to make everything "just work".
-
-There is also a concept checking test program for e_float support
-[@../../../../../libs/math/test/e_float_concept_check.cpp here].
-
-[*New projects are recommended to use __multiprecision with `cpp_float` backend instead.]
-
-[endsect] [/section:e_float Using e_float Library]
-
-[section:use_ntl Using NTL Library]
-
-[@http://shoup.net/ntl/doc/RR.txt NTL::RR]
-(an arbitrarily-fixed precision floating-point number type),
-can be used via the bindings in
-[@../../../../../boost/math/bindings/rr.hpp boost/math/bindings/rr.hpp].
-For details, see [@http://shoup.net/ntl/ NTL: A Library for doing Number Theory by
-Victor Shoup].
-
-[*New projects are recommended to use __multiprecision instead.]
-
-Unfortunately `NTL::RR` doesn't quite satisfy our conceptual requirements,
-so there is a very thin wrapper class `boost::math::ntl::RR` defined in
-[@../../../../../boost/math/bindings/rr.hpp boost/math/bindings/rr.hpp] that you
-should use in place of `NTL::RR`. 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.
-
-For those functions that are based upon the __lanczos, 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 `NTL::RR`.
-
-There is a concept checking test program for NTL support
-[@../../../../../libs/math/test/ntl_concept_check.cpp here].
-
-
-[endsect] [/section:use_ntl Using With NTL - a High-Precision Floating-Point Library]
-
-[section:using_test Using without expression templates for Boost.Test and others]
-
-As noted in the __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.
-
-If, for example, you wish to use any multiprecision type like `cpp_dec_float_50`
-in place of `double` to give more precision,
-you will need to override the default `boost::multiprecision::et_on` with
-`boost::multiprecision::et_off`.
-
-[import ../../example/test_cpp_float_close_fraction.cpp]
-
-[expression_template_1]
-
-A full example code is at [@../../../example/test_cpp_float_close_fraction.cpp test_cpp_float_close_fraction.cpp]
-
-[endsect] [/section:using_test Using without expression templates for Boost.Test and others]
-
-[endsect] [/section:high_precision Using With High-Precision Floating-Point Libraries]
-
-
-[section:concepts Conceptual Requirements for Real Number Types]
-
-The functions, and statistical distributions in this library can be used with
-any type /RealType/ 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.
-
-For example, with [link math_toolkit.using_udt.high_precision.use_ntl a thin wrapper class]
-one of the types provided with [@http://shoup.net/ntl/ NTL (RR)] can be used.
-But now that __multiprecision library is available,
-this has become the reference real number type.
-
-Submissions of binding to other extended precision types would also still be welcome.
-
-The guiding principal behind these requirements is that a /RealType/
-behaves just like a built-in floating-point type.
-
-[h4 Basic Arithmetic Requirements]
-
-These requirements are common to all of the functions in this library.
-
-In the following table /r/ is an object of type `RealType`, /cr/ and
-/cr2/ are objects
-of type `const RealType`, and /ca/ is an object of type `const arithmetic-type`
-(arithmetic types include all the built in integers and floating point types).
-
-[table
-[[Expression][Result Type][Notes]]
-[[`RealType(cr)`][RealType]
- [RealType is copy constructible.]]
-[[`RealType(ca)`][RealType]
- [RealType is copy constructible from the arithmetic types.]]
-[[`r = cr`][RealType&][Assignment operator.]]
-[[`r = ca`][RealType&][Assignment operator from the arithmetic types.]]
-[[`r += cr`][RealType&][Adds cr to r.]]
-[[`r += ca`][RealType&][Adds ar to r.]]
-[[`r -= cr`][RealType&][Subtracts cr from r.]]
-[[`r -= ca`][RealType&][Subtracts ca from r.]]
-[[`r *= cr`][RealType&][Multiplies r by cr.]]
-[[`r *= ca`][RealType&][Multiplies r by ca.]]
-[[`r /= cr`][RealType&][Divides r by cr.]]
-[[`r /= ca`][RealType&][Divides r by ca.]]
-[[`-r`][RealType][Unary Negation.]]
-[[`+r`][RealType&][Identity Operation.]]
-[[`cr + cr2`][RealType][Binary Addition]]
-[[`cr + ca`][RealType][Binary Addition]]
-[[`ca + cr`][RealType][Binary Addition]]
-[[`cr - cr2`][RealType][Binary Subtraction]]
-[[`cr - ca`][RealType][Binary Subtraction]]
-[[`ca - cr`][RealType][Binary Subtraction]]
-[[`cr * cr2`][RealType][Binary Multiplication]]
-[[`cr * ca`][RealType][Binary Multiplication]]
-[[`ca * cr`][RealType][Binary Multiplication]]
-[[`cr / cr2`][RealType][Binary Subtraction]]
-[[`cr / ca`][RealType][Binary Subtraction]]
-[[`ca / cr`][RealType][Binary Subtraction]]
-[[`cr == cr2`][bool][Equality Comparison]]
-[[`cr == ca`][bool][Equality Comparison]]
-[[`ca == cr`][bool][Equality Comparison]]
-[[`cr != cr2`][bool][Inequality Comparison]]
-[[`cr != ca`][bool][Inequality Comparison]]
-[[`ca != cr`][bool][Inequality Comparison]]
-[[`cr <= cr2`][bool][Less than equal to.]]
-[[`cr <= ca`][bool][Less than equal to.]]
-[[`ca <= cr`][bool][Less than equal to.]]
-[[`cr >= cr2`][bool][Greater than equal to.]]
-[[`cr >= ca`][bool][Greater than equal to.]]
-[[`ca >= cr`][bool][Greater than equal to.]]
-[[`cr < cr2`][bool][Less than comparison.]]
-[[`cr < ca`][bool][Less than comparison.]]
-[[`ca < cr`][bool][Less than comparison.]]
-[[`cr > cr2`][bool][Greater than comparison.]]
-[[`cr > ca`][bool][Greater than comparison.]]
-[[`ca > cr`][bool][Greater than comparison.]]
-[[`boost::math::tools::digits<RealType>()`][int]
- [The number of digits in the significand of RealType.]]
-[[`boost::math::tools::max_value<RealType>()`][RealType]
- [The largest representable number by type RealType.]]
-[[`boost::math::tools::min_value<RealType>()`][RealType]
- [The smallest representable number by type RealType.]]
-[[`boost::math::tools::log_max_value<RealType>()`][RealType]
- [The natural logarithm of the largest representable number by type RealType.]]
-[[`boost::math::tools::log_min_value<RealType>()`][RealType]
- [The natural logarithm of the smallest representable number by type RealType.]]
-[[`boost::math::tools::epsilon<RealType>()`][RealType]
- [The machine epsilon of RealType.]]
-]
-
-Note that:
-
-# The functions `log_max_value` and `log_min_value` can be
-synthesised from the others, and so no explicit specialisation is required.
-# The function `epsilon` 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 boost/math/bindings/rr.hpp]
-for an example where the precision does vary at runtime).
-# The functions `digits`, `max_value` and `min_value`, all get synthesised
-automatically from `std::numeric_limits`. However, if `numeric_limits`
-is not specialised for type RealType, then you will get a compiler error
-when code tries to use these functions, /unless/ you explicitly specialise them.
-For example if the precision of RealType varies at runtime, then
-`numeric_limits` support may not be appropriate, see
-[@../../../../../boost/math/bindings/rr.hpp boost/math/bindings/rr.hpp] for examples.
-
-[warning
-If `std::numeric_limits<>` is *not specialized*
-for type /RealType/ then the default float precision of 6 decimal digits
-will be used by other Boost programs including:
-
-Boost.Test: giving misleading error messages like
-
-['"difference between {9.79796} and {9.79796} exceeds 5.42101e-19%".]
-
-Boost.LexicalCast and Boost.Serialization when converting the number
-to a string, causing potentially serious loss of accuracy on output.
-
-Although it might seem obvious that RealType should require `std::numeric_limits`
-to be specialized, this is not sensible for
-`NTL::RR` and similar classes where the number of digits is a runtime
-parameter (where as for `numeric_limits` it has to be fixed at compile time).
-]
-
-[h4 Standard Library Support Requirements]
-
-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!
-
-In the following table /r/ is an object of type `RealType`,
-/cr1/ and /cr2/ are objects of type `const RealType`, and
-/i/ is an object of type `int`.
-
-[table
-[[Expression][Result Type]]
-[[`fabs(cr1)`][RealType]]
-[[`abs(cr1)`][RealType]]
-[[`ceil(cr1)`][RealType]]
-[[`floor(cr1)`][RealType]]
-[[`exp(cr1)`][RealType]]
-[[`pow(cr1, cr2)`][RealType]]
-[[`sqrt(cr1)`][RealType]]
-[[`log(cr1)`][RealType]]
-[[`frexp(cr1, &i)`][RealType]]
-[[`ldexp(cr1, i)`][RealType]]
-[[`cos(cr1)`][RealType]]
-[[`sin(cr1)`][RealType]]
-[[`asin(cr1)`][RealType]]
-[[`tan(cr1)`][RealType]]
-[[`atan(cr1)`][RealType]]
-[[`fmod(cr1)`][RealType]]
-[[`round(cr1)`][RealType]]
-[[`iround(cr1)`][int]]
-[[`trunc(cr1)`][RealType]]
-[[`itrunc(cr1)`][int]]
-]
-
-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: `acos`, `atan2`, `fmod`, `cosh`, `sinh`, `tanh`, `log10`,
-`lround`, `llround`, `ltrunc`, `lltrunc` and `modf`
-are not currently used, but may be if further special functions are added.
-
-Note that the `round`, `trunc` and `modf` 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.
-
-In addition, for efficient and accurate results, a __lanczos is highly desirable.
-You may be able to adapt an existing approximation from
-[@../../../../../boost/math/special_functions/lanczos.hpp
-boost/math/special_functions/lanczos.hpp] or
-[@../../../../../boost/math/bindings/detail/big_lanczos.hpp
-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 /strings/
-(in order to ensure the coefficients aren't truncated to long double)
-and then specialise `lanczos_traits` for type T. Otherwise you may have to hack
-[@../../../tools/lanczos_generator.cpp
-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.
-
-[endsect] [/section: ]
-
-[section:dist_concept Conceptual Requirements for Distribution Types]
-
-A /DistributionType/ is a type that implements the following conceptual
-requirements, and encapsulates a statistical distribution.
-
-Please note that this documentation should not be used as a substitute
-for the
-[link math_toolkit.dist.dist_ref reference documentation], and
-[link math_toolkit.dist.stat_tut tutorial] of the statistical
-distributions.
-
-In the following table, /d/ is an object of type `DistributionType`,
-/cd/ is an object of type `const DistributionType` and /cr/ is an
-object of a type convertible to `RealType`.
-
-[table
-[[Expression][Result Type][Notes]]
-[[DistributionType::value_type][RealType]
- [The real-number type /RealType/ upon which the distribution operates.]]
-[[DistributionType::policy_type][RealType]
- [The __Policy to use when evaluating functions that depend on this distribution.]]
-[[d = cd][Distribution&][Distribution types are assignable.]]
-[[Distribution(cd)][Distribution][Distribution types are copy constructible.]]
-[[pdf(cd, cr)][RealType][Returns the PDF of the distribution.]]
-[[cdf(cd, cr)][RealType][Returns the CDF of the distribution.]]
-[[cdf(complement(cd, cr))][RealType]
- [Returns the complement of the CDF of the distribution,
- the same as: `1-cdf(cd, cr)`]]
-[[quantile(cd, cr)][RealType][Returns the quantile (or percentile) of the distribution.]]
-[[quantile(complement(cd, cr))][RealType]
- [Returns the quantile (or percentile) of the distribution, starting from
- the complement of the probability, the same as: `quantile(cd, 1-cr)`]]
-[[chf(cd, cr)][RealType][Returns the cumulative hazard function of the distribution.]]
-[[hazard(cd, cr)][RealType][Returns the hazard function of the distribution.]]
-[[kurtosis(cd)][RealType][Returns the kurtosis of the distribution.]]
-[[kurtosis_excess(cd)][RealType][Returns the kurtosis excess of the distribution.]]
-[[mean(cd)][RealType][Returns the mean of the distribution.]]
-[[mode(cd)][RealType][Returns the mode of the distribution.]]
-[[skewness(cd)][RealType][Returns the skewness of the distribution.]]
-[[standard_deviation(cd)][RealType][Returns the standard deviation of the distribution.]]
-[[variance(cd)][RealType][Returns the variance of the distribution.]]
-]
-
-[endsect]
-
-[section:archetypes Conceptual Archetypes for Reals and Distributions]
-
-There are a few concept archetypes available:
-
-* Real concept for floating-point types.
-* distribution Concept for statistical distributions.
-
-[h5 Real concept]
-
-`std_real_concept` is an archetype for theReal types,
-including the built-in float, double, long double.
-
-``#include <boost/concepts/std_real_concept.hpp>``
-
- namespace boost{
- namespace math{
- namespace concepts
- {
- class std_real_concept;
- }
- }} // namespaces
-
-
-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.
-
-In order to ensure that a call to say `pow` 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 `using` declaration
-to make them visible in the current scope. Unfortunately it's all
-to easy to forget the `using` declaration, and call the double version of
-the function that happens to be in the global scope by mistake.
-
-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 *only*
-compile if the all the standard library functions used have
-been brought into the current scope with a using declaration.
-
-[h6 Testing the real concept]
-
-There is a test program
-[@../../../test/std_real_concept_check.cpp libs/math/test/std_real_concept_check.cpp]
-that instantiates every template in this library with type
-`std_real_concept` to verify its usage of standard library functions.
-
-``#include <boost/math/concepts/real_concept.hpp>``
-
- namespace boost{
- namespace math{
- namespace concepts{
-
- class real_concept;
-
- }}} // namespaces
-
-`real_concept` is an archetype for
-[link math_toolkit.using_udt.concepts user defined real types],
-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 [link math_toolkit.using_udt.concepts RealType]s.
-
-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
-[linkmath_toolkit.using_udt.high_precision.use_ntl "Using With NTL - a High-Precision Floating-Point Library"].
-
-There is no specific test case for type `real_concept`, instead, since this
-type is usable at runtime, each individual test case as well as testing
-`float`, `double` and `long double`, also tests `real_concept`.
-
-[h6 Distribution Concept]
-
-Distribution Concept models statistical distributions.
-
-``#include <boost/math/concepts/distribution.hpp>``
-
- namespace boost{
- namespace math{
- namespace concepts
- {
- template <class RealType>
- class distribution_archetype;
-
- template <class Distribution>
- struct DistributionConcept;
-
- }}} // namespaces
-
-The class template `distribution_archetype` is a model of the
-[link math_toolkit.using_udt.dist_concept Distribution concept].
-
-The class template `DistributionConcept` is a
-[@../../../../../libs/concept_check/index.html concept checking class]
-for distribution types.
-
-[h6 Testing the distribution concept]
-
-The test program
-[@../../../test/compile_test/distribution_concept_check.cpp distribution_concept_check.cpp]
-is responsible for using `DistributionConcept` to verify that all the
-distributions in this library conform to the
-[link math_toolkit.using_udt.dist_concept Distribution concept].
-
-The class template `DistributionConcept` verifies the existence
-(but not proper function) of the non-member accessors
-required by the [link math_toolkit.using_udt.dist_concept Distribution concept].
-These are checked by calls like
-
-v = pdf(dist, x); // (Result v is ignored).
-
-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.)
-
-[endsect] [/section:archetypes Conceptual Archetypes for Reals and Distributions]
-[/
- Copyright 2006, 2010, 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/config_macros.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/config_macros.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,67 +0,0 @@
-[section:config_macros Configuration Macros]
-
-Almost all configuration details are set up automatically by
-`<boost\math\tools\config.hpp>`.
-
-In normal use, only policy configuration macros are likely to be used. See __policy_ref.
-
-For reference, information on Boost.Math macros used internally are described briefly below.
-
-[table Boost.Math Macros
-[[MACRO][Notes]]
-[[`BOOST_MATH_NO_REAL_CONCEPT_TESTS`] [Do not try to use real concept tests (hardware or software does not support real_concept type).]]
-[[`BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS`] [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.]]
-[[`BOOST_MATH_CONTROL_FP`] [Controls FP hardware exceptions - our tests don't support hardware exceptions on MSVC.
-May get set to something like: ` _control87(MCW_EM,MCW_EM)`.]]
-[[`BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS`] [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.]]
-[[`BOOST_MATH_USE_C99` ] [Use C99 math functions.]]
-[[`BOOST_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY`] [define if no native (or buggy) `fpclassify(long double)`
-even though the other C99 functions are present.]]
-[[`BOOST_MATH_EXPLICIT_TEMPLATE_TYPE`] [Workaround helper macro for broken compilers - composed from
-other Boost.Config macros, do not edit.]]
-[[`BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE`] [Workaround helper macro for broken compilers - composed from
-other Boost.Config macros, do not edit.]]
-[[`BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC`] [Workaround helper macro for broken compilers - composed from
-other Boost.Config macros, do not edit.]]
-[[`BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC`] [Workaround helper macro for broken compilers - composed from
-other Boost.Config macros, do not edit.]]
-[[`BOOST_MATH_SMALL_CONSTANT(x)`] [Helper macro used in our test cases to set underflowing constants set to zero
-if this would cause compiler issues.]]
-[[`BOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS`] [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.]]
-[[`BOOST_MATH_STD_USING`] [Provides `using` statements for many std:: (abs to sqrt) and boost::math (rounds, modf) functions.
-This allows these functions to be called unqualified so that if
-[@http://en.wikipedia.org/wiki/Argument-dependent_name_lookup argument-dependent Argument Dependent Lookup]
-fails to find a suitable overload, then the std:: versions will also be considered.]]
-[[`BOOST_FPU_EXCEPTION_GUARD`] [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.]]
-[[`BOOST_MATH_INSTRUMENT`] [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.]]
-[[`BOOST_MATH_INSTRUMENT_CODE(x)`] [Output selected named variable, for example `BOOST_MATH_INSTRUMENT_CODE("guess = " << guess)`; Used by `BOOST_MATH_INSTRUMENT`]]
-[[`BOOST_MATH_INSTRUMENT_VARIABLE(name)`] [Output selected variable, for example `BOOST_MATH_INSTRUMENT_VARIABLE(result);` Used by `BOOST_MATH_INSTRUMENT`]]
-[[`BOOST_MATH_INSTRUMENT_FPU`] [Output the state of the FPU's control flags.]]
-] [/table]
-
-[table Boost.Math Tuning
-[[ Macros for Tuning performance options for specific compilers] [Notes]]
-[[`BOOST_MATH_POLY_METHOD`] [See the [link math_toolkit.perf.tuning performance tuning section].]]
-[[`BOOST_MATH_RATIONAL_METHOD`] [See the [link math_toolkit.perf.tuning performance tuning section].]]
-[[`BOOST_MATH_MAX_POLY_ORDER`] [See the [link math_toolkit.perf.tuning performance tuning section].]]
-[[`BOOST_MATH_INT_TABLE_TYPE`] [See the [link math_toolkit.perf.tuning performance tuning section].]]
-[[`BOOST_MATH_INT_VALUE_SUFFIX`] [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.]]
-] [/table]
-
-[endsect] [/section:config_macros Configuration Macros]
-
-[/
- Copyright 2010 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/constants.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/constants.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,741 +0,0 @@
-[section:constants Mathematical Constants]
-
-[section:intro Introduction]
-
-Boost.Math provides a collection of mathematical constants.
-
-[h4 Why use Boost.Math mathematical constants?]
-
-* Readable. For the very many jobs just using built-in like `double`, you can just write expressions like
-``double area = pi * r * r;``
-(If that's all you want, jump direct to [link math_toolkit.constants.tutorial.non_templ use in non-template code]!)
-* Effortless - avoiding a search of reference sources.
-* 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.
-* Accurate - ensuring that the values are as accurate as possible for the
-chosen floating-point type
- * No loss of accuracy from repeated rounding of intermediate computations.
- * Result is computed with higher precision and only rounded once.
- * Less risk of inaccurate result from functions pow, trig and log at [@http://en.wikipedia.org/wiki/Corner_case corner cases].
- * Less risk of [@http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html cancellation error].
-* Portable - as possible between different systems using different floating-point precisions:
-see [link math_toolkit.constants.tutorial.templ use in template code].
-* Tested - by comparison with other published sources, or separately computed at long double precision.
-* Faster - can avoid (re-)calculation at runtime.
- * If the value returned is a builtin type then it's returned by value as a `constexpr` (C++11 feature, if available).
- * 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:
- * Functions pow, trig or log are used.
- * Inside an inner loop.
- * Using a high-precision UDT like __multiprecision.
- * Compiler optimizations possible with built-in types, especially `double`, are not available.
-
-[endsect] [/section:intro Introduction]
-
-[section:tutorial Tutorial]
-
-[section:non_templ Use in non-template code]
-
-When using the math constants at your chosen fixed precision in non-template code,
-you can simply add a `using namespace` declaration, for example,
-`using namespace boost::math::double_constants`,
-to make the constants of the correct precision for your code
-visible in the current scope, and then use each constant ['as a simple variable - sans brackets]:
-
- #include <boost/math/constants/constants.hpp>
-
- double area(double r)
- {
- using namespace boost::math::double_constants;
- return pi * r * r;
- }
-
-Had our function been written as taking a `float` rather than a `double`,
-we could have written instead:
-
- #include <boost/math/constants/constants.hpp>
-
- float area(float r)
- {
- using namespace boost::math::float_constants;
- return pi * r * r;
- }
-
-Likewise, constants that are suitable for use at `long double` precision
-are available in the namespace `boost::math::long_double_constants`.
-
-You can see the full list of available constants at [link math_toolkit.constants.constants].
-
-Some examples of using constants are at [@../../../example/constants_eg1.cpp constants_eg1].
-
-[endsect]
-
-[section:templ Use in template code]
-
-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, `pi<FPType>()`, of the constants
-like this:
-
- #include <boost/math/constants/constants.hpp>
-
- template <class Real>
- Real area(Real r)
- {
- using namespace boost::math::constants;
- return pi<Real>() * r * r;
- }
-
-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 `float`, `double` and `long double`) :
-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 `constexp` for those compilers that support this, allowing
-the result to be used in constant-expressions provided the template argument is a literal type.
-
-[tip Keep in mind the difference between the variable version,
-just `pi`, and the template-function version:
-the template-function requires both a <[~floating-point-type]>
-and function call `()` brackets, for example: `pi<double>()`.
-You cannot write `double p = pi<>()`, nor `double p = pi()`.]
-
-[note You can always use [*both] variable and template-function versions
-[*provided calls are fully qualified], for example:
-``
-double my_pi1 = boost::math::constants::pi<double>();
-double my_pi2 = boost::math::double_constants::pi;
-``
-]
-
-[warning It may be tempting to simply define
-``
-using namespace boost::math::double_constants;
-using namespace boost::math::constants;
-``
-but if you do define two namespaces, this will, of course, create ambiguity!
-``
-double my_pi = pi(); // error C2872: 'pi' : ambiguous symbol
-double my_pi2 = pi; // Context does not allow for disambiguation of overloaded function
-``
-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.
-
-Therefore is it prudent to avoid this risk by [*localising the scope of such definitions], as shown above.]
-
-[tip Be very careful with the type provided as parameter.
-For example, providing an [*integer] instead of a floating-point type can be disastrous (a C++ feature).
-
-``cout << "Area = " << area(2) << endl; // Area = 12!!!``
-
-You should get a compiler warning
-[pre
-warning : 'return' : conversion from 'double' to 'int', possible loss of data
-] [/pre]
-Failure to heed this warning can lead to very wrong answers!
-
-You can also avoid this by being explicit about the type of `Area`.
-``cout << "Area = " << area<double>(2) << endl; // Area = 12.566371``
-]
-
-[endsect] [/section:templ Use in template code]
-
-[section:user_def Use With User-Defined Types]
-
-The most common example of a high-precision user-defined type will probably be __multiprecision.
-
-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:
-
- #include <boost/math/constants/constants.hpp>
-
- boost::math::constants::pi<UserDefinedType>();
-
-For example:
-
- boost::math::constants::pi<boost::multiprecision::cpp_dec_float_50>();
-
-giving [pi] with a precision of 50 decimal digits.
-
-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:
-
-* If the precision of the type is known at compile time:
- * If the precision is less than or equal to that of a `float` and the type is constructable from a `float`
- then our code returns a `float` literal. If the user-defined type is a literal type
- then the function call that returns the constant will be a `constexp`.
- * If the precision is less than or equal to that of a `double` and the type is constructable from a `double`
- then our code returns a `double` literal. If the user-defined type is a literal type
- then the function call that returns the constant will be a `constexp`.
- * If the precision is less than or equal to that of a `long double` and the type is constructable from a `long double`
- then our code returns a `long double` literal. If the user-defined type is a literal type
- then the function call that returns the constant will be a `constexp`.
- * If the precision is less than or equal to that of a `__float128` (and the compiler supports such a type)
- and the type is constructable from a `__float128`
- then our code returns a `__float128` literal. If the user-defined type is a literal type
- then the function call that returns the constant will be a `constexp`.
- * 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.
- * 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.
-* If the precision is unknown at compile time then:
- * If the runtime precision (obtained from a call to `boost::math::tools::digits<T>()`) is
- less than 100 decimal digits, then the constant is constructed "on the fly" from the string
- representation of the constant.
- * 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.
-
-In addition, it is possible to pass a `Policy` type as a second template argument, and use this to control
-the precision:
-
- #include <boost/math/constants/constants.hpp>
-
- typedef boost::math::policies::policy<boost::math::policies::digits2<80> > my_policy_type;
- boost::math::constants::pi<MyType, my_policy_type>();
-
-[note Boost.Math doesn't know how to control the internal precision of `MyType`, the policy
-just controls how the selection process above is carried out, and the calculation precision
-if the result is computed.]
-
-It is also possible to control which method is used to construct the constant by specialising
-the traits class `construction_traits`:
-
- namespace boost{ namespace math{ namespace constant{
-
- template <class T, class Policy>
- struct construction_traits
- {
- typedef mpl::int_<N> type;
- };
-
- }}} // namespaces
-
-Where ['N] takes one of the following values:
-
-[table
-[[['N]][Meaning]]
-[[0][The precision is unavailable at compile time;
-either construct from a decimal digit string or calculate on the fly depending upon the runtime precision.]]
-[[1][Return a float precision constant.]]
-[[2][Return a double precision constant.]]
-[[3][Return a long double precision constant.]]
-[[4][Construct the result from the string representation, and cache the result.]]
-[[Any other value ['N]][Sets the compile time precision to ['N] bits.]]
-]
-
-[h5 Custom Specializing a constant]
-
-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
-`mpfr_class`: 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 `boost::math::constants::detail::constant_pi`:
-
- namespace boost{ namespace math{ namespace constants{ namespace detail{
-
- template<>
- struct constant_pi<mpfr_class>
- {
- template<int N>
- static mpfr_class get(const mpl::int_<N>&)
- {
- // The template param N is one of the values in the table above,
- // we can either handle all cases in one as is the case here,
- // or overload "get" for the different options.
- mpfr_class result;
- mpfr_const_pi(result.get_mpfr_t(), GMP_RNDN);
- return result;
- }
- };
-
- }}}} // namespaces
-
-[h5 Diagnosing what meta-programmed code is doing]
-
-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:
-
- #include <boost/math/constants/info.hpp>
-
- int main()
- {
- boost::math::constants::print_info_on_type<MyType>();
- }
-
-If you wish, you can also pass an optional std::ostream argument to the `print_info_on_type` function.
-Typical output for a user-defined type looks like this:
-
-[pre
-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.
-]
-
-[endsect] [/section:user_def Use With User Defined Types]
-
-[endsect] [/section:tutorial Tutorial]
-
-[section:constants The Mathematical Constants]
-
-This section lists the mathematical constants, their use(s) (and sometimes rationale for their inclusion).
-[table Mathematical Constants
-[[name] [formula] [Value (6 decimals)] [Uses and Rationale]]
-[[[*Rational fractions]] [] [] [] ]
-[[half] [1/2] [0.5] [] ]
-[[third] [1/3] [0.333333] [] ]
-[[two_thirds] [2/3] [0.66667] [] ]
-[[three_quarters] [3/4] [0.75] [] ]
-
-[[[*two and related]] [] [] [] ]
-[[root_two] [[radic]2] [1.41421] [] ]
-[[root_three] [[radic]3] [1.73205] [] ]
-[[half_root_two] [[radic]2 /2] [0.707106] [] ]
-[[ln_two] [ln(2)] [0.693147] [] ]
-[[ln_ten] [ln(10)] [2.30258] [] ]
-[[ln_ln_two] [ln(ln(2))] [-0.366512] [Gumbel distribution median] ]
-[[root_ln_four] [[radic]ln(4)] [1.177410] [] ]
-[[one_div_root_two] [1/[radic]2] [0.707106] [] ]
-
-[[[*[pi] and related]] [] [] [] ]
-[[pi] [pi] [3.14159] [Ubiquitous. Archimedes constant [@http://en.wikipedia.org/wiki/Pi [pi]]]]
-[[half_pi] [[pi]/2] [1.570796] [] ]
-[[third_pi] [[pi]/3] [1.04719] [] ]
-[[sixth_pi] [[pi]/6] [0.523598] [] ]
-[[two_pi] [2[pi]] [6.28318] [Many uses, most simply, circumference of a circle]]
-[[two_thirds_pi] [2/3 [pi]] [2.09439] [[@http://en.wikipedia.org/wiki/Sphere#Volume_of_a_sphere volume of a hemi-sphere] = 4/3 [pi] r[cubed]]]
-[[three_quarters_pi] [3/4 [pi]] [2.35619] [ = 3/4 [pi] r[cubed]]]
-[[four_thirds_pi] [4/3 [pi]] [4.18879] [[@http://en.wikipedia.org/wiki/Sphere#Volume_of_a_sphere volume of a sphere] = 4/3 [pi] r[cubed]]]
-[[one_div_two_pi] [1/(2[pi])] [1.59155] [Widely used]]
-[[root_pi] [[radic][pi]][1.77245] [Widely used]]
-[[root_half_pi] [[radic] [pi]/2] [1.25331] [Widely used]]
-[[root_two_pi][[radic] [pi]*2] [2.50662] [Widely used]]
-[[one_div_root_pi] [1/[radic][pi]] [0.564189] [] ]
-[[one_div_root_two_pi] [1/[radic](2[pi])] [0.398942] [] ]
-[[root_one_div_pi] [[radic](1/[pi]] [0.564189] [] ]
-[[pi_minus_three] [[pi]-3] [1.41593] [] ]
-[[four_minus_pi] [4 -[pi]] [0.858407] [] ]
-[[pow23_four_minus_pi] [4[super 2/3] - [pi]] [0.795316] [] ]
-[[pi_pow_e] [[pi][super e]] [22.4591] [] ]
-
-[[pi_sqr] [[pi][super 2]] [9.86960] [] ]
-[[pi_sqr_div_six] [[pi][super 2]/6] [1.64493] [] ]
-[[pi_cubed] [[pi][super 3]] [31.00627] [] ]
-[[cbrt_pi] [[radic][super 3] [pi]] [1.46459] [] ]
-[[one_div_cbrt_pi] [1/[radic][super 3] [pi]] [0.682784] [] ]
-
-[[[*Euler's e and related]] [] [] [] ]
-[[e] [e] [2.71828] [[@http://en.wikipedia.org/wiki/E_(mathematical_constant) Euler's constant e]] ]
-[[exp_minus_half] [e [super -1/2]] [0.606530] [] ]
-[[e_pow_pi] [e [super [pi]]] [23.14069] [] ]
-[[root_e] [[radic] e] [1.64872] [] ]
-[[log10_e] [log10(e)] [0.434294] [] ]
-[[one_div_log10_e] [1/log10(e)] [2.30258] [] ]
-
-[[[*Trigonometric]] [] [] [] ]
-[[degree] [radians = [pi] / 180] [0.017453] [] ]
-[[radian] [degrees = 180 / [pi]] [57.2957] [] ]
-[[sin_one] [sin(1)] [0.841470] [] ]
-[[cos_one] [cos(1)] [0.54030] [] ]
-[[sinh_one] [sinh(1)] [1.17520] [] ]
-[[cosh_one] [cosh(1)] [1.54308] [] ]
-
-[[[*Phi]] [ Phidias golden ratio] [[@http://en.wikipedia.org/wiki/Golden_ratio Phidias golden ratio]] [] ]
-[[phi] [(1 + [radic]5) /2] [1.61803] [finance] ]
-[[ln_phi] [ln([phi])] [0.48121] [] ]
-[[one_div_ln_phi] [1/ln([phi])] [2.07808] [] ]
-
-[[[*Euler's Gamma]] [] [] [] ]
-[[euler] [euler] [0.577215] [[@http://en.wikipedia.org/wiki/Euler%E2%80%93Mascheroni_constant Euler-Mascheroni gamma constant]] ]
-[[one_div_euler] [1/euler] [1.73245] [] ]
-[[euler_sqr] [euler[super 2]] [0.333177] [] ]
-
-[[[*Misc]] [] [] [] ]
-[[zeta_two] [[zeta](2)] [1.64493] [[@http://en.wikipedia.org/wiki/Riemann_zeta_function Riemann zeta function]] ]
-[[zeta_three] [[zeta](3)] [1.20205] [[@http://en.wikipedia.org/wiki/Riemann_zeta_function Riemann zeta function]] ]
-[[catalan] [['K]] [0.915965] [[@http://mathworld.wolfram.com/CatalansConstant.html Catalan (or Glaisher) combinatorial constant] ]]
-[[glaisher] [['A]] [1.28242] [[@https://oeis.org/A074962/constant Decimal expansion of Glaisher-Kinkelin constant] ]]
-[[khinchin] [['k]] [2.685452] [[@https://oeis.org/A002210/constant Decimal expansion of Khinchin constant] ]]
-
-[[extreme_value_skewness] [12[radic]6 [zeta](3)/ [pi][super 3]] [1.139547] [Extreme value distribution] ]
-[[rayleigh_skewness] [2[radic][pi]([pi]-3)/(4 - [pi])[super 3/2]] [0.631110] [Rayleigh distribution skewness] ]
-[[rayleigh_kurtosis_excess] [-(6[pi][super 2]-24[pi]+16)/(4-[pi])[super 2]] [0.245089] [[@http://en.wikipedia.org/wiki/Rayleigh_distribution Rayleigh distribution kurtosis excess]] ]
-[[rayleigh_kurtosis] [3+(6[pi][super 2]-24[pi]+16)/(4-[pi])[super 2]] [3.245089] [Rayleigh distribution kurtosis] ]
-
-] [/table]
-
-
-[note Integer values are *not included* in this list of math constants, however interesting,
-because they can be so easily and exactly constructed, even for UDT, for example: `static_cast<cpp_float>(42)`.]
-
-[tip If you know the approximate value of the constant, you can search for the value to find Boost.Math chosen name in this table.]
-
-[endsect] [/section:constants The constants]
-
-[section:new_const Defining New Constants]
-
-The library provides some helper code to assist in defining new constants;
-the process for defining a constant called `my_constant` goes like this:
-
-1. [*Define a function that calculates the value of the constant].
-This should be a template function, and be placed in `boost/math/constants/calculate_constants.hpp`
-if the constant is to be added to this library,
-or else defined at the top of your source file if not.
-
-The function should look like this:
-
- namespace boost{ namespace math{ namespace constants{ namespace detail{
-
- template <class Real>
- template <int N>
- Real constant_my_constant<Real>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
- {
- int required_precision = N ? N : tools::digits<Real>();
- Real result = /* value computed to required_precision bits */ ;
- return result;
- }
-
- }}}} // namespaces
-
-Then define a placeholder for the constant itself:
-
- namespace boost{ namespace math{ namespace constants{
-
- BOOST_DEFINE_MATH_CONSTANT(my_constant, 0.0, "0");
-
- }}}
-
-
-For example, to calculate [pi]/2, add to `boost/math/constants/calculate_constants.hpp`
-
- template <class T>
- template<int N>
- inline T constant_half_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
- {
- BOOST_MATH_STD_USING
- return pi<T, policies::policy<policies::digits2<N> > >() / static_cast<T>(2);
- }
-
-Then to `boost/math/constants/constants.hpp` add:
-
- BOOST_DEFINE_MATH_CONSTANT(half_pi, 0.0, "0"); // Actual values are temporary, we'll replace them later.
-
-[note Previously defined constants like pi and e can be used, but by *not simply calling* `pi<T>()`;
-specifying the precision via the policy
-`pi<T, policies::policy<policies::digits2<N> > >()`
-is essential to ensure full accuracy.]
-
-[warning Newly defined constants can only be used once they are included in
-`boost/math/constants/constants.hpp`. So if you add
-`template <class T, class N> T constant_my_constant{...}`,
-then you cannot define `constant_my_constant`
-until you add the temporary `BOOST_DEFINE_MATH_CONSTANT(my_constant, 0.0, "0")`.
-Failing to do this will result in surprising compile errors:
-``
- error C2143: syntax error : missing ';' before '<'
- error C2433: 'constant_root_two_div_pi' : 'inline' not permitted on data declarations
- error C2888: 'T constant_root_two_div_pi' : symbol cannot be defined within namespace 'detail'
- error C2988: unrecognizable template declaration/definition
-``
-]
-
-2. [*You will need an arbitrary precision type to use to calculate the value]. This library
-currently supports either `cpp_float`, `NTL::RR` or `mpfr_class` used via the bindings in `boost/math/bindings`.
-The default is to use `NTL::RR` unless you define an alternate macro, for example,
-`USE_MPFR` or `USE_CPP_FLOAT` at the start of your program.
-
-3. It is necessary to link to the Boost.Regex library,
-and probably to your chosen arbitrary precision type library.
-
-4. The complete program to generate the constant `half_pi` using function `calculate_half_pi` is then:
-
- #define USE_CPP_FLOAT // If required.
- #include <boost/math/constants/generate.hpp>
-
- int main()
- {
- BOOST_CONSTANTS_GENERATE(half_pi);
- }
-
-The output from the program is a snippet of C++ code
-(actually a macro call) that can be cut and pasted
-into `boost/math/constants/constants.hpp` or else into your own code, for example:
-
-[pre
- BOOST_DEFINE_MATH_CONSTANT(half_pi, 1.570796326794896619231321691639751442e+00, "1.57079632679489661923132169163975144209858469968755291048747229615390820314310449931401741267105853399107404326e+00");
-]
-
-This macro BOOST_DEFINE_MATH_CONSTANT inserts a C++ struct code snippet that
-declares the `float`, `double` and `long double` 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.
-
-The result of an expanded macro for Pi is shown below.
-
-[import ./pp_pi.hpp]
-
-[preprocessed_pi]
-
-
-[endsect] [/section:new_const Defining New Constants]
-
-[section:FAQ FAQs]
-
-[h4 Why are ['these] Constants Chosen?]
-It is, of course, impossible to please everyone with a list like this.
-
-Some of the criteria we have used are:
-
-* Used in Boost.Math.
-* Commonly used.
-* Expensive to compute.
-* Requested by users.
-* [@http://en.wikipedia.org/wiki/Mathematical_constant Used in science and mathematics.]
-* No integer values (because so cheap to construct).[br]
-(You can easily define your own if found convenient, for example: `FPT one =static_cast<FPT>(42);`).
-
-[h4 How are constants named?]
-* Not macros, so no upper case.
-* All lower case (following C++ standard names).
-* No CamelCase.
-* Underscore as _ delimiter between words.
-* Numbers spelt as words rather than decimal digits (except following pow).
-* Abbreviation conventions:
- * root for square root.
- * cbrt for cube root.
- * pow for pow function using decimal digits like pow23 for n[super 2/3].
- * div for divided by or operator /.
- * minus for operator -, plus for operator +.
- * sqr for squared.
- * cubed for cubed n[super 3].
- * words for greek, like [pi], [zeta] and [Gamma].
- * words like half, third, three_quarters, sixth for fractions. (Digit(s) can get muddled).
- * log10 for log[sub 10]
- * ln for log[sub e]
-
-[h4 How are the constants derived?]
-
-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).
-
-[h4 How Accurate are the constants?]
-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.
-
-[h4 How are the constants tested?]
-
-# 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 `long double epsilon`.
-
-# 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.
-
-# Comparison with independent published values,
-for example, using [@http://oeis.org/ The On-Line Encyclopedia of Integer Sequences (OEIS)]
-again using at least 35 decimal digits strings.
-
-# Comparison with independely calculated values using arbitrary precision tools like
-[@http://www.wolfram.com/mathematica/ Mathematica], again using at least 35 decimal digits literal strings.
-
-[warning We have not yet been able to [*check] that
-[*all] constants are accurate at the full arbitrary precision,
-at present 100 decimal digits.
-But certain key values like `e` and `pi` appear to be accurate
-and internal consistencies suggest that others are this accurate too.
-]
-
-[h4 Why is Portability important?]
-
-Code written using math constants is easily portable even when using different
-floating-point types with differing precision.
-
-It is a mistake to expect that results of computations will be [*identical], but
-you can achieve the [*best accuracy possible for the floating-point type in use].
-
-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.
-
-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.
-
-[h4 What is the Internal Format of the constants, and why?]
-
-See [link math_toolkit.constants.tutorial tutorial] above for normal use,
-but this FAQ explains the internal details used for the constants.
-
-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.
-
-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.
-
-For types with precision greater than a long double,
-then if T is constructible `T `is constructible from a `const char*`
-then it's directly constructed from the string,
-otherwise we fall back on lexical_cast to convert to type `T`.
-(Using a string is necessary because you can't use a numeric constant
-since even a `long double` might not have enough digits).
-
-So, for example, a constant like pi is internally defined as
-
- BOOST_DEFINE_MATH_CONSTANT(pi, 3.141592653589793238462643383279502884e+00, "3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651e+00");
-
-In this case the significand is 109 decimal digits, ensuring 100 decimal digits are exact, and exponent is zero.
-
-See [link math_toolkit.constants.new_const defining new constants] to calculate new constants.
-
-A macro definition like this can be pasted into user code where convenient,
-or into `boost/math/constants.hpp` if it is to be added to the Boost.Math library.
-
-[h4 What Floating-point Types could I use?]
-
-Apart from the built-in floating-point types `float`, `double`, `long double`,
-there are several arbitrary precision floating-point classes available,
-but most are not licensed for commercial use.
-
-[h5 Boost.Multiprecision by Christopher Kormanyos]
-
-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]
-[@https://svn.boost.org/svn/boost/sandbox/e_float/ e_float]
-but is now re-factored and available under the Boost license in the Boost-sandbox at
-[@https://svn.boost.org/svn/boost/sandbox/multiprecision/ multiprecision]
-where it is being refined and prepared for review.
-
-[h5 Boost.cpp_float by John Maddock using Expression Templates]
-
-[@https://svn.boost.org/svn/boost/sandbox/big_number/ Big Number]
-which is a reworking of [@https://svn.boost.org/svn/boost/sandbox/e_float/ e_float]
-by Christopher Kormanyos to use expression templates for faster execution.
-
-[h5 NTL class quad_float]
-
-[@http://shoup.net/ntl/ NTL] by Victor Shoup has fixed and arbitrary high precision fixed and floating-point types.
-However none of these are licenced for commercial use.
-
- #include <NTL/quad_float.h> // quad precision 106-bit, about 32 decimal digits.
- using NTL::to_quad_float; // Less precise than arbitrary precision NTL::RR.
-
-NTL class `quad_float`, 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 [*two] 64-bit doubles,
-if `std::numeric_limits<double>::digits10` is 16,
-then we get about twice the precision,
-so `std::numeric_limits<quad_float>::digits10()` should be 32.
-(the default `std::numeric_limits<RR>::digits10()` should be about 40).
-(which seems to agree with experiments).
-We output constants (including some noisy bits,
-an approximation to `std::numeric_limits<RR>::max_digits10()`)
-by adding 2 extra decimal digits, so using `quad_float::SetOutputPrecision(32 + 2);`
-
-Apple Mac/Darwin uses a similar ['doubledouble] 106-bit for its built-in `long double` type.
-
-[note The precision of all `doubledouble` floating-point types is rather odd and values given are only approximate.]
-
-[*New projects should use __multiprecision.]
-
-[h5 NTL class RR]
-
-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.
-
-__NTL is [*not licenced for commercial use].
-
-This class is used in Boost.Math and is an option when using big_number projects to calculate new math constants.
-
-[*New projects should use __multiprecision.]
-
-[h5 GMP and MPFR]
-
-[@http://gmplib.org GMP] and [@http://www.mpfr.org/ MPFR] have also been used to compute constants,
-but are licensed under the [@http://www.gnu.org/copyleft/lesser.html Lesser GPL license]
-and are [*not licensed for commercial use].
-
-[h4 What happened to a previous collection of constants proposed for Boost?]
-
-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 `pi` rather than `pi()`.
-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.
-
-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.
-
-
-[h4 Why do the constants (internally) have a struct rather than a simple function?]
-
-A function mechanism was provided by in previous versions of Boost.Math.
-
-The new mechanism is to permit partial specialization. See Custom Specializing a constant above.
-It should also allow use with other packages like [@http://www.ttmath.org/ ttmath Bignum C++ library.]
-
-[h4 Where can I find other high precision constants?]
-
-# Constants with very high precision and good accuracy (>40 decimal digits)
-from Simon Plouffe's web based collection [@http://pi.lacim.uqam.ca/eng/].
-# [@https://oeis.org/ The On-Line Encyclopedia of Integer Sequences (OEIS)]
-# 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)
-# M. Abrahamovitz & I. E. Stegun, National Bureau of Standards, Handbook of Mathematical Functions,
-a reference source for formulae now superceded by
-# 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.
-# John F Hart, Computer Approximations, Kreiger (1978) ISBN 0 88275 642 7.
-# Some values from Cephes Mathematical Library, Stephen L. Moshier
-and CALC100 100 decimal digit Complex Variable Calculator Program, a DOS utility.
-# Xavier Gourdon, Pascal Sebah, 50 decimal digits constants at [@http://numbers.computation.free.fr/Constants/constants.html Number, constants and computation].
-
-[h4 Where are Physical Constants?]
-
-Not here in this Boost.Math collection, because physical constants:
-
-* Are measurements, not truely constants.
-* Are not truly constant and keeping changing as mensuration technology improves.
-* Have a instrinsic uncertainty.
-* Mathematical constants are stored and represented at varying precision, but should never be inaccurate.
-
-Some physical constants may be available in Boost.Units.
-
-[endsect] [/section:FAQ FAQ]
-
-[endsect] [/section:constants Mathematical Constants]
-
-[/
- Copyright 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/contact_info.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/contact_info.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,25 +0,0 @@
-
-[section:contact Contact Info and Support]
-
-The main support for this library is via the Boost mailing lists:
-
-* Use the
-[@http://www.boost.org/more/mailing_lists.htm#users boost-user list]
-for general support questions.
-* Use the
-[@http://www.boost.org/more/mailing_lists.htm#main boost-developer list]
-for discussion about implementation
-and or submission of extensions.
-
-You can also find JM at john - at - johnmaddock.co.uk and PAB at
-pbristow - at - hetp.u-net.com.
-
-[endsect]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/credits.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/credits.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,111 +0,0 @@
-[section:credits Credits and Acknowledgements]
-
-Hubert Holin started the Boost.Math library. The inverse
-hyperbolic functions, and the sinus cardinal functions are his.
-
-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.
-
-Paul A. Bristow threw down the challenge in
-[@http://www2.open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1668.pdf
-A Proposal to add Mathematical Functions for Statistics to the C++
-Standard Library] 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).
-
-Xiaogang Zhang worked on the Bessel functions and elliptic integrals for his
-Google Summer of Code project 2006.
-
-Bruno Lalande submitted the "compile time power of a runtime base" code.
-
-Johan R'''&#xE5;'''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
-[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2022.pdf
-Input & Output of NaN and infinity for the C++ Standard Library]
-and suggested following the C99 format.
-
-Antony Polukhin improved lexical cast avoiding stringstream so that
-it was no longer necessary to use a globale C99 facet to handle nonfinites.
-
-H'''&#xE5;'''kan Ard'''&#xF6;''',
-Boris Gubenko, John Maddock,
-Markus Sch'''&#xF6;'''pflin
-and Olivier Verdier tested the floating-point library and
-Martin Bonner, Peter Dimov and John Maddock provided valuable advice.
-
-Gautam Sewani coded the logistic distribution as part of a Google Summer of Code project 2008.
-
-M. A. (Thijs) van den Berg coded the Laplace distribution.
-(Thijs has also threatened to implement some multivariate distributions).
-
-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.
-
-Professor Nico Temme for advice on the inverse incomplete beta function.
-
-[@http://www.shoup.net 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.
-
-We are grateful to Joel Guzman for helping us stress-test his
-[@http://www.boost.org/tools/quickbook/index.htm Boost.Quickbook]
-program used to generate the html and pdf versions
-of this document, adding several new features en route.
-
-Plots of the functions and distributions were prepared in
-[@http://www.w3.org/ W3C] standard
-[@http://www.svg.org/ Scalable Vector Graphic (SVG)] format
-using a program created by Jacob Voytko during a
-[@http://code.google.com/soc/2007/ Google Summer of Code (2007)].
-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
-[@http://www.adobe.com/svg/viewer/install/ Adobe's free SVG viewer] plugin).
-The SVG files can be converted to JPEG or PNG using
-[@http://www.inkscape.org/ Inkscape].
-
-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.
-
-Thanks to Mark Coleman and Georgi Boshnakov for spot test values
-from __Mathematica, and of course,
-to Eric Weisstein for nurturing __Mathworld, an invaluable resource.
-
-The Skew-normal distribution and Owen's t function were written by Benjamin Sobotta.
-
-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.
-
-Christopher Kormanyos wrote the e_float multiprecision library __TOMS910
-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).
-
-Christopher Kormanyos wrote some examples for using __multiprecision,
-and added methods for finding zeros of Bessel Functions.
-
-[endsect] [/section:credits Credits and Acknowledgements]
-
-[/
- Copyright 2006, 2007, 2008, 2009, 2010, 2012, 2013 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/dist_algorithms.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/dist_algorithms.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,78 +0,0 @@
-[section:dist_algorithms Distribution Algorithms]
-
-[h4 Finding the Location and Scale for Normal and similar distributions]
-
-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.
-
-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.
-
-Complement versions are also provided, both with explicit and implicit (default) policy.
-
- using boost::math::policies::policy; // May be needed by users defining their own policies.
- using boost::math::complement; // Will be needed by users who want to use complements.
-
-[h4 find_location function]
-
-``#include <boost/math/distributions/find_location.hpp>``
-
- namespace boost{ namespace math{
-
- template <class Dist, class ``__Policy``> // explicit error handling policy
- typename Dist::value_type find_location( // For example, normal mean.
- typename Dist::value_type z, // location of random variable z to give probability, P(X > z) == p.
- // For example, a nominal minimum acceptable z, so that p * 100 % are > z
- typename Dist::value_type p, // probability value desired at x, say 0.95 for 95% > z.
- typename Dist::value_type scale, // scale parameter, for example, normal standard deviation.
- const ``__Policy``& pol);
-
- template <class Dist> // with default policy.
- typename Dist::value_type find_location( // For example, normal mean.
- typename Dist::value_type z, // location of random variable z to give probability, P(X > z) == p.
- // For example, a nominal minimum acceptable z, so that p * 100 % are > z
- typename Dist::value_type p, // probability value desired at x, say 0.95 for 95% > z.
- typename Dist::value_type scale); // scale parameter, for example, normal standard deviation.
-
- }} // namespaces
-
-[h4 find_scale function]
-
-``#include <boost/math/distributions/find_scale.hpp>``
-
- namespace boost{ namespace math{
-
- template <class Dist, class ``__Policy``>
- typename Dist::value_type find_scale( // For example, normal mean.
- typename Dist::value_type z, // location of random variable z to give probability, P(X > z) == p.
- // For example, a nominal minimum acceptable weight z, so that p * 100 % are > z
- typename Dist::value_type p, // probability value desired at x, say 0.95 for 95% > z.
- typename Dist::value_type location, // location parameter, for example, normal distribution mean.
- const ``__Policy``& pol);
-
- template <class Dist> // with default policy.
- typename Dist::value_type find_scale( // For example, normal mean.
- typename Dist::value_type z, // location of random variable z to give probability, P(X > z) == p.
- // For example, a nominal minimum acceptable z, so that p * 100 % are > z
- typename Dist::value_type p, // probability value desired at x, say 0.95 for 95% > z.
- typename Dist::value_type location) // location parameter, for example, normal distribution mean.
- }} // namespaces
-
-All argument must be finite, otherwise __domain_error is called.
-
-Probability arguments must be [0, 1], otherwise __domain_error is called.
-
-If the choice of arguments would give a negative scale, __domain_error is called, unless the policy is to ignore, when the negative (impossible) value of scale is returned.
-
-[link math_toolkit.dist.stat_tut.weg.find_eg Find Mean and standard deviation examples]
-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.
-
-[endsect] [/section:dist_algorithms dist_algorithms]
-
-[/ dist_algorithms.qbk
- Copyright 2007 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/dist_reference.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/dist_reference.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,145 +0,0 @@
-[section:dist_ref Statistical Distributions Reference]
-
-[include distributions/non_members.qbk]
-
-[section:dists Distributions]
-
-[include distributions/bernoulli.qbk]
-[include distributions/beta.qbk]
-[include distributions/binomial.qbk]
-[include distributions/cauchy.qbk]
-[include distributions/chi_squared.qbk]
-[include distributions/exponential.qbk]
-[include distributions/extreme_value.qbk]
-[include distributions/fisher.qbk]
-[include distributions/gamma.qbk]
-[include distributions/geometric.qbk]
-[include distributions/hypergeometric.qbk]
-[include distributions/inverse_chi_squared.qbk]
-[include distributions/inverse_gamma.qbk]
-[include distributions/inverse_gaussian.qbk]
-[include distributions/laplace.qbk]
-[include distributions/logistic.qbk]
-[include distributions/lognormal.qbk]
-[include distributions/negative_binomial.qbk]
-[include distributions/nc_beta.qbk]
-[include distributions/nc_chi_squared.qbk]
-[include distributions/nc_f.qbk]
-[include distributions/nc_t.qbk]
-[include distributions/normal.qbk]
-[include distributions/pareto.qbk]
-[include distributions/poisson.qbk]
-[include distributions/rayleigh.qbk]
-[include distributions/skew_normal.qbk]
-[include distributions/students_t.qbk]
-[include distributions/triangular.qbk]
-[include distributions/uniform.qbk]
-[include distributions/weibull.qbk]
-
-[endsect][/section:dists Distributions]
-
-[include dist_algorithms.qbk]
-
-[endsect][/section:dist_ref Statistical Distributions and Functions Reference]
-
-
-[section:future Extras/Future Directions]
-
-[h4 Adding Additional Location and Scale Parameters]
-
-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 http://www.itl.nist.gov/div898/handbook/eda/section3/eda364.htm]
-for more information.
-
-The obvious way to handle this is via an adapter template:
-
- template <class Dist>
- class scaled_distribution
- {
- scaled_distribution(
- const Dist dist,
- typename Dist::value_type location,
- typename Dist::value_type scale = 0);
- };
-
-Which would then have its own set of overloads for the non-member accessor functions.
-
-[h4 An "any_distribution" class]
-
-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:
-
- template <class RealType>
- class any_distribution
- {
- public:
- template <class Distribution>
- any_distribution(const Distribution& d);
- };
-
- // Get the cdf of the underlying distribution:
- template <class RealType>
- RealType cdf(const any_distribution<RealType>& d, RealType x);
- // etc....
-
-Such a class would facilitate the writing of non-template code that can
-function with any distribution type.
-
-The [@http://sourceforge.net/projects/distexplorer/ Statistical Distribution Explorer]
-utility for Windows is a usage example.
-
-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.
-
-[h4 Higher Level Hypothesis Tests]
-
-Higher-level tests roughly corresponding to the
-[@http://documents.wolfram.com/mathematica/Add-onsLinks/StandardPackages/Statistics/HypothesisTests.html Mathematica Hypothesis Tests]
-package could be added reasonably easily, for example:
-
- template <class InputIterator>
- typename std::iterator_traits<InputIterator>::value_type
- test_equal_mean(
- InputIterator a,
- InputIterator b,
- typename std::iterator_traits<InputIterator>::value_type expected_mean);
-
-Returns the probability that the data in the sequence [a,b) has the mean
-/expected_mean/.
-
-[h4 Integration With Statistical Accumulators]
-
-[@http://boost-sandbox.sourceforge.net/libs/accumulators/doc/html/index.html
-Eric Niebler's accumulator framework] - 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:
-
- // Define an accumulator, all required statistics to calculate the test
- // are calculated automatically:
- accumulator_set<double, features<tag::test_expected_mean> > acc(expected_mean=4);
- // Pass our data to the accumulator:
- acc = std::for_each(mydata.begin(), mydata.end(), acc);
- // Extract the result:
- double p = probability(acc);
-
-[endsect][/section:future Extras Future Directions]
-
-[/ dist_reference.qbk
- Copyright 2006, 2010 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-
-
-
-
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/dist_tutorial.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/dist_tutorial.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,468 +0,0 @@
-[/ def names all end in distrib to avoid clashes with names of functions]
-
-[def __binomial_distrib [link math_toolkit.dist.dist_ref.dists.binomial_dist Binomial Distribution]]
-[def __chi_squared_distrib [link math_toolkit.dist.dist_ref.dists.chi_squared_dist Chi Squared Distribution]]
-[def __normal_distrib [link math_toolkit.dist.dist_ref.dists.normal_dist Normal Distribution]]
-[def __F_distrib [link math_toolkit.dist.dist_ref.dists.f_dist Fisher F Distribution]]
-[def __students_t_distrib [link math_toolkit.dist.dist_ref.dists.students_t_dist Students t Distribution]]
-
-[def __handbook [@http://www.itl.nist.gov/div898/handbook/
-NIST/SEMATECH e-Handbook of Statistical Methods.]]
-
-[section:stat_tut Statistical Distributions Tutorial]
-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.
-
-[section:overview Overview of Distributions]
-
-[section:headers Headers and Namespaces]
-
-All the code in this library is inside namespace boost::math.
-
-In order to use a distribution /my_distribution/ you will need to include
-either the header <boost/math/distributions/my_distribution.hpp> or
-the "include all the distributions" header: <boost/math/distributions.hpp>.
-
-For example, to use the Students-t distribution include either
-<boost/math/distributions/students_t.hpp> or
-<boost/math/distributions.hpp>
-
-You also need to bring distribution names into scope,
-perhaps with a `using namespace boost::math;` declaration,
-
-or specific `using` declarations like `using boost::math::normal;` (*recommended*).
-
-[caution Some math function names are also used in namespace std so including <random> could cause ambiguity!]
-
-[endsect] [/ section:headers Headers and Namespaces]
-
-[section:objects Distributions are Objects]
-
-Each kind of distribution in this library is a class type - an object.
-
-[link math_toolkit.policy Policies] 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.
-
-[tip If you are familiar with statistics libraries using functions,
-and 'Distributions as Objects' seem alien, see
-[link math_toolkit.dist.stat_tut.weg.nag_library the comparison to
-other statistics libraries.]
-] [/tip]
-
-Making distributions class types does two things:
-
-* 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.
-* The distribution objects store any parameters associated with the
-distribution: for example, the Students-t distribution has a
-['degrees of freedom] parameter that controls the shape of the distribution.
-This ['degrees of freedom] parameter has to be provided
-to the Students-t object when it is constructed.
-
-Although the distribution classes in this library are templates, there
-are typedefs on type /double/ 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 - `RealType = double` -
-is nearly as convenient).
-Probably 95% of uses are covered by these typedefs:
-
- // using namespace boost::math; // Avoid potential ambiguity with names in std <random>
- // Safer to declare specific functions with using statement(s):
-
- using boost::math::beta_distribution;
- using boost::math::binomial_distribution;
- using boost::math::students_t;
-
- // Construct a students_t distribution with 4 degrees of freedom:
- students_t d1(4);
-
- // Construct a double-precision beta distribution
- // with parameters a = 10, b = 20
- beta_distribution<> d2(10, 20); // Note: _distribution<> suffix !
-
-If you need to use the distributions with a type other than `double`,
-then you can instantiate the template directly: the names of the
-templates are the same as the `double` typedef but with `_distribution`
-appended, for example: __students_t_distrib or __binomial_distrib:
-
- // Construct a students_t distribution, of float type,
- // with 4 degrees of freedom:
- students_t_distribution<float> d3(4);
-
- // Construct a binomial distribution, of long double type,
- // with probability of success 0.3
- // and 20 trials in total:
- binomial_distribution<long double> d4(20, 0.3);
-
-The parameters passed to the distributions can be accessed via getter member
-functions:
-
- d1.degrees_of_freedom(); // returns 4.0
-
-This is all well and good, but not very useful so far. What we often want
-is to be able to calculate the /cumulative distribution functions/ and
-/quantiles/ etc for these distributions.
-
-[endsect] [/section:objects Distributions are Objects]
-
-
-[section:generic Generic operations common to all distributions are non-member functions]
-
-Want to calculate the PDF (Probability Density Function) of a distribution?
-No problem, just use:
-
- pdf(my_dist, x); // Returns PDF (density) at point x of distribution my_dist.
-
-Or how about the CDF (Cumulative Distribution Function):
-
- cdf(my_dist, x); // Returns CDF (integral from -infinity to point x)
- // of distribution my_dist.
-
-And quantiles are just the same:
-
- quantile(my_dist, p); // Returns the value of the random variable x
- // such that cdf(my_dist, x) == 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 /n'th moment/ - then all you have to
-do is add the appropriate non-member functions, overloaded for each
-implemented distribution type.
-
-[tip
-
-[*Random numbers that approximate Quantiles of Distributions]
-
-If you want random numbers that are distributed in a specific way,
-for example in a uniform, normal or triangular,
-see [@http://www.boost.org/libs/random/ Boost.Random].
-
-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.
-] [/tip Random numbers that approximate Quantiles of Distributions]
-
-For example, the binomial distribution has two parameters:
-n (the number of trials) and p (the probability of success on any one trial).
-
-The `binomial_distribution` constructor therefore has two parameters:
-
-`binomial_distribution(RealType n, RealType p);`
-
-For this distribution the __random_variate is k: the number of successes observed.
-The probability density\/mass function (pdf) is therefore written as ['f(k; n, p)].
-
-[note
-
-[*Random Variates and Distribution Parameters]
-
-The concept of a __random_variable is closely linked to the term __random_variate:
-a random variate is a particular value (outcome) of a random variable.
-and [@http://en.wikipedia.org/wiki/Parameter distribution parameters]
-are conventionally distinguished (for example in Wikipedia and Wolfram MathWorld)
-by placing a semi-colon or vertical bar)
-/after/ the __random_variable (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
-['f(k| n, p)] = Pr(K = k|n, p) = probability of observing k successes out of n trials.
-K is the __random_variable, k is the __random_variate,
-the parameters are n (trials) and p (probability).
-] [/tip Random Variates and Distribution Parameters]
-
-[note By convention, __random_variate 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 `RealType`, so if you really want an integral result,
-you must round: see note on Discrete Probability Distributions below for details.]
-
-As noted above the non-member function `pdf` has one parameter for the distribution object,
-and a second for the random variate. So taking our binomial distribution
-example, we would write:
-
-`pdf(binomial_distribution<RealType>(n, p), k);`
-
-The ranges of __random_variate values that are permitted and are supported can be
-tested by using two functions `range` and `support`.
-
-The distribution (effectively the __random_variate) is said to be 'supported'
-over a range that is
-[@http://en.wikipedia.org/wiki/Probability_distribution
- "the smallest closed set whose complement has probability zero"].
-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.
-
-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 *exclude* random variate values like exact zero *if the end point is discontinuous*.
-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 `range` remains from zero, so you will still get `pdf(weibull, 0) == 0`).
-(Exponential and gamma distributions have similarly discontinuous functions).
-
-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 `max`
-to `min` for the `RealType`.
-(See [link math_toolkit.backgrounders.implementation.handling_of_floating_point_infinity
-Handling of Floating-Point Infinity] for rationale).
-
-
-[note
-
-[*Discrete Probability Distributions]
-
-Note that the [@http://en.wikipedia.org/wiki/Discrete_probability_distribution
-discrete distributions], including the binomial, negative binomial, Poisson & Bernoulli,
-are all mathematically defined as discrete functions:
-that is to say the functions `cdf` and `pdf` are only defined for integral values
-of the random variate.
-
-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.
-
-Users wanting to enforce a strict mathematical model may use `floor`
-or `ceil` functions on the random variate prior to calling the distribution
-function.
-
-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
-/outwards/: 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 /at least/ the requested
-coverage will be present in the central region, and /no more than/
-the requested coverage will be present in the tails.
-
-This behaviour can be changed so that the quantile functions are rounded
-differently, or return a real-valued result using
-[link math_toolkit.policy.pol_overview Policies]. It is strongly
-recommended that you read the tutorial
-[link math_toolkit.policy.pol_tutorial.understand_dis_quant
-Understanding Quantiles of Discrete Distributions] before
-using the quantile function on a discrete distribtion. The
-[link math_toolkit.policy.pol_ref.discrete_quant_ref reference docs]
-describe how to change the rounding policy
-for these distributions.
-
-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.
-]
-
-[endsect] [/ section:generic Generic operations common to all distributions are non-member functions]
-
-[#complements]
-[section:complements Complements are supported too - and when to use them]
-
-Often you don't want the value of the CDF, but its complement, which is
-to say `1-p` rather than `p`. It is tempting to calculate the CDF and subtract
-it from `1`, but if `p` is very close to `1` then cancellation error
-will cause you to lose accuracy, perhaps totally.
-
-[link why_complements See below ['"Why and when to use complements?"]]
-
-In this library, whenever you want to receive a complement, just wrap
-all the function arguments in a call to `complement(...)`, for example:
-
- students_t dist(5);
- cout << "CDF at t = 1 is " << cdf(dist, 1.0) << endl;
- cout << "Complement of CDF at t = 1 is " << cdf(complement(dist, 1.0)) << endl;
-
-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 `complement(...)`, for example:
-
- students_t dist(5);
-
- for(double i = 10; i < 1e10; i *= 10)
- {
- // Calculate the quantile for a 1 in i chance:
- double t = quantile(complement(dist, 1/i));
- // Print it out:
- cout << "Quantile of students-t with 5 degrees of freedom\n"
- "for a 1 in " << i << " chance is " << t << endl;
- }
-
-[tip
-
-[*Critical values are just quantiles]
-
-Some texts talk about quantiles, or percentiles or fractiles,
-others about critical values, the basic rule is:
-
-['Lower critical values] are the same as the quantile.
-
-['Upper critical values] are the same as the quantile from the complement
-of the probability.
-
-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
-['lower critical value] for a probability of 0.05 is given by:
-
-`quantile(binomial(100, 0.1), 0.05)`
-
-and the ['upper critical value] is given by:
-
-`quantile(complement(binomial(100, 0.1), 0.05))`
-
-which return 4.82 and 14.63 respectively.
-]
-
-[#why_complements]
-[tip
-
-[*Why bother with complements anyway?]
-
-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 `0.999999940f`, then `1 - 0.999999940f = 5.96046448e-008`,
-but the result is actually accurate to just ['one single bit]: the only
-bit that didn't cancel out!
-
-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[super -9], 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:
-
-`quantile(complement(students_t(10000), 1e-9))`
-
-returns the expected t-statistic `6.00336`, where as:
-
-`quantile(students_t(10000), 1-1e-9f)`
-
-raises an overflow error, since it is the same as:
-
-`quantile(students_t(10000), 1)`
-
-Which has no finite result.
-
-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).
-
-So always avoid, for example, using a probability near to unity like 0.99999
-
-`quantile(my_distribution, 0.99999)`
-
-and instead use
-
-`quantile(complement(my_distribution, 0.00001))`
-
-since 1 - 0.99999 is not exactly equal to 0.00001 when using floating-point arithmetic.
-
-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.
-
-] [/ tip *Why bother with complements anyway?]
-
-[endsect] [/ section:complements Complements are supported too - and why]
-
-[section:parameters Parameters can be calculated]
-
-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:
-
- students_t::find_degrees_of_freedom(
- 1.3, // difference from true mean to detect
- 0.05, // maximum risk of falsely rejecting the null-hypothesis.
- 0.1, // maximum risk of falsely failing to reject the null-hypothesis.
- 0.13); // sample standard deviation
-
-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.
-
-[endsect] [/ section:parameters Parameters can be calculated]
-
-[section:summary Summary]
-
-* Distributions are objects, which are constructed from whatever
-parameters the distribution may have.
-* Member functions allow you to retrieve the parameters of a distribution.
-* Generic non-member functions provide access to the properties that
-are common to all the distributions (PDF, CDF, quantile etc).
-* Complements of probabilities are calculated by wrapping the function's
-arguments in a call to `complement(...)`.
-* Functions that accept a probability can accept a complement of the
-probability as well, by wrapping the function's
-arguments in a call to `complement(...)`.
-* Static member functions allow the parameters of a distribution
-to be found from other information.
-
-Now that you have the basics, the next section looks at some worked examples.
-
-[endsect] [/section:summary Summary]
-[endsect] [/section:overview Overview]
-
-[section:weg Worked Examples]
-[include distributions/distribution_construction.qbk]
-[include distributions/students_t_examples.qbk]
-[include distributions/chi_squared_examples.qbk]
-[include distributions/f_dist_example.qbk]
-[include distributions/binomial_example.qbk]
-[include distributions/geometric_example.qbk]
-[include distributions/negative_binomial_example.qbk]
-[include distributions/normal_example.qbk]
-[/include distributions/inverse_gamma_example.qbk]
-[/include distributions/inverse_gaussian_example.qbk]
-[include distributions/inverse_chi_squared_eg.qbk]
-[include distributions/nc_chi_squared_example.qbk]
-[include distributions/error_handling_example.qbk]
-[include distributions/find_location_and_scale.qbk]
-[include distributions/nag_library.qbk]
-[include distributions/c_sharp.qbk]
-[endsect] [/section:weg Worked Examples]
-
-[include background.qbk]
-
-[endsect] [/ section:stat_tut Statistical Distributions Tutorial]
-
-[/ dist_tutorial.qbk
- Copyright 2006, 2010, 2011 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-
-
-
-
-
-
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/error.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/error.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,73 +0,0 @@
-[section:relative_error Relative Error]
-
-Given an actual value /a/ and a found value /v/ the relative error can be
-calculated from:
-
-[equation error2]
-
-However the test programs in the library use the symmetrical form:
-
-[equation error1]
-
-which measures /relative difference/ 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.
-
-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 `std::numeric_limits<>::min()`:
-in other words all denormalised numbers are regarded as a zero.
-
-All the test programs calculate /quantized relative error/, whereas the graphs
-in this manual are produced with the /actual error/. 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 /units in the last place/
-either rounded up from the actual error, or rounded down (possibly to zero).
-In contrast the /true error/ 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 /units in the last place/.
-
-Note that throughout this manual and the test programs the relative error is
-usually quoted in units of epsilon. However, remember that /units in the last place/
-more accurately reflect the number of contaminated digits, and that relative
-error can /"wobble"/ by a factor of 2 compared to /units in the last place/.
-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!
-
-[#zero_error][h4 The Impossibility of Zero Error]
-
-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
-/transcendental number/
-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....
-
-Refer to the classic text
-[@http://docs.sun.com/source/806-3568/ncg_goldberg.html What Every Computer Scientist Should Know About Floating-Point Arithmetic]
-for more information.
-
-[endsect][/section:relative_error Relative Error]
-
-[/
- Copyright 2006, 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/error_handling.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/error_handling.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,403 +0,0 @@
-[section:error_handling Error Handling]
-
-[def __format [@../../../../format/index.html Boost.Format]]
-
-[heading Quick Reference]
-
-Handling of errors by this library is split into two orthogonal parts:
-
-* What kind of error has been raised?
-* What should be done when the error is raised?
-
-[warning 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!]
-
-The kinds of errors that can be raised are:
-
-[variablelist
-[[Domain Error][Occurs when one or more arguments to a function
- are out of range.]]
-[[Pole Error][Occurs when the particular arguments cause the function to be
- evaluated at a pole with no well defined residual value. For example if
- __tgamma 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.]]
-[[Overflow Error][Occurs when the result is either infinite, or too large
- to represent in the numeric type being returned by the function.]]
-[[Underflow Error][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.]]
-[[Denormalisation Error][Occurs when the returned result would be a denormalised value.]]
-[[Rounding Error][Occurs when the argument to one of the rounding functions __trunc,
- __round and __modf can not be represented as an integer type, is
- outside the range of the result type.]]
-[[Evaluation Error][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.]]
-[[Indeterminate Result Error][Occurs when the result of a function is not
- defined for the values that were passed to it.]]
-]
-
-The action undertaken by each error condition is determined by the current
-__Policy 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).
-
-The available actions are:
-
-[variablelist
-[[throw_on_error][Throws the exception most appropriate to the error condition.]]
-[[errno_on_error][Sets ::errno to an appropriate value, and then returns the most
-appropriate result]]
-[[ignore_error][Ignores the error and simply the returns the most appropriate result.]]
-[[user_error][Calls a
- [link math_toolkit.policy.pol_tutorial.user_def_err_pol user-supplied error handler].]]
-]
-
-The following tables show all the permutations of errors and actions,
-with the *default action for each error shown in bold*:
-
-[table Possible Actions for Domain Errors
-[[Action] [Behaviour]]
-[[throw_on_error][[*Throws `std::domain_error`]]]
-[[errno_on_error][Sets `::errno` to `EDOM` and returns `std::numeric_limits<T>::quiet_NaN()`]]
-[[ignore_error][Returns `std::numeric_limits<T>::quiet_NaN()`]]
-[[user_error][Returns the result of `boost::math::policies::user_domain_error`:
- [link math_toolkit.policy.pol_tutorial.user_def_err_pol
- this function must be defined by the user].]]
-]
-
-[table Possible Actions for Pole Errors
-[[Action] [Behaviour]]
-[[throw_on_error] [[*Throws `std::domain_error`]]]
-[[errno_on_error][Sets `::errno` to `EDOM` and returns `std::numeric_limits<T>::quiet_NaN()`]]
-[[ignore_error][Returns `std::numeric_limits<T>::quiet_NaN()`]]
-[[user_error][Returns the result of `boost::math::policies::user_pole_error`:
- [link math_toolkit.policy.pol_tutorial.user_def_err_pol
- this function must be defined by the user].]]
-]
-
-[table Possible Actions for Overflow Errors
-[[Action] [Behaviour]]
-[[throw_on_error][[*Throws `std::overflow_error`]]]
-[[errno_on_error][Sets `::errno` to `ERANGE` and returns `std::numeric_limits<T>::infinity()`]]
-[[ignore_error][Returns `std::numeric_limits<T>::infinity()`]]
-[[user_error][Returns the result of `boost::math::policies::user_overflow_error`:
- [link math_toolkit.policy.pol_tutorial.user_def_err_pol
- this function must be defined by the user].]]
-]
-
-[table Possible Actions for Underflow Errors
-[[Action] [Behaviour]]
-[[throw_on_error][Throws `std::underflow_error`]]
-[[errno_on_error][Sets `::errno` to `ERANGE` and returns 0.]]
-[[ignore_error][[*Returns 0]]]
-[[user_error][Returns the result of `boost::math::policies::user_underflow_error`:
- [link math_toolkit.policy.pol_tutorial.user_def_err_pol
- this function must be defined by the user].]]
-]
-
-[table Possible Actions for Denorm Errors
-[[Action] [Behaviour]]
-[[throw_on_error][Throws `std::underflow_error`]]
-[[errno_on_error][Sets `::errno` to `ERANGE` and returns the denormalised value.]]
-[[ignore_error][[*Returns the denormalised value.]]]
-[[user_error][Returns the result of `boost::math::policies::user_denorm_error`:
- [link math_toolkit.policy.pol_tutorial.user_def_err_pol
- this function must be defined by the user].]]
-]
-
-[table Possible Actions for Rounding Errors
-[[Action] [Behaviour]]
-[[throw_on_error][Throws `boost::math::rounding_error`]]
-[[errno_on_error][Sets `::errno` to `ERANGE` 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).]]
-[[ignore_error][[*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).]]]
-[[user_error][Returns the result of `boost::math::policies::user_rounding_error`:
- [link math_toolkit.policy.pol_tutorial.user_def_err_pol
- this function must be defined by the user].]]
-]
-
-[table Possible Actions for Internal Evaluation Errors
-[[Action] [Behaviour]]
-[[throw_on_error][[*Throws `boost::math::evaluation_error`]]]
-[[errno_on_error][Sets `::errno` to `EDOM` and returns the closest approximation found.]]
-[[ignore_error][Returns the closest approximation found.]]
-[[user_error][Returns the result of `boost::math::policies::user_evaluation_error`:
- [link math_toolkit.policy.pol_tutorial.user_def_err_pol
- this function must be defined by the user].]]
-]
-
-[table Possible Actions for Indeterminate Result Errors
-[[Action] [Behaviour]]
-[[throw_on_error][Throws `std::domain_error`]]
-[[errno_on_error][Sets `::errno` to `EDOM` and returns the same value as `ignore_error`.]]
-[[ignore_error][[*Returns a default result that depends on the function where the error occurred.]]]
-[[user_error][Returns the result of `boost::math::policies::user_indeterminate_result_error`:
- [link math_toolkit.policy.pol_tutorial.user_def_err_pol
- this function must be defined by the user].]]
-]
-
-All these error conditions are in namespace boost::math::policies,
-made available, for example, a by namespace declaration
-using `namespace boost::math::policies;` or individual using declarations
-`using boost::math::policies::overflow_error;`.
-
-[heading Rationale]
-
-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:
-
-* Genuine errors should be flagged with exceptions
-rather than following C-compatible behaviour and setting `::errno`.
-* Numeric underflow and denormalised results were not considered to be
-fatal errors in most cases, so it was felt that these should be ignored.
-* If there is more than one error,
-only the first detected will be reported in the throw message.
-
-[heading Finding More Information]
-
-There are some pre-processor macro defines that can be used to
-[link math_toolkit.policy.pol_ref.policy_defaults
-change the policy defaults]. See also the [link math_toolkit.policy
-policy section].
-
-An example is at the Policy tutorial in
-[link math_toolkit.policy.pol_tutorial.changing_policy_defaults
-Changing the Policy Defaults].
-
-Full source code of this typical example of passing a 'bad' argument
-(negative degrees of freedom) to Student's t distribution
-is [link math_toolkit.dist.stat_tut.weg.error_eg in the error handling example].
-
-The various kind of errors are described in more detail below.
-
-[heading [#domain_error]Domain Errors]
-
-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:
-
- boost::math::policies::raise_domain_error<T>(FunctionName, Message, Val, __Policy);
-
-Where
-`T` is the floating-point type passed to the function, `FunctionName` is the
-name of the function, `Message` is an error message describing the problem,
-Val is the value that was out of range, and __Policy is the current policy
-in use for the function that was called.
-
-The default policy behaviour of this function is to throw a
-std::domain_error C++ exception. But if the __Policy is to ignore
-the error, or set global `::errno`, then a NaN will be returned.
-
-This behaviour is chosen to assist compatibility with the behaviour of
-['ISO/IEC 9899:1999 Programming languages - C]
-and with the
-[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Draft Technical Report on C++ Library Extensions, 2005-06-24, section 5.2.1, paragraph 6]:
-
-[:['"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:]]
-
-[:['"the function description's Returns clause explicitly specifies a domain, and those arguments fall outside the specified domain; or]
-
-['"the corresponding mathematical function value has a non-zero imaginary component; or]
-
-['"the corresponding mathematical function is not mathematically defined.]]
-
-[:['"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."]]
-
-Note that in order to support information-rich error messages when throwing
-exceptions, `Message` must contain
-a __format recognised format specifier: the argument `Val` is inserted into
-the error message according to the specifier used.
-
-For example if `Message` contains a "%1%" then it is replaced by the value of
-`Val` to the full precision of T, where as "%.3g" would contain the value of
-`Val` to 3 digits. See the __format documentation for more details.
-
-[heading [#pole_error]Evaluation at a pole]
-
-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:
-
- boost::math::policies::raise_pole_error<T>(FunctionName, Message, Val, __Policy);
-
-Where
-`T` is the floating point type passed to the function, `FunctionName` is the
-name of the function, `Message` is an error message describing the problem,
-`Val` is the value of the argument that is at a pole, and __Policy is the
-current policy in use for the function that was called.
-
-The default behaviour of this function is to throw a std::domain_error exception.
-But __error_policy can be used to change this, for example to `ignore_error`
-and return NaN.
-
-Note that in order to support information-rich error messages when throwing
-exceptions, `Message` must contain
-a __format recognised format specifier: the argument `val` is inserted into
-the error message according to the specifier used.
-
-For example if `Message` contains a "%1%" then it is replaced by the value of
-`val` to the full precision of T, where as "%.3g" would contain the value of
-`val` to 3 digits. See the __format documentation for more details.
-
-[heading [#overflow_error]Numeric Overflow]
-
-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:
-
- boost::math::policies::raise_overflow_error<T>(FunctionName, Message, __Policy);
-
-Where
-`T` is the floating-point type passed to the function, `FunctionName` is the
-name of the function, `Message` is an error message describing the problem,
-and __Policy is the current policy
-in use for the function that was called.
-
-The default policy for this function is that `std::overflow_error`
-C++ exception is thrown. But if, for example, an `ignore_error` policy
-is used, then returns `std::numeric_limits<T>::infinity()`.
-In this situation if the type `T` doesn't support infinities,
-the maximum value for the type is returned.
-
-[heading [#underflow_error]Numeric Underflow]
-
-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:
-
- boost::math::policies::raise_underflow_error<T>(FunctionName, Message, __Policy);
-
-Where
-`T` is the floating point type passed to the function, `FunctionName` is the
-name of the function, `Message` is an error message describing the problem,
-and __Policy is the current policy
-in use for the called function.
-
-The default version of this function returns zero.
-But with another policy, like `throw_on_error`,
-throws an `std::underflow_error` C++ exception.
-
-[heading [#denorm_error]Denormalisation Errors]
-
-If the result of a special function is a denormalised value /z/ then the function
-returns the result of:
-
- boost::math::policies::raise_denorm_error<T>(z, FunctionName, Message, __Policy);
-
-Where
-`T` is the floating point type passed to the function, `FunctionName` is the
-name of the function, `Message` is an error message describing the problem,
-and __Policy is the current policy
-in use for the called function.
-
-The default version of this function returns /z/.
-But with another policy, like `throw_on_error`
-throws an `std::underflow_error` C++ exception.
-
-[heading [#evaluation_error]Evaluation Errors]
-
-When a special function calculates a result that is known to be erroneous,
-or where the result is incalculable then it calls:
-
- boost::math::policies::raise_evaluation_error<T>(FunctionName, Message, Val, __Policy);
-
-Where
-`T` is the floating point type passed to the function, `FunctionName` is the
-name of the function, `Message` is an error message describing the problem,
-`Val` is the erroneous value,
-and __Policy is the current policy
-in use for the called function.
-
-The default behaviour of this function is to throw a `boost::math::evaluation_error`.
-
-Note that in order to support information rich error messages when throwing
-exceptions, `Message` must contain
-a __format recognised format specifier: the argument `val` is inserted into
-the error message according to the specifier used.
-
-For example if `Message` contains a "%1%" then it is replaced by the value of
-`val` to the full precision of T, where as "%.3g" would contain the value of
-`val` to 3 digits. See the __format documentation for more details.
-
-[heading [#indeterminate_result_error]Indeterminate Result Errors]
-
-When the result of a special function is indeterminate for the value that was
-passed to it, then the function returns the result of:
-
- boost::math::policies::raise_overflow_error<T>(FunctionName, Message, Val, Default, __Policy);
-
-Where
-`T` is the floating-point type passed to the function, `FunctionName` is the
-name of the function, `Message` 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 `ignore_error` and
-`errno_on_erro` policies, and __Policy is the current policy in use for the
-function that was called.
-
-The default policy for this function is `ignore_error`: 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[super 0] is 1, even though the result is actually mathematically indeterminate.
-
-[heading [#rounding_error]Rounding Errors]
-
-When one of the rounding functions __round, __trunc or __modf 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:
-
- boost::math::policies::raise_rounding_error<T>(FunctionName, Message, Val, __Policy);
-
-Where
-`T` is the floating point type passed to the function, `FunctionName` is the
-name of the function, `Message` is an error message describing the problem,
-`Val` is the erroneous argument,
-and __Policy is the current policy in use for the called function.
-
-The default behaviour of this function is to throw a `boost::math::rounding_error`.
-
-Note that in order to support information rich error messages when throwing
-exceptions, `Message` must contain
-a __format recognised format specifier: the argument `val` is inserted into
-the error message according to the specifier used.
-
-For example if `Message` contains a "%1%" then it is replaced by the value of
-`val` to the full precision of T, where as "%.3g" would contain the value of
-`val` to 3 digits. See the __format documentation for more details.
-
-[heading [#checked_narrowing_cast]Errors from typecasts]
-
-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:
-
- template <class T, class __Policy, class U>
- T checked_narrowing_cast(U const& val, const char* function);
-
-Is used to perform these conversions, and will call the error handlers
-listed above on [link overflow_error overflow],
-[link underflow_error underflow] or [link denorm_error denormalisation].
-
-[endsect][/section:error_handling Error Handling]
-
-[/
- Copyright 2006 - 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/faq.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/faq.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,103 +0,0 @@
-[section:faq Frequently Asked Questions FAQ]
-
-# ['I'm a FORTRAN/NAG/SPSS/SAS/Cephes/MathCad/R user
-and I don't see where the functions like dnorm(mean, sd) are in Boost.Math?] [br]
-Nearly all are provided, and many more like mean, skewness, quantiles, complements ...
-but Boost.Math makes full use of C++, and it looks a bit different.
-But do not panic! See section on construction and the many examples.
-Briefly, the distribution is constructed with the parameters (like location and scale)
-(things after the | in representation like P(X=k|n, p) or ; in a common represention of pdf f(x; [mu][sigma][super 2]).
-Functions like pdf, cdf are called with the name of that distribution and the random variate often called x or k.
-For example, `normal my_norm(0, 1); pdf(my_norm, 2.0);` [br]
-#I'm a user of [@http://support.sas.com/rnd/app/da/new/probabilityfunctions.html New SAS Functions for Computing Probabilities]. [br]
-You will find the interface more familar, but to be able to select a distribution (perhaps using a string)
-see the Extras/Future Directions section,
-and /boost/libs/math/dot_net_example/boost_math.cpp for an example that is used to create a C# utility
-(that you might also find useful): see [@http://sourceforge.net/projects/distexplorer/ Statistical Distribution Explorer] [br].
-# ['I'm allegic to reading manuals and prefer to learn from examples.][br]
-Fear not - you are not alone! Many examples are available for functions and distributions.
-Some are referenced directly from the text. Others can be found at \boost_latest_release\libs\math\example.
-If you are a Visual Studio user, you should be able to create projects from each of these,
-making sure that the Boost library is in the include directories list.
-# ['How do I make sure that the Boost library is in the Visual Studio include directories list?][br]
-You can add an include path, for example, your Boost place /boost-latest_release,
-for example `X:/boost_1_45_0/` if you have a separate partition X for Boost releases.
-Or you can use an environment variable BOOST_ROOT set to your Boost place, and include that.
-Visual Studio before 2010 provided Tools, Options, VC++ Directories to control directories:
-Visual Studio 2010 instead provides property sheets to assist.
-You may find it convenient to create a new one adding \boost-latest_release;
-to the existing include items in $(IncludePath).
-# ['I'm a FORTRAN/NAG/SPSS/SAS/Cephes/MathCad/R user and
-I don't see where the properties like mean, median, mode, variance, skewness of distributions are in Boost.Math?][br]
-They are all available (if defined for the parameters with which you constructed the distribution) via __usual_accessors.
-# ['I am a C programmer. Can I user Boost.Math with C?][br]
-Yes you can, including all the special functions, and TR1 functions like isnan.
-They appear as C functions, by being declared as "extern C".
-# ['I am a C# (Basic? F# FORTRAN? Other CLI?) programmer. Can I use Boost.Math with C#?] [br]
-Yes you can, including all the special functions, and TR1 functions like isnan.
-But you [*must build the Boost.Math as a dynamic library (.dll) and compile with the /CLI option].
-See the boost/math/dot_net_example folder which contains an example that
-builds a simple statistical distribution app with a GUI.
-See [@http://sourceforge.net/projects/distexplorer/ Statistical Distribution Explorer] [br]
-# ['What these "policies" things for?] [br]
-Policies are a powerful (if necessarily complex) fine-grain mechanism that
-allow you to customise the behaviour of the Boost.Math library according to your precise needs.
-See __policy_section. But if, very probably, the default behaviour suits you, you don't need to know more.
-# ['I am a C user and expect to see global C-style`::errno` set for overflow/errors etc?] [br]
-You can achieve what you want - see __error_policy and __user_error_handling and many examples.
-# ['I am a C user and expect to silently return a max value for overflow?] [br]
-You (and C++ users too) can return whatever you want on overflow
-- see __overflow_error and __error_policy and several examples.
-# ['I don't want any error message for overflow etc?] [br]
-You can control exactly what happens for all the abnormal conditions, including the values returned.
-See __domain_error, __overflow_error __error_policy __user_error_handling etc and examples.
-# ['My environment doesn't allow and/or I don't want exceptions. Can I still user Boost.Math?] [br]
-Yes but you must customise the error handling: see __user_error_handling and __changing_policy_defaults .
-# ['The docs are several hundreds of pages long! Can I read the docs off-line or on paper?] [br]
-Yes - you can download the Boost current release of most documentation
-as a zip of pdfs (including Boost.Math) from Sourceforge, for example
-[@https://sourceforge.net/projects/boost/files/boost-docs/1.45.0/boost_pdf_1_45_0.tar.gz/download].
-And you can print any pages you need (or even print all pages - but be warned that there are several hundred!).
-Both html and pdf versions are highly hyperlinked.
-The entire Boost.Math pdf can be searched with Adobe Reader, Edit, Find ...
-This can often find what you seek, a partial substitute for a full index.
-# ['I want a compact version for an embedded application. Can I use float precision?] [br]
-Yes - by selecting RealType template parameter as float:
-for example normal_distribution<float> your_normal(mean, sd);
-(But double may still be used internally, so space saving may be less that you hope for).
-You can also change the promotion policy, but accuracy might be much reduced.
-# ['I seem to get somewhat different results compared to other programs. Why?]
-We hope Boost.Math to be more accurate: our priority is accuracy (over speed).
-See the section on accuracy. But for evaluations that require iterations
-there are parameters which can change the required accuracy. You might be able to
-squeeze a little more accuracy at the cost of runtime.
-# ['Will my program run more slowly compared to other math functions and statistical libraries?]
-Probably, thought not always, and not by too much: our priority is accuracy.
-For most functions, making sure you have the latest compiler version with all optimisations switched on is the key to speed.
-For evaluations that require iteration, you may be able to gain a little more speed at the expense of accuracy.
-See detailed suggestions and results on __performance.
-# ['How do I handle infinity and NaNs portably?] [br]
-See __fp_facets for Facets for Floating-Point Infinities and NaNs.
-# ['Where are the pre-built libraries?] [br]
-Good news - you probably don't need any! - just `#include <boost/`['math/distribution_you_want>].
-But in the unlikely event that you do, see __building.
-# ['I don't see the function or distribution that I want.] [br]
-You could try an email to ask the authors - but no promises!
-# ['I need more decimal digits for values/computations.] [br]
-You can use Boost.Math with __multiprecision: typically
-__cpp_dec_float is a useful user-defined type to provide a fixed number of decimal digits, usually 50 or 100.
-# Why can't I write something really simple like `cpp_int one(1); cpp_dec_float_50 two(2); one * two;`
-Because `cpp_int` might be bigger than `cpp_dec_float can hold`, so you must make an [*explicit] conversion.
-See [@http://svn.boost.org/svn/boost/trunk/libs/multiprecision/doc/html/boost_multiprecision/intro.html mixed multiprecision arithmetic]
-and [@http://svn.boost.org/svn/boost/trunk/libs/multiprecision/doc/html/boost_multiprecision/tut/conversions.html conversion].
-
-
-[endsect] [/section:faq Frequently Asked Questions]
-
-[/
- Copyright 2010, 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/float_next.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/float_next.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,207 +0,0 @@
-[section:next_float Floating-Point Representation Distance (ULP),
- and Finding Adjacent Floating-Point Values]
-
-[@http://en.wikipedia.org/wiki/Unit_in_the_last_place Unit of Least Precision or Unit in the Last Place]
-is the gap between two different, but as close as possible, floating-point numbers.
-
-Most decimal values, for example 0.1, cannot be exactly represented as floating-point values,
-but will be stored as the
-[@http://en.wikipedia.org/wiki/Floating_point#Representable_numbers.2C_conversion_and_rounding
-closest representable floating-point].
-
-Functions are provided for finding adjacent greater and lesser floating-point values,
-and estimating the number of gaps between any two floating-point values.
-
-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 *not* a type that extends the representation to provide an exact representation
-for any number, for example [@http://keithbriggs.info/xrc.html XRC eXact Real in C].
-
-[section:nextafter Finding the Next Representable Value in a Specific Direction (nextafter)]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/special_functions/next.hpp>
-``
-
- namespace boost{ namespace math{
-
- template <class FPT>
- FPT nextafter(FPT val, FPT direction);
-
- }} // namespaces
-
-[h4 Description - nextafter]
-
-This is an implementation of the `nextafter` 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).
-
-[note The C99 functions must use suffixes f and l to distinguish float and long double versions.
-C++ uses the template mechanism instead.]
-
-Returns the next representable value after /x/ in the direction of /y/. If
-`x == y` then returns /x/. If /x/ is non-finite then returns the result of
-a __domain_error. If there is no such value in the direction of /y/ then
-returns an __overflow_error.
-
-[warning The template parameter FTP must be a floating-point type.
-An integer type, for example, will produce an unhelpful error message.]
-
-[tip Nearly always, you just want the next or prior representable value,
-so instead use `float_next` or `float_prior` below.]
-
-[h4 Examples - nextafter]
-
-The two representations using a 32-bit float either side of unity are:
-``
-The nearest (exact) representation of 1.F is 1.00000000
-nextafter(1.F, 999) is 1.00000012
-nextafter(1/f, -999) is 0.99999994
-
-The nearest (not exact) representation of 0.1F is 0.100000001
-nextafter(0.1F, 10) is 0.100000009
-nextafter(0.1F, 10) is 0.099999994
-``
-
-[endsect]
-
-[section:float_next Finding the Next Greater Representable Value (float_next)]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/special_functions/next.hpp>
-``
-
- namespace boost{ namespace math{
-
- template <class FPT>
- FPT float_next(FPT val);
-
- }} // namespaces
-
-[h4 Description - float_next]
-
-Returns the next representable value which is greater than /x/.
-If /x/ is non-finite then returns the result of
-a __domain_error. If there is no such value greater than /x/ then
-returns an __overflow_error.
-
-Has the same effect as
-
- nextafter(val, (std::numeric_limits<FPT>::max)());
-
-[endsect] [/section:float_next Finding the Next Greater Representable Value (float_prior)]
-
-[section:float_prior Finding the Next Smaller Representable Value (float_prior)]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/special_functions/next.hpp>
-``
-
- namespace boost{ namespace math{
-
- template <class FPT>
- FPT float_prior(FPT val);
-
- }} // namespaces
-
-
-[h4 Description - float_prior]
-
-Returns the next representable value which is less than /x/.
-If /x/ is non-finite then returns the result of
-a __domain_error. If there is no such value less than /x/ then
-returns an __overflow_error.
-
-Has the same effect as
-
- nextafter(val, -(std::numeric_limits<FPT>::max)()); // Note most negative value -max.
-
-[endsect] [/section:float_prior Finding the Next Smaller Representable Value (float_prior)]
-
-[section:float_distance Calculating the Representation Distance
- Between Two Floating Point Values (ULP) float_distance]
-
-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.
-
-[h4 Synopsis]
-
-``
-#include <boost/math/special_functions/next.hpp>
-``
-
- namespace boost{ namespace math{
-
- template <class FPT>
- FPT float_distance(FPT a, FPT b);
-
- }} // namespaces
-
-[h4 Description - float_distance]
-
-Returns the distance between /a/ and /b/: the result is always
-a signed integer value (stored in floating-point type FPT)
-representing the number of distinct representations between /a/ and /b/.
-
-Note that
-
-* `float_distance(a, a)` always returns 0.
-* `float_distance(float_next(a), a)` always returns -1.
-* `float_distance(float_prior(a), a)` always returns 1.
-
-The function `float_distance` is equivalent to calculating the number
-of ULP (Units in the Last Place) between /a/ and /b/ except that it
-returns a signed value indicating whether `a > b` or not.
-
-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.
-
-[endsect] [/section:float_distance Calculating the Representation Distance
- Between Two Floating Point Values (ULP) float_distance]
-
-[section:float_advance Advancing a Floating Point Value by a Specific
-Representation Distance (ULP) float_advance]
-
-Function float_advance advances a floating point number by a specified number
-of ULP.
-
-[h4 Synopsis]
-
-``
-#include <boost/math/special_functions/next.hpp>
-``
-
- namespace boost{ namespace math{
-
- template <class FPT>
- FPT float_advance(FPT val, int distance);
-
- }} // namespaces
-
-[h4 Description - float_advance]
-
-Returns a floating point number /r/ such that `float_distance(val, r) == distance`.
-
-[endsect] [/section:float_advance]
-
-[endsect] [/ section:next_float Floating-Point Representation Distance (ULP),
- and Finding Adjacent Floating-Point Values]
-
-[/
- Copyright 2008 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/fp_facets.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/fp_facets.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,567 +0,0 @@
-[section:fp_facets Facets for Floating-Point Infinities and NaNs]
-
-[import ../../example/nonfinite_facet_sstream.cpp]
-
-[h4 Synopsis]
-
- namespace boost{ namespace math
- {
- // Values for flags.
- const int legacy;
- const int signed_zero;
- const int trap_infinity;
- const int trap_nan;
-
- template<
- class CharType,
- class OutputIterator = std::ostreambuf_iterator<CharType>
- >
- class nonfinite_num_put : public std::num_put<CharType, OutputIterator>
- {
- public:
- explicit nonfinite_num_put(int flags = 0);
- };
-
- template<
- class CharType,
- class InputIterator = std::istreambuf_iterator<CharType>
- >
- class nonfinite_num_get : public std::num_get<CharType, InputIterator>
- {
- public:
- explicit nonfinite_num_get(int flags = 0); // legacy, sign_zero ...
- };
- }} // namespace boost namespace math
-
-To use these facets
-
- #include <boost\math\special_functions\nonfinite_num_facets.hpp>
-
-
-[section:intro Introduction]
-
-[h5 The Problem]
-
-The C++98 standard does not specify how ['infinity] and ['NaN] 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:
-
- stringstream ss;
- double inf = numeric_limits<double>::infinity();
- double r;
- ss << inf; // Write out.
- ss >> r; // Read back in.
-
- cout << "infinity output was " << inf << endl; // 1.#INF
- cout << "infinity input was " << r << endl; // 1
-
- assert(inf == y); // Fails!
-
-[h5 The Solution]
-
-The facets `nonfinite_num_put` and `nonfinite_num_get`
-format and parse all floating-point numbers,
-including `infinity` and `NaN`, in a consistent and portable manner.
-
-The following test succeeds with MSVC.
-
-[nonfinite_facets_sstream_1]
-
-[tip To add two facets, `nonfinite_num_put` and `nonfinite_num_get`,
-you may have to add one at a time, using a temporary locale.
-
-Or you can create a new locale in one step
-
-`std::locale new_locale(std::locale(std::locale(std::locale(), new boost::math::nonfinite_num_put<char>), new boost::math::nonfinite_num_get<char>));`
-
-and, for example, use it to imbue an input and output stringstream.
-]
-
-[tip To just change an input or output stream, you can concisely write
-`cout.imbue (std::locale(std::locale(), new boost::math::nonfinite_num_put<char>));`
-or
-`cin.imbue (std::locale(std::locale(), new boost::math::nonfinite_num_get<char>));`
-]
-
-[nonfinite_facets_sstream_2]
-
-[h4 C++0X standard for output of infinity and NaN]
-
-[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf C++0X (final) draft standard]
-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.
-
-[h4 C99 standard for output of infinity and NaN]
-
-The [@http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf C99 standard]
-[*does] specify how infinity and NaN
-are formatted by printf and similar output functions,
-and parsed by scanf and similar input functions.
-
-The following string representations are used:
-
-[table C99 Representation of Infinity and NaN
-[[number] [string]]
-[[Positive infinity]["inf" or "infinity"]]
-[[Positive NaN]["nan" or "nan(...)"]]
-[[Negative infinity]["-inf" or "-infinity"]]
-[[Negative NaN]["-nan" or "-nan(...)"]]
-]
-
-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.
-
-[h5 Signaling NaNs]
-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
-[@http://en.wikipedia.org/wiki/IEEE_floating-point_standard IEEE 754-2008].
-
-Floating-point values with layout ['s]111 1111 1['a]xx xxxx xxxx xxxx xxxx xxxx
-where ['s] is the sign, ['x] is the payload, and bit ['a] determines the type of NaN.
-
-If bit ['a] = 1, it is a quiet NaN.
-
-If bit ['a] is zero and the payload ['x] is nonzero, then it is a signaling NaN.
-
-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.
-[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf C++0X 18.3.2.2]
-still specifies a (implementation-defined) representation for signaling NaN,
-and `static constexpr bool has_signaling_NaN`
-a method of checking if a floating-point type has a representation for signaling NaN.
-
-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
-[@http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf C99] format,
-and output as `1.#QNAN` by Microsoft compilers.
-
-[note 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.
-
-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.]
-
-[note 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.
-
-This might apply to user-defined types, but in practice built-in floating-point
-types `float`, `double` and `long double` have well-behaved signs.]
-
-The numbers can be of type `float`, `double` and `long double`.
-An optional + sign can be used with positive numbers (controlled by ios manipulator `showpos`).
-The function `printf` and similar C++ functions use standard formatting flags
-to put all lower or all upper case
-(controlled by `std::ios` manipulator `uppercase` and `lowercase`).
-
-The function `scanf` and similar input functions are case-insensitive.
-
-The dots in `nan(...)` 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 ['missing value], for example.
-
-This library uses the string representations specified by the C99 standard.
-
-An example of an implementation that optionally includes the NaN payload information is at
-[@http://publib.boulder.ibm.com/infocenter/zos/v1r10/index.jsp?topic=/com.ibm.zos.r10.bpxbd00/fprints.htm AIX NaN fprintf].
-That implementation specifies for Binary Floating Point NANs:
-
-* 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 ')'.
-
-* The integer value, n, is determined by the fraction bits of the NaN argument value as follows:
-
-* 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.
-
-* 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.
-
-[warning This implementation does not (yet) provide output of, or access to, the NaN payload.]
-
-[endsect] [/section:intro Introduction]
-
-[section:reference Reference]
-
-[h5 The Facet `nonfinite_num_put`]
-
- template<
- class CharType, class OutputIterator = std::ostreambuf_iterator<CharType>
- >
- class nonfinite_num_put;
-
-The `class nonfinite_num_put<CharType, OutputIterator>`
-is derived from `std::num_put<CharType, OutputIterator>`.
-Thus it is a facet that formats numbers.
-The first template argument is the character type of the formatted strings,
-usually `char` or `wchar_t`.
-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 `std::ostreambuf_iterator` is used.
-The public interface of the class consists of a single constructor only:
-
- nonfinite_num_put(int flags = 0);
-
-The flags argument (effectively optional because a default of ` no_flags` is provided)
-is discussed below.
-The class template `nonfinite_num_put` is defined in the
-header `boost/math/nonfinite_num_facets.hpp`
-and lives in the namespace `boost::math`.
-
-Unlike the C++ Standard facet `std::num_put`, the facet `nonfinite_num_put`
-formats `infinity` and `NaN` in a consistent and portable manner.
-It uses the following string representations:
-
-[table
-[[Number][String]]
-[[Positive infinity][inf]]
-[[Positive NaN][nan]]
-[[Negative infinity][-inf]]
-[[Negative NaN][-nan]]
-]
-
-The numbers can be of type `float`, `double` and `long double`.
-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 `uppercase`, `lowercase`, `showpos` and `noshowpos` manipulators.
-Formatting of integers, boolean values and finite floating-point numbers is simply delegated to the normal `std::num_put`.
-
-
-[h5 Facet `nonfinite_num_get`]
-
- template<class CharType, class InputIterator = std::istreambuf_iterator<CharType> > class nonfinite_num_get;
-
-The class `nonfinite_num_get<CharType, InputIterator>` is derived from `std::num_get<CharType, IntputIterator>`.
-Thus it is a facet that parses strings that represent numbers.
-The first template argument is the character type of the strings,
-usually `char` or `wchar_t`.
-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:
-
- nonfinite_num_get(int flags = 0);
-
-The flags argument is discussed below.
-The `class template nonfinite_num_get` is defined
-in the header `boost/math/nonfinite_num_facets.hpp`
-and lives in the `namespace boost::math`.
-
-Unlike the facet `std::num_get`, the facet `nonfinite_num_get` parses strings
-that represent `infinity` and `NaN` in a consistent and portable manner.
-It recognizes precisely the string representations specified by the C99 standard:
-
-[table
-[[Number][String]]
-[[Positive infinity][inf, infinity]]
-[[Positive NaN][nan, nan(...)]]
-[[Negative infinity][-inf, -infinity]]
-[[Negative NaN][-nan, -nan(...)]]
-]
-
-The numbers can be of type `float`, `double` and `long double`.
-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 ['NaN payload].
-Parsing of strings that represent integers, boolean values
-and finite floating-point numbers is delegated to `std::num_get`.
-
-When the facet parses a string that represents `infinity` on a platform that lacks infinity,
-then the fail bit of the stream is set.
-
-When the facet parses a string that represents `NaN` on a platform that lacks NaN,
-then the fail bit of the stream is set.
-
-[h4 Flags]
-
-The constructors for `nonfinite_num_put` and `nonfinite_num_get`
-take an optional bit flags argument.
-There are four different bit flags:
-
-* legacy
-* signed_zero
-* trap_infinity
-* trap_nan
-
-The flags can be combined with the OR `operator|`.
-
-The flags are defined in the header `boost/math/nonfinite_num_facets.hpp`
-and live in the `namespace boost::math`.
-
-[h5 legacy]
-
-The legacy flag has no effect with the output facet `nonfinite_num_put`.
-
-If the legacy flag is used with the `nonfinite_num_get` input facet,
-then the facet will recognize all the following string representations of `infinity` and `NaN`:
-
-[table
-[[Number][String]]
-[[Positive infinity][inf, infinity, one#inf]]
-[[Positive NaN][nan, nan(...), nanq, nans, qnan, snan, one#ind, one#qnan, one#snan]]
-[[Negative infinity][-inf, -infinity, -one#inf]]
-[[Negative NaN][-nan, -nan(...), -nanq, -nans, -qnan, -snan, -one#ind, - one#qnan, -one#snan]]
-]
-
-* The numbers can be of type `float`, `double` and `long double`.
-* The facet is case-insensitive.
-* An optional `+` sign can be used with the positive values.
-* The dots in `nan(...)` stand for an arbitrary string.
-* `one` stands for any string that `std::num_get` parses as the number `1`,
-typically "1.#INF", "1.QNAN" but also "000001.#INF"...
-
-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.
-
-[h5 signed_zero]
-
-If the `signed_zero` flag is used with `nonfinite_num_put`,
-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 `showpos` and `noshowpos` manipulators.
-
-The `signed_zero flag` has no effect with the input facet `nonfinite_num_get`.
-The input facet `nonfinite_num_get` always parses "0" and "+0"
-as positive zero and "-0" as negative zero,
-as do most implementations of `std::num_get`.
-
-[note If the `signed_zero` 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 `signed_zero` flag may be more portable.]
-
-[tip A negative zero value can be portably produced using the changesign function
-`(changesign)(static_cast<ValType>(0))` where `ValType` is `float`, `double` or `long double`,
- or a User-Defined floating-point type (UDT) provided that this UDT has a sign
-and that the changesign function is implemented.]
-
-[h5 trap_infinity]
-
-If the `trap_infinity` flag is used with `nonfinite_num_put`,
-then the facet will throw an exception of type `std::ios_base::failure`
-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 `fail bit` or its `bad bit`.
-Which bit is set is platform dependent.
-
-If the `trap_infinity` flag is used with `nonfinite_num_get`,
-then the facet will set the `fail bit` of the stream when an attempt is made
-to parse a string that represents positive or negative infinity.
-
-
-(See Design Rationale below for a discussion of this inconsistency.)
-
-[h5 trap_nan]
-
-Same as `trap_infinity`, but positive and negative NaN are trapped instead.
-
-[endsect] [/section:reference Reference]
-
-
-[section:examples Examples]
-
-[h5 Simple example with std::stringstreams]
-
-[nonfinite_facets_sstream_1]
-[nonfinite_facets_sstream_2]
-
-[h5 Use with lexical_cast]
-
-[note From Boost 1.48, lexical_cast no longer uses stringstreams internally,
-and is now able to handle infinities and NaNs natively on most platforms.]
-
-Without using a new locale that contains the nonfinite facets,
-previous versions of `lexical_cast` using stringstream were not portable
-(and often failed) if nonfinite values are found.
-
-[nonfinite_facets_sstream_1]
-
-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.
-
- locale::global(new_locale);
-
-`lexical_cast` then works as expected, even with infinity and NaNs.
-
- double x = boost::lexical_cast<double>("inf");
- assert(x == std::numeric:limits<double>::infinity());
-
- string s = boost::lexical_cast<string>(numeric_limits<double>::infinity());
- assert(s == "inf");
-
-[warning 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.]
-
-[warning 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 `double d = 1.234567890123456789`,
-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.]
-
-See [@http://en.wikipedia.org/wiki/Floating_point#Representable_numbers.2C_conversion_and_rounding
-for more information on ['nearest representable] and ['rounding]].
-
-Most iostream libraries do in fact achieve the desirable
-['nearest representable floating-point binary value] for all values of input.
-However one popular STL library does not quite achieve this for 64-bit doubles. See
-[@http://connect.microsoft.com/VisualStudio/feedback/details/98770/decimal-digit-string-input-to-double-may-be-1-bit-wrong
-Decimal digit string input to double may be 1 bit wrong] for the bizarre full details.
-
-If you are expecting to 'round-trip' `lexical_cast` or `serialization`,
-for example archiving and loading,
-and want to be [*absolutely certain that you will
-always get an exactly identical double value binary pattern],
-you should use the suggested 'workaround' below that is believed to work on all platforms.
-
-You should output using all potentially significant decimal digits,
-by setting stream precision to `std::numeric_limits<double>::max_digits10`,
-(or for the appropriate floating-point type, if not double)
-and crucially, [*require `scientific` format], not `fixed` or automatic (default), for example:
-
- double output_value = any value;
- std::stringstream s;
- s << setprecison(std::numeric_limits<double>::max_digits10) << scientific << output_value;
- s >> input_value;
-
-
-[h4 Use with serialization archives]
-
-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 `boost::archive::codecvt_null` facet added.
-Normally you do not have to worry about that.
-
-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 `nonfinite_num_put` and `nonfinite_num_get` with archives,
-then you have to manage the locale manually.
-That is done by calling the archive constructor with the flag
-`boost::archive::no_codecvt`, thereby ensuring that the archive constructor
-will [*not imbue the stream with a new locale].
-
-The following code shows how to use `nonfinite_num_put` with a `text_oarchive`.
-
- locale default_locale(locale::classic(), new boost::archive::codecvt_null<char>);
- locale my_locale(default_locale, new nonfinite_num_put<char>);
-
- ofstream ofs("test.txt");
- ofs.imbue(my_locale);
-
- boost::archive::text_oarchive oa(ofs, no_codecvt);
-
- double x = numeric_limits<double>::infinity();
- oa & x;
-
-The same method works with `nonfinite_num_get` and `text_iarchive`.
-
-If you use the `nonfinite_num_put` with `trap_infinity`
-and/or `trap_nan` flag with a serialization archive,
-then you must set the exception mask of the stream.
-Serialization archives do not check the stream state.
-
-
-[h5 Other examples]
-
-[@../../../example/nonfinite_facet_simple.cpp 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.
-
-See [@../../../example/nonfinite_facet_sstream.cpp nonfinite_facet_sstream.cpp]
-for this example of use with `std::stringstream`s.
-
-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 [@../../../example/nonfinite_legacy.cpp nonfinite_legacy.cpp].
-
-Treatment of signaling NaN is demonstrated at
-[@../../../example/nonfinite_signaling_NaN.cpp]
-
-Example [@../../../example/nonfinite_loopback_ok.cpp] shows loopback works OK.
-
-Example [@../../../example/nonfinite_num_facet.cpp] shows output and re-input
-of various finite and nonfinite values.
-
-A simple example of trapping nonfinite output is at
-[@../../../example/nonfinite_num_facet_trap.cpp nonfinite_num_facet_trap.cpp].
-
-A very basic example of using Boost.Archive is at
-[@../../../example/nonfinite_serialization_archives.cpp].
-
-A full demonstration of serialization by Francois Mauger is at
-[@../../../example/nonfinite_num_facet_serialization.cpp]
-
-[endsect] [/section:examples Examples]
-
-[section:portability Portability]
-
-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.
-
-[endsect] [/section:portability Portability]
-
-[section:rationale Design Rationale]
-
-* 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 `std::ios_base::xalloc` and `std::ios_base::iword`.
-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 `.cpp` 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.
-
-* The facet `nonfinite_num_put` throws an exception when
-the `trap_infinity` or `trap_nan` 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 `std::num_put` do not have access to the stream state.
-
-[endsect] [/section:rationale Design Rationale]
-
-[endsect] [/section:fp_facets Facets for Floating-Point Infinities and NaNs]
-
-[/
- Copyright Johan Rade and Paul A. Bristow 2011.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/fpclassify.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/fpclassify.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,124 +0,0 @@
-[section:fpclass Floating-Point Classification: Infinities and NaNs]
-
-[h4 Synopsis]
-
- #define FP_ZERO /* implementation specific value */
- #define FP_NORMAL /* implementation specific value */
- #define FP_INFINITE /* implementation specific value */
- #define FP_NAN /* implementation specific value */
- #define FP_SUBNORMAL /* implementation specific value */
-
- template <class T>
- int fpclassify(T t);
-
- template <class T>
- bool isfinite(T z); // Neither infinity nor NaN.
-
- template <class T>
- bool isinf(T t); // Infinity (+ or -).
-
- template <class T>
- bool isnan(T t); // NaN.
-
- template <class T>
- bool isnormal(T t); // isfinite and not denormalised.
-
- #include <boost\math\special_functions\fpclassify.hpp>
-
-to use these functions.
-
-[h4 Description]
-
-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.
-
-Note that the definition of these functions
-['does not suppress the definition of these names as macros by math.h]
-on those platforms that already provide
-these as macros. That mean that the following have differing meanings:
-
- using namespace boost::math;
-
- // This might call a global macro if defined,
- // but might not work if the type of z is unsupported
- // by the std lib macro:
- isnan(z);
- //
- // This calls the Boost version
- // (found via the "using namespace boost::math" declaration)
- // it works for any type that has numeric_limits support for type z:
- (isnan)(z);
- //
- // As above but with explicit namespace qualification.
- (boost::math::isnan)(z);
- //
- // This will cause a compiler error if isnan is a native macro:
- boost::math::isnan(z);
- // So always use instead:
- (boost::math::isnan)(z);
- //
- // You can also add a using statement,
- // globally to a .cpp file, or to a local function in a .hpp file.
- using boost::math::isnan;
- // so you can write the shorter and less cluttered
- (isnan)(z)
- // But, as above, if isnan is a native macro, this causes a compiler error,
- // because the macro always 'gets' the name first, unless enclosed in () brackets.
-
-Detailed descriptions for each of these functions follows:
-
- template <class T>
- int fpclassify(T t);
-
-Returns an integer value that classifies the value /t/:
-
-[table
-[[fpclassify value] [class of t.]]
-[[FP_ZERO] [If /t/ is zero.]]
-[[FP_NORMAL] [If /t/ is a non-zero, non-denormalised finite value.]]
-[[FP_INFINITE] [If /t/ is plus or minus infinity.]]
-[[FP_NAN] [If /t/ is a NaN.]]
-[[FP_SUBNORMAL] [If /t/ is a denormalised number.]]
-]
-
- template <class T>
- bool isfinite(T z);
-
-Returns true only if /z/ is not an infinity or a NaN.
-
- template <class T>
- bool isinf(T t);
-
-Returns true only if /z/ is plus or minus infinity.
-
- template <class T>
- bool isnan(T t);
-
-Returns true only if /z/ is a [@http://en.wikipedia.org/wiki/NaN NaN].
-
- template <class T>
- bool isnormal(T t);
-
-Returns true only if /z/ is a normal number (not zero, infinite, NaN, or denormalised).
-
-[h5 Floating-point format]
-
-If you wish to find details of the floating-point format for any particular processor,
-there is a program
-
-[@../../../example/inspect_fp.cpp inspect_fp.cpp]
-
-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.
-
-[endsect] [/section:fpclass Floating Point Classification: Infinities and NaNs]
-
-[/
- Copyright 2006, 2008, 2011 John Maddock, Johan Rade and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/fraction.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/fraction.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,177 +0,0 @@
-[section:cf Continued Fraction Evaluation]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/tools/fraction.hpp>
-``
-
- namespace boost{ namespace math{ namespace tools{
-
- template <class Gen, class U>
- typename detail::fraction_traits<Gen>::result_type
- continued_fraction_b(Gen& g, const U& tolerance, boost::uintmax_t& max_terms)
-
- template <class Gen, class U>
- typename detail::fraction_traits<Gen>::result_type
- continued_fraction_b(Gen& g, const U& tolerance)
-
- template <class Gen, class U>
- typename detail::fraction_traits<Gen>::result_type
- continued_fraction_a(Gen& g, const U& tolerance, boost::uintmax_t& max_terms)
-
- template <class Gen, class U>
- typename detail::fraction_traits<Gen>::result_type
- continued_fraction_a(Gen& g, const U& tolerance)
-
- //
- // These interfaces are present for legacy reasons, and are now deprecated:
- //
- template <class Gen>
- typename detail::fraction_traits<Gen>::result_type
- continued_fraction_b(Gen& g, int bits);
-
- template <class Gen>
- typename detail::fraction_traits<Gen>::result_type
- continued_fraction_b(Gen& g, int bits, boost::uintmax_t& max_terms);
-
- template <class Gen>
- typename detail::fraction_traits<Gen>::result_type
- continued_fraction_a(Gen& g, int bits);
-
- template <class Gen>
- typename detail::fraction_traits<Gen>::result_type
- continued_fraction_a(Gen& g, int bits, boost::uintmax_t& max_terms);
-
- }}} // namespaces
-
-[h4 Description]
-
-[@http://en.wikipedia.org/wiki/Continued_fraction Continued fractions are a common method of approximation. ]
-These functions all evaluate the continued fraction described by the /generator/
-type argument. The functions with an "_a" suffix evaluate the fraction:
-
-[equation fraction2]
-
-and those with a "_b" suffix evaluate the fraction:
-
-[equation fraction1]
-
-This latter form is somewhat more natural in that it corresponds with the usual
-definition of a continued fraction, but note that the first /a/ value returned by
-the generator is discarded. Further, often the first /a/ and /b/ values in a
-continued fraction have different defining equations to the remaining terms, which
-may make the "_a" suffixed form more appropriate.
-
-The generator type should be a function object which supports the following
-operations:
-
-[table
-[[Expression] [Description]]
-[[Gen::result_type] [The type that is the result of invoking operator().
- This can be either an arithmetic type, or a std::pair<> of arithmetic types.]]
-[[g()] [Returns an object of type Gen::result_type.
-
-Each time this operator is called then the next pair of /a/ and /b/
- values is returned. Or, if result_type is an arithmetic type,
- then the next /b/ value is returned and all the /a/ values
- are assumed to 1.]]
-]
-
-In all the continued fraction evaluation functions the /tolerance/ 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 /tolerance/. The deprecated interfaces take a number of digits precision
-here, internally they just convert this to a tolerance and forward call.
-
-If the optional /max_terms/ parameter is specified then no more than /max_terms/
-calls to the generator will be made, and on output,
-/max_terms/ will be set to actual number of
-calls made. This facility is particularly useful when profiling a continued
-fraction for convergence.
-
-[h4 Implementation]
-
-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.
-
-[h4 Examples]
-
-The [@http://en.wikipedia.org/wiki/Golden_ratio golden ratio phi = 1.618033989...]
-can be computed from the simplest continued fraction of all:
-
-[equation fraction3]
-
-We begin by defining a generator function:
-
- template <class T>
- struct golden_ratio_fraction
- {
- typedef T result_type;
-
- result_type operator()
- {
- return 1;
- }
- };
-
-The golden ratio can then be computed to double precision using:
-
- continued_fraction_a(
- golden_ratio_fraction<double>(),
- std::numeric_limits<double>::epsilon());
-
-It's more usual though to have to define both the /a/'s and the /b/'s
-when evaluating special functions by continued fractions, for example
-the tan function is defined by:
-
-[equation fraction4]
-
-So its generator object would look like:
-
- template <class T>
- struct tan_fraction
- {
- private:
- T a, b;
- public:
- tan_fraction(T v)
- : a(-v*v), b(-1)
- {}
-
- typedef std::pair<T,T> result_type;
-
- std::pair<T,T> operator()()
- {
- b += 2;
- return std::make_pair(a, b);
- }
- };
-
-Notice that if the continuant is subtracted from the /b/ terms,
-as is the case here, then all the /a/ terms returned by the generator
-will be negative. The tangent function can now be evaluated using:
-
- template <class T>
- T tan(T a)
- {
- tan_fraction<T> fract(a);
- return a / continued_fraction_b(fract, std::numeric_limits<T>::epsilon());
- }
-
-Notice that this time we're using the "_b" suffixed version to evaluate
-the fraction: we're removing the leading /a/ term during fraction evaluation
-as it's different from all the others.
-
-[endsect][/section:cf Continued Fraction Evaluation]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/html4_symbols.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/html4_symbols.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,225 +0,0 @@
-[/ Symbols and Greek letters (about 120) from HTML4.]
-[/ File HTML4_symbols.qbk]
-[/ See http://www.htmlhelp.com/reference/html40/entities/symbols.html]
-[/ See also http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references]
-[/ http://www.alanwood.net/demos/ent4_frame.html]
-[/ http://www.unicode.org/charts/PDF/U2200.pdf and others]
-[/ All (except 2 angle brackets) show OK on Firefox 2.0 and higher]
-
-[/ See also Latin-1 aka Western (ISO-8859-1) in latin1_symbols.qbk]
-[/ http://www.htmlhelp.com/reference/html40/entities/latin1.html]
-[/Unicode Latin extended http://www.unicode.org/charts/U0080.pdf]
-
-[/ Also some miscellaneous math characters added to this list - see the end.]
-[/ For others see also math_symbols.qbk]
-
-[/ To use, enclose the template name in square brackets, for example: [pi]]
-
-[template fnof[]'''&#x192;'''] [/ ƒ Latin small f with hook = function = florin]
-[/ Capital Greek start with capital letter, lower case all small.]
-[template Alpha[]'''&#x391;'''] [/ ? Greek capital letter alpha]
-[template Beta[]'''&#x392;'''] [/ ? Greek capital letter beta]
-[template Gamma[]'''&#x393;'''] [/ G Greek capital letter gamma]
-[template Delta[]'''&#x394;'''] [/ ? Greek capital letter delta]
-[template Epsilon[]'''&#x395;'''] [/ ? Greek capital letter epsilon]
-[template Zeta[]'''&#x396;'''] [/ ? Greek capital letter zeta]
-[template Eta[]'''&#x397;'''] [/ ? Greek capital letter eta]
-[template Theta[]'''&#x398;'''] [/ T Greek capital letter theta]
-[template Iota[]'''&#x399;'''] [/ ? Greek capital letter iota]
-[template Kappa[]'''&#x39A;'''] [/ ? Greek capital letter kappa]
-[template Lambda[]'''&#x39B;'''] [/ ? Greek capital letter lambda]
-[template Mu[]'''&#x39C;'''] [/ ? Greek capital letter mu]
-[template Nu[]'''&#x39D;'''] [/ ? Greek capital letter nu]
-[template Xi[]'''&#x39E;'''] [/ ? Greek capital letter xi]
-[template Omicron[]'''&#x39F;'''] [/ ? Greek capital letter omicron]
-[template Pi[]'''&#x3A0;'''] [/ ? Greek capital letter pi]
-[template Rho[]'''&#x3A1;'''] [/ ? Greek capital letter rho]
-[template Sigma[]'''&#x3A3;'''] [/ S Greek capital letter sigma]
-[template Tau[]'''&#x3A4;'''] [/ ? Greek capital letter tau]
-[template Upsilon[]'''&#x3A5;'''] [/ ? Greek capital letter upsilon]
-[template Phi[]'''&#x3A6;'''] [/ F Greek capital letter phi]
-[template Chi[]'''&#x3A7;'''] [/ ? Greek capital letter chi]
-[template Psi[]'''&#x3A8;'''] [/ ? Greek capital letter psi]
-[template Omega[]'''&#x3A9;'''] [/ O Greek capital letter omega]
-[template alpha[]'''&#x3B1;'''] [/ a Greek small letter alpha]
-[template beta[]'''&#x3B2;'''] [/ ß Greek small letter beta]
-[template gamma[]'''&#x3B3;'''] [/ ? Greek small letter gamma]
-[template delta[]'''&#x3B4;'''] [/ d Greek small letter delta]
-[template epsilon[]'''&#x3B5;'''] [/ e Greek small letter epsilon]
-[template zeta[]'''&#x3B6;'''] [/ ? Greek small letter zeta]
-[template eta[]'''&#x3B7;'''] [/ ? Greek small letter eta]
-[template theta[]'''&#x3B8;'''] [/ ? Greek small letter theta]
-[template iota[]'''&#x3B9;'''] [/ ? Greek small letter iota]
-[template kappa[]'''&#x3BA;'''] [/ ? Greek small letter kappa]
-[template lambda[]'''&#x3BB;'''] [/ ? Greek small letter lambda]
-[template mu[]'''&#x3BC;'''] [/ µ Greek small letter mu]
-[template nu[]'''&#x3BD;'''] [/ ? Greek small letter nu]
-[template xi[]'''&#x3BE;'''] [/ ? Greek small letter xi]
-[template omicron[]'''&#x3BF;'''] [/ ? Greek small letter omicron]
-[template pi[]'''&#x3C0;'''] [/ p Greek small letter pi]
-[template rho[]'''&#x3C1;'''] [/ ? Greek small letter rho]
-[template sigmaf[]'''&#x3C2;'''] [/ ? Greek small letter final sigma]
-[template sigma[]'''&#x3C3;'''] [/ s Greek small letter sigma]
-[template tau[]'''&#x3C4;'''] [/ t Greek small letter tau]
-[template upsilon[]'''&#x3C5;'''] [/ ? Greek small letter upsilon]
-[template phi[]'''&#x3C6;'''] [/ f Greek small letter phi]
-[template chi[]'''&#x3C7;'''] [/ ? Greek small letter chi]
-[template psi[]'''&#x3C8;'''] [/ ? Greek small letter psi]
-[template omega[]'''&#x3C9;'''] [/ ? Greek small letter omega]
-[template thetasym[]'''&#x3D1;'''] [/ ? Greek small letter theta symbol]
-[template upsih[]'''&#x3D2;'''] [/ ? Greek upsilon with hook symbol]
-[template piv[]'''&#x3D6;'''] [/ ? Greek pi symbol]
-
-[template bull[]'''&#x2022;'''] [/ • bullet = black small circle]
-[template hellip[]'''&#x2026;'''] [/ … horizontal ellipsis = three dot leader]
-[template prime[]'''&#x2032;'''] [/ ' prime = minutes = feet]
-[template Prime[]'''&#x2033;'''] [/ ? double prime = seconds = inches]
-[template oline[]'''&#x203E;'''] [/ ? overline = spacing overscore]
-[template frasl[]'''&#x2044;'''] [/ / fraction slash]
-[template weierp[]'''&#x2118;'''] [/ P script capital P = power set = Weierstrass p]
-[template image[]'''&#x2111;'''] [/ I blackletter capital I = imaginary part]
-[template real[]'''&#x211C;'''] [/ R blackletter capital R = real part math symbol]
-[template negative[]'''&#x2115;'''] [/ N blackletter capital N = Negative number math symbol]
-[template trade[]'''&#x2122;'''] [/ ™ trade mark sign]
-[template alefsym[]'''&#x2135;'''] [/ ? alef symbol = first transfinite cardinal]
-[template larr[]'''&#x2190;'''] [/ ? leftwards arrow]
-[template uarr[]'''&#x2191;'''] [/ ? upwards arrow]
-[template rarr[]'''&#x2192;'''] [/ ? rightwards arrow]
-[template darr[]'''&#x2193;'''] [/ ? downwards arrow]
-[template harr[]'''&#x2194;'''] [/ ? left right arrow]
-[template crarr[]'''&#x21B5;'''] [/ ? downwards arrow with corner leftwards = CR]
-[template lArr[]'''&#x21D0;'''] [/ ? leftwards double arrow]
-[template uArr[]'''&#x21D1;'''] [/ ? upwards double arrow]
-[template rArr[]'''&#x21D2;'''] [/ ? rightwards double arrow]
-[template dArr[]'''&#x21D3;'''] [/ ? downwards double arrow]
-[template hArr[]'''&#x21D4;'''] [/ ? left right double arrow]
-[template forall[]'''&#x2200;'''] [/ ? for all]
-[template part[]'''&#x2202;'''] [/ ? partial differential]
-[template exist[]'''&#x2203;'''] [/ ? there exists]
-[template empty[]'''&#x2205;'''] [/ Ø empty set = null set = diameter]
-[template nabla[]'''&#x2207;'''] [/ ? nabla = backward difference]
-[template isin[]'''&#x2208;'''] [/ ? element of]
-[template notin[]'''&#x2209;'''] [/ ? not an element of]
-[template ni[]'''&#x220B;'''] [/ ? contains as member]
-[template prod[]'''&#x220F;'''] [/ ? n-ary product = product sign]
-[template sum[]'''&#x2211;'''] [/ ? n-ary sumation]
-[template minus[]'''&#x2212;'''] [/ - minus sign]
-[template lowast[]'''&#x2217;'''] [/ * asterisk operator]
-[template radic[]'''&#x221A;'''] [/ v square root = radical sign]
-[template prop[]'''&#x221D;'''] [/ ? proportional to]
-[template infin[]'''&#x221E;'''] [/ 8 infinity]
-[template ang[]'''&#x2220;'''] [/ ? angle]
-[template and[]'''&#x2227;'''] [/ ? logical and = wedge]
-[template or[]'''&#x2228;'''] [/ ? logical or = vee]
-[template cap[]'''&#x2229;'''] [/ n intersection = cap]
-[template cup[]'''&#x222A;'''] [/ ? union = cup]
-[template int[]'''&#x222B;'''] [/ ? integral]
-[template there4[]'''&#x2234;'''] [/ ? therefore]
-[template sim[]'''&#x223C;'''] [/ ~ tilde operator = varies with = similar to]
-[template cong[]'''&#x2245;'''] [/ ? approximately equal to]
-[template approx[]'''&#x2248;'''] [/ ? ~~ very approximately equal to]
-[template asymp[]'''&#x2248;'''] [/ ˜ almost equal to = asymptotic to]
-[template ne[]'''&#x2260;'''] [/ ? not equal to]
-[template equiv[]'''&#x2261;'''] [/ = identical to]
-[template le[]'''&#x2264;'''] [/ = less-than or equal to]
-[template ge[]'''&#x2265;'''] [/ = greater-than or equal to]
-[template subset[]'''&#x2282;'''] [/ ? subset of]
-[template superset[]'''&#x2283;'''] [/ ? superset of]
-[template nsubset[]'''&#x2284;'''] [/ ? not a subset of]
-[template sube[]'''&#x2286;'''] [/ ? subset of or equal to]
-[template supe[]'''&#x2287;'''] [/ ? superset of or equal to]
-[template oplus[]'''&#x2295;'''] [/ ? circled plus = direct sum]
-[template otimes[]'''&#x2297;'''] [/ ? circled times = vector product]
-[template perp[]'''&#x22A5;'''] [/ ? up tack = orthogonal to = perpendicular]
-[template sdot[]'''&#x22C5;'''] [/ · dot operator]
-[template lceil[]'''&#x2308;'''] [/ ? left ceiling = APL upstile]
-[template rceil[]'''&#x2309;'''] [/ ? right ceiling]
-[template lfloor[]'''&#x230A;'''] [/ ? left floor = APL downstile]
-[template rfloor[]'''&#x230B;'''] [/ ? right floor]
-[template lang[]'''&#x2329;'''] [/ < left-pointing angle bracket = bra (Firefox shows ?)]
-[template rang[]'''&#x232A;'''] [/ > right-pointing angle bracket = ket (Firefox shows ?)]
-[template loz[]'''&#x25CA;'''] [/ ? lozenge]
-[template spades[]'''&#x2660;'''] [/ ? black spade suit]
-[template clubs[]'''&#x2663;'''] [/ ? black club suit = shamrock]
-[template hearts[]'''&#x2665;'''] [/ ? black heart suit = valentine]
-[template diams[]'''&#x2666;'''] [/ ? black diamond suit]
-[template euro[]'''&#x20AC;'''] [/ ? Euro currency symbol]
-[template lchev[]'''&#x27E8;'''] [/ ? left chevron]
-[template rchev[]'''&#x27E9;'''] [/ right chevron]
-[template rflat[]'''&#x27EE;'''] [/ right flat bracket Misc Math Symbol A]
-[template lflat[]'''&#x27EE;'''] [/ left flat bracket]
-[/ U2000.pdf punctuation]
-[template endash[]'''&#x2013;'''] [/ em width dash]
-[template emdash[]'''&#x2014;'''] [/ en width dash]
-[template hbar[]'''&#x2015;'''] [/ ? horizontal bar - introducing quoted text]
-[template vert2bar[]'''&#x2016;'''] [/ ? double vertical bar]
-[template line2[]'''&#x2016;'''] [/ ? double low line bar]
-[template dagger[]'''&#x2020;'''] [/ ? dagger]
-[template dagger2[]'''&#x2021;'''] [/ ? double dagger]
-[template dot[]'''&#x2024;'''] [/ dot leader]
-[template dot2[]'''&#x2025;'''] [/ ? dots leader]
-[template ellipsis[]'''&#x2026;'''] [/ horizontal ellipsis]
-[template sect[]'''&#x00A7;'''] [/ ? section or paragraph sign]
-
-[template dotover[]'''&#x0307;'''] [/ dot over symbol]
-[template recur[]'''&#x200A;&#x0307;'''] [/ math recurring symbol, eg after 0.333]
-[/ Note use of a thin space before digit, so that dot isn't placed directly over the digit.]
-[/ Use:1[recur]]
-
-[/ Other symbols, not in the HTML4 list:]
-[template enquad[] '''&#x2000;'''] [/ en quad space]
-[template emquad[] '''&#x2001;'''] [/ em quad space]
-[template enspace[] '''&#x2002;'''] [/ em half en space]
-[template emspace[] '''&#x2003;'''] [/ em space type size in points]
-[template thickspace[] '''&#x2004;'''] [/ 3 per em space]
-[template midspace[] '''&#x2005;'''] [/ 4 per em space]
-[template sixemspace[] '''&#x2006;'''] [/ 6 em space]
-[template figspace[] '''&#x2007;'''] [/ space = width fixed font digit]
-[template punctspace[] '''&#x2008;'''] [/ space = width punctuation]
-[template thin[] '''&#x2009;'''] [/ thin space ]
-[template hair[] '''&#x200A;'''] [/ hair space]
-[template nbsp[] '''&#x00A0;'''] [/ non-breaking space]
-[template space[] '''&#x00A0;'''] [/ plain non-breaking space]
-
-[template nospace[] '''&#x200B;'''] [/ zero width space]
-[template wordjoin[] '''&#x2060;'''] [/ word joiner - no line break either side]
-[template narrownbsp[] '''&#x202F;'''] [/ narrow non-breaking space]
-[template hyphen[] '''&#x2010;'''] [/ soft hyphen]
-[template nbhyphen[] '''&#x2011;'''] [/ non-breaking hyphen]
-
-[template plusminus[]'''&#x00B1;'''] [/ ? plus or minus sign]
-[template sqrt[]'''&#x221A;'''] [/ ? square root sqrt symbol]
-[/template pow2[]'''&#x2073;'''] [/ 2073 is NOT superscript 2 and 3 characters]
-[template pow2[]'''&#x00B2;'''] [/ superscript 2 character]
-[template pow3[]'''&#x00B3;'''] [/ superscript 3 character]
-[/ Unicode 2070 to 209F has super and subscript digits and characters, unicode.org/charts/PDF/U2070.pdf]
-[template pow4[]'''&#x2074;'''] [/ superscript 4 character]
-[template pown[]'''&#x207F;'''] [/ superscript n character]
-[template frac12[]'''&#x00BD;'''] [/ fraction half]
-[template frac13[]'''&#x2153;'''] [/ fraction third]
-[template frac14[]'''&#x00BC;'''] [/ fraction quarter]
-[template frac34[]'''&#x00BE;'''] [/ fraction three quarter]
-[template frac23[]'''&#x2154;'''] [/ fraction two third]
-[template sup1[]'''&#xB9;'''] [/ superscript one = superscript digit one ]
-[template sup2[]'''&#xB2;'''] [/ superscript two = superscript digit two = squared ]
-[template supminus[]'''&#x207B;'''] [/ superscript minus]
-[template supplus[]'''&#x207A;'''] [/ superscript plus]
-
-[template cubed[]'''&#xB3;'''] [/ superscript three = superscript digit three = cubed ]
-[template macron[]'''&#xAF;'''] [/ macron = spacing macron = overline = APL overbar ]
-[template deg[]'''&#xB0;'''] [/ degree sign ]
-[template plusmn[]'''&#xB1;'''] [/ plus-minus sign = plus-or-minus sign ]
-[template micro[]'''&#xB5;'''] [/ micro sign ]
-[template cedil[]'''&#xB8;'''] [/ cedilla = spacing cedilla ]
-[template ordm[]'''&#xBA;'''] [/ masculine ordinal indicator ]
-[template ordf[]'''&#xAA;'''] [/ feminine ordinal indicator ]
-[template laquo[]'''&#xAB;'''] [/ left-pointing double angle quotation mark = left pointing guillemet ]
-[template raquo[]'''&#xBB;'''] [/ right-pointing double angle quotation mark = right pointing guillemet ]
-
-[/
-Copyright 2007, 2010, 2012 Paul A. Bristow.
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/implementation.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/implementation.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,650 +0,0 @@
-[section:implementation Additional Implementation Notes]
-
-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.
-
-[h4 Implemention philosophy]
-
-"First be right, then be fast."
-
-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.
-
-So our priority is accuracy.
-
-To permit evaluation of accuracy of the special functions,
-production of extremely accurate tables of test values
-has received considerable effort.
-
-(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 *days*
-calculating some tables of test values!)
-
-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).
-
-If these prove accurate enough to be "fit for his purpose",
-then a user may substitute his custom specialization.
-
-For example, there are approximations dating back from times
-when computation was a [*lot] more expensive:
-
-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).
-
-A H Carter, Approximations to percentage points of the z-distribution,
-Biometrika 34(2), 352 - 358 (Dec 1947).
-
-These could still provide sufficient accuracy for some speed-critical applications.
-
-[h4 Accuracy and Representation of Test Values]
-
-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.
-
-Functions that return constants values, like kurtosis for example, are written as
-
-`static_cast<RealType>(-3) / 5;`
-
-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).
-
-So tests for one third, *not* exactly representable with radix two floating-point,
-(should) use, for example:
-
-`static_cast<RealType>(1) / 3;`
-
-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 `a/b` with `b`
-a power of two (in order to ensure that the result is an exactly
-representable binary value).
-
-[h4 Tolerance of Tests]
-
-The tolerances need to be set to the maximum of:
-
-* Some epsilon value.
-* The accuracy of the data (often only near 64-bit double).
-
-Otherwise when long double has more digits than the test data, then no
-amount of tweaking an epsilon based tolerance will work.
-
-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.
-
-[h4 Handling Unsuitable Arguments]
-
-In
-[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1665.pdf Errors in Mathematical Special Functions], J. Marraffino & M. Paterno
-it is proposed that signalling a domain error is mandatory
-when the argument would give an mathematically undefined result.
-
-*Guideline 1
-
-[: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.]
-
-Put crudely, if the function goes to + infinity
-and then emerges 'round-the-back' with - infinity,
-it is NOT defined.
-
-[: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.]
-
-*Guideline 2
-
-[: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.]
-
-This implementation is believed to follow these proposals and to assist compatibility with
-['ISO/IEC 9899:1999 Programming languages - C]
-and with the
-[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Draft Technical Report on C++ Library Extensions, 2005-06-24, section 5.2.1, paragraph 5].
-[link math_toolkit.main_overview.error_handling See also domain_error].
-
-See __policy_ref for details of the error handling policies that should allow
-a user to comply with any of these recommendations, as well as other behaviour.
-
-See [link math_toolkit.main_overview.error_handling error handling]
-for a detailed explanation of the mechanism, and
-[link math_toolkit.dist.stat_tut.weg.error_eg error_handling example]
-and
-[@../../../example/error_handling_example.cpp error_handling_example.cpp]
-
-[caution 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 *all* exceptions
-*and* using try&catch is recommended for all applications.
-However, for simplicity, this is not done for most examples.]
-
-[h4 Handling of Functions that are Not Mathematically defined]
-
-Functions that are not mathematically defined,
-like the Cauchy mean, fail to compile by default.
-A [link math_toolkit.policy.pol_ref.assert_undefined policy]
-allows control of this.
-
-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,
-
-`#define BOOST_MATH_DOMAIN_ERROR_POLICY ignore_error`
-
-appears before the first Boost include,
-then if the un-implemented function is called,
-mean(cauchy<>()) will return std::numeric_limits<T>::quiet_NaN().
-
-[warning If `std::numeric_limits<T>::has_quiet_NaN` 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.]
-
-[h4 Median of distributions]
-
-There are many distributions for which we have been unable to find an analytic formula,
-and this has deterred us from implementing
-[@http://en.wikipedia.org/wiki/Median median functions], the mid-point in a list of values.
-
-However a useful numerical approximation for distribution `dist`
-is available as usual as an accessor non-member function median using `median(dist)`,
-that may be evaluated (in the absence of an analytic formula) by calling
-
-`quantile(dist, 0.5)` (this is the /mathematical/ definition of course).
-
-[@http://www.amstat.org/publications/jse/v13n2/vonhippel.html Mean, Median, and Skew, Paul T von Hippel]
-
-[@http://documents.wolfram.co.jp/teachersedition/MathematicaBook/24.5.html Descriptive Statistics,]
-
-[@http://documents.wolfram.co.jp/v5/Add-onsLinks/StandardPackages/Statistics/DescriptiveStatistics.html and ]
-
-[@http://documents.wolfram.com/v5/TheMathematicaBook/AdvancedMathematicsInMathematica/NumericalOperationsOnData/3.8.1.html
-Mathematica Basic Statistics.] give more detail, in particular for discrete distributions.
-
-
-[h4 Handling of Floating-Point Infinity]
-
-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 __domain_error.
-
-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 `std::numeric_limits<RealType>::infinity()`
-and would return zero rather than any representation of infinity.
-
-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.
-
-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 `RealType` on that implementation,
-and it is supported and tested by the distribution.
-
-The range for these distributions is set to infinity if supported by the platform,
-(by testing `std::numeric_limits<RealType>::has_infinity`)
-else the maximum value provided for the `RealType` by Boost.Math.
-
-Testing for has_infinity is obviously important for arbitrary precision types
-where infinity makes much less sense than for IEEE754 floating-point.
-
-So far we have not set `support()` function (only range)
-on the grounds that the PDF is uninteresting/zero for infinities.
-
-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.
-
-Overflow, underflow, denorm can be handled using __error_policy.
-
-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 __error_policy.
-
-[h4 Scale, Shape and Location]
-
-We considered adding location and scale to the list of functions, for example:
-
- template <class RealType>
- inline RealType scale(const triangular_distribution<RealType>& dist)
- {
- RealType lower = dist.lower();
- RealType mode = dist.mode();
- RealType upper = dist.upper();
- RealType result; // of checks.
- if(false == detail::check_triangular(BOOST_CURRENT_FUNCTION, lower, mode, upper, &result))
- {
- return result;
- }
- return (upper - lower);
- }
-
-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.
-
-[h4 Notes on Implementation of Specific Functions & Distributions]
-
-* 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.
-
-[h4 Rational Approximations Used]
-
-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
-[link math_toolkit.toolkit.internals2.minimax our Remez code].
-
-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.
-
-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).
-
-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 `exp` 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 [@http://front.math.ucdavis.edu/0101.5042
-"Approximate construction of rational approximations and the effect
-of error autocorrection.", Grigori Litvinov, eprint arXiv:math/0101042].
-Therefore the coefficients still need to be accurately calculated, even if they can
-be in error compared to the "true" minimax solution.
-
-[h4 Representation of Mathematical Constants]
-
-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 __multiprecision like __cpp_dec_float.
-and others like NTL::quad_float and NTL::RR.
-
-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.
-
-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).
-
-For example, pi is defined:
-
- BOOST_DEFINE_MATH_CONSTANT(pi,
- 3.141592653589793238462643383279502884197169399375105820974944,
- 5923078164062862089986280348253421170679821480865132823066470938446095505,
- 0)
-
-And used thus:
-
- using namespace boost::math::constants;
-
- double diameter = 1.;
- double radius = diameter * pi<double>();
-
- or boost::math::constants::pi<NTL::RR>()
-
-Note that it is necessary (if inconvenient) to specify the type explicitly.
-
-So you cannot write
-
- double p = boost::math::constants::pi<>(); // could not deduce template argument for 'T'
-
-Neither can you write:
-
- double p = boost::math::constants::pi; // Context does not allow for disambiguation of overloaded function
- double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
-
-[h4 Thread safety]
-
-Reporting of error by setting `errno` 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, `errno` gets left unused anyway.
-
-For normal C++ usage, the Boost.Math `static const` constants are now thread-safe so
-for built-in real-number types: `float`, `double` and `long double` are all thread safe.
-
-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).
-
-(Thread safety has received attention in the C++11 Standard revision,
-so hopefully all compilers will do the right thing here at some point.)
-
-[h4 Sources of Test Data]
-
-We found a large number of sources of test data.
-We have assumed that these are /"known good"/
-if they agree with the results from our test
-and only consulted other sources for their /'vote'/
-in the case of serious disagreement.
-The accuracy, actual and claimed, vary very widely.
-Only [@http://functions.wolfram.com/ Wolfram Mathematica functions]
-provided a higher accuracy than
-C++ double (64-bit floating-point) and was regarded as
-the most-trusted source by far.
-The __R 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.
-
-A useful index of sources is:
-[@http://www.sal.hut.fi/Teaching/Resources/ProbStat/table.html
-Web-oriented Teaching Resources in Probability and Statistics]
-
-[@http://espse.ed.psu.edu/edpsych/faculty/rhale/hale/507Mat/statlets/free/pdist.htm Statlet]:
-Is a Javascript application that calculates and plots probability distributions,
-and provides the most complete range of distributions:
-
-[: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.]
-
-It calculates pdf, cdf, survivor, log survivor, hazard, tail areas,
-& critical values for 5 tail values.
-
-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.
-
-[h4 Testing for Invalid Parameters to Functions and Constructors]
-
-After finding that some 'bad' parameters (like NaN) were not throwing
-a `domain_error` exception as they should, a function
-
-`check_out_of_range` (in `test_out_of_range.hpp`)
-was devised by JM to check
-(using Boost.Test's BOOST_CHECK_THROW macro)
-that bad parameters passed to constructors and functions throw `domain_error` exceptions.
-
-Usage is `check_out_of_range< DistributionType >(list-of-params);`
-Where list-of-params is a list of *valid* 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.
-
-The values of the parameters are not important, but must be *valid* to pass the contructor checks;
-the default values are suitable, but must be explicitly provided, for example:
-
- check_out_of_range<extreme_value_distribution<RealType> >(1, 2);
-
-Checks made are:
-
-* Infinity or NaN (if available) passed in place of each of the valid params.
-* Infinity or NaN (if available) as a random variable.
-* Out-of-range random variable passed to pdf and cdf
-(ie outside of "range(DistributionType)").
-* Out-of-range probability passed to quantile function and complement.
-
-but does *not* check finite but out-of-range parameters to the constructor
-because these are specific to each distribution, for example:
-
- BOOST_CHECK_THROW(pdf(pareto_distribution<RealType>(0, 1), 0), std::domain_error);
- BOOST_CHECK_THROW(pdf(pareto_distribution<RealType>(1, 0), 0), std::domain_error);
-
-checks `scale` and `shape` parameters are both > 0
-by checking that `domain_error` exception is thrown if either are == 0.
-
-(Use of `check_out_of_range` function may mean that some previous tests are now redundant).
-
-It was also noted that if more than one parameter is bad,
-then only the first detected will be reported by the error message.
-
-[h4 Creating and Managing the Equations]
-
-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
-
-Where equations need to use more than one line, real Math editors were used.
-
-The primary source for the equations is now
-[@http://www.w3.org/Math/ MathML]: see the
-*.mml files in libs\/math\/doc\/sf_and_dist\/equations\/.
-
-These are most easily edited by a GUI editor such as
-[@http://mathcast.sourceforge.net/home.html Mathcast],
-please note that the equation editor supplied with Open Office
-currently mangles these files and should not currently be used.
-
-Conversion to SVG was achieved using
-[@http://www.grigoriev.ru/svgmath/ SVGMath] and a command line
-such as:
-
-[pre
-$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
-]
-
-See also the section on "Using Python to run Inkscape" and
-"Using inkscape to convert scalable vector SVG files to Portable Network graphic PNG".
-
-Note that SVGMath requires that the mml files are *not* 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.
-
-If neccessary the XHTML wrapper can be removed with:
-
-[pre cat filename | tr -d "\\r\\n" \| sed -e 's\/.*\\(<math\[^>\]\*>.\*<\/math>\\).\*\/\\1\/' > newfile]
-
-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:
-
-[pre
- <!\-\- Double\-struck \-\->
- <mathvariant name\="double\-struck" family\="Mathematica7, Lucida Sans Unicode"\/>
-]
-
-changed to:
-
-[pre
- <!\-\- Double\-struck \-\->
- <mathvariant name\="double\-struck" family\="Lucida Sans Unicode"\/>
-]
-
-Note that unlike the sample config file supplied with SVGMath, this does not
-make use of the [@http://support.wolfram.com/technotes/fonts/windows/latestfonts.html Mathematica 7 font]
-as this lacks sufficient Unicode information
-for it to be used with either SVGMath or XEP "as is".
-
-Also note that the SVG files in the repository are almost certainly
-Windows-specific since they reference various Windows Fonts.
-
-PNG files can be created from the SVGs using
-[@http://xmlgraphics.apache.org/batik/tools/rasterizer.html Batik]
-and a command such as:
-
-[pre java -jar 'C:\download\open\batik-1.7\batik-rasterizer.jar' -dpi 120 *.svg]
-
-Or using Inkscape (File, Export bitmap, Drawing tab, bitmap size (default size, 100 dpi), Filename (default). png)
-
-or Using Cygwin, a command such as:
-
-[pre 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]
-
-Currently Inkscape seems to generate the better looking png's.
-
-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:
-
-[pre bjam -a pdf >math_pdf.log]
-
-Note that XEP will have to be configured to *use and embed*
-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
-
-[pre \[warning\]could not find any font family matching "Times New Roman"; replaced by Helvetica]
-
-(html is the default so it is generated at math_toolkit\libs\math\doc\sf_and_dist\html\index.html
-using command line >bjam -a > math_docs.log).
-
- <!-- Sample configuration for Windows TrueType fonts. -->
-is provided in the xep.xml downloaded, but the Windows TrueType fonts are commented out.
-
-JM's XEP config file \xep\xep.xml has the following font configuration section added:
-
-[pre
- <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"></font> -->
- <!-- actually called l_10646.ttf on Windows 2000 and Vista Sp1 -->
- <font><font-data ttf="l_10646.ttf"/></font>
- </font-family>
-]
-
-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.
-
-XZ authored his equations using the venerable Latex, JM converted these to
-MathML using [@http://gentoo-wiki.com/HOWTO_Convert_LaTeX_to_HTML_with_MathML 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.
-
-Equations are embedded in the quickbook source using the /equation/
-template defined in math.qbk. This outputs Docbook XML that looks like:
-
-[pre
-<inlinemediaobject>
-<imageobject role="html">
-<imagedata fileref="../equations/myfile.png"></imagedata>
-</imageobject>
-<imageobject role="print">
-<imagedata fileref="../equations/myfile.svg"></imagedata>
-</imageobject>
-</inlinemediaobject>
-]
-
-MathML is not currently present in the Docbook output, or in the
-generated HTML: this needs further investigation.
-
-[h4 Producing Graphs]
-
-Graphs were produced in SVG format and then converted to PNG's using the same
-process as the equations.
-
-The programs
-`/libs/math/doc/sf_and_dist/graphs/dist_graphs.cpp`
-and `/libs/math/doc/sf_and_dist/graphs/sf_graphs.cpp`
-generate the SVG's directly using the
-[@http://code.google.com/soc/2007/boost/about.html Google Summer of Code 2007]
-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).
-
-[endsect] [/section:implementation Implementation Notes]
-
-[/
- Copyright 2006, 2007, 2010 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/index.idx
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/index.idx 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,43 +0,0 @@
-# Boost.Math Indexing terms file.
-# Copyright John Maddock 2009 - 2012
-# Copyright Paul A. Bristow 2009 - 2012
-
-"Lanczos approximation" lanczos
-
-closed form \<closed\w*\>
-
-expression \<express\w*\>
-
-constants \<constant\w*\>
-
-!scan-path boost/math .*\.hpp true
-
-!exclude policy precision apply evaluation polynomial name helper
-!exclude true_type false_type polynomial type d reference terminate
-!exclude arg1 arg2 charT const_iterator const_reference container_type
-!exclude result_type difference_type dummy iterator max_value result_type
-!exclude row_type size_type tag traits
-!exclude a abs acos add asin atan atan2 b begin bracket ceil check clear
-!exclude cos cosh digits end exp fabs floor fmod frexp g if in log log10
-!exclude modf pow real result sin sinh sqrt swap tan tanh s f z
-!exclude accuracy
-#
-# These next two are spuriously found as function names, take them out
-# and re-add them as macros:
-#
-!exclude BOOST_MATH_INSTRUMENT_CODE BOOST_MATH_INSTRUMENT_VARIABLE
-BOOST_MATH_INSTRUMENT_VARIABLE "" "" macro_name
-BOOST_MATH_INSTRUMENT_CODE "" "" macro_name
-
-!rewrite-name "(?i)(?:A|The)\s+(.*)" "\1"
-!rewrite-name "Additional Implementation Notes" "Implementation Notes"
-!rewrite-name "(?i)Calculating(?:\s+the)?\s+(.*)" "\1"
-!rewrite-id math_toolkit\.dist\.stat_tut\.weg.* Examples
-
-
-
-
-
-
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/internals_overview.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/internals_overview.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,21 +0,0 @@
-[section:internals_overview Overview]
-
-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 ['do not have stable interfaces].
-
-There is no doubt that these components can be improved, but they are also
-largely incidental to the main purpose of this library.
-
-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.
-
-[endsect][/section:internals_overview Overview]
-
-[/
- Copyright 2006, 2010 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/issues.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/issues.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,169 +0,0 @@
-[section:issues Known Issues, and TODO List]
-
-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.
-
-If you don't see a component listed here, then we don't have any known
-issues with it.
-
-[h4 Derivatives of Bessel functions (and their zeros)]
-
-Potentially, there could be native support
-for `cyl_bessel_j_prime()` and `cyl_neumann_prime()`.
-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).
-
-Since Boost.Math's Bessel functions are so excellent,
-the quick way to `cyl_bessel_j_prime()` and
-`cyl_neumann_prime()` would be via relationship with
-`cyl_bessel_j()` and `cyl_neumann()`.
-
-[h4 tgamma]
-
-* Can the __lanczos be optimized any further? (low priority)
-
-[h4 Incomplete Beta]
-
-* Investigate Didonato and Morris' asymptotic expansion for large a and b
-(medium priority).
-
-[h4 Inverse Gamma]
-
-* Investigate whether we can skip iteration altogether if the first approximation
-is good enough (Medium Priority).
-
-[h4 Polynomials]
-
-* 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).
-
-[h4 Elliptic Integrals]
-
-* 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).
-* [para Carlson's algorithms (mainly R[sub J]) are somewhat prone to
-internal overflow/underflow when the arguments are very large or small.
-The homogeneity relations:]
-[para R[sub F](ka, kb, kc) = k[super -1/2] R[sub F](a, b, c)]
-[para and]
-[para R[sub J](ka, kb, kc, kr) = k[super -3/2] R[sub J](a, b, c, r)]
-[para could be used to sidestep trouble here: provided the problem domains
-can be accurately identified. (Medium Priority).]
-* Carlson's R[sub C] 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).
-* Should we add an implementation of Carlson's R[sub G]? It's not
-required for the Legendre form integrals, but some people may find it
-useful (Low Priority).
-* There are a several other integrals: D([phi], k), Z([beta], k),
-[Lambda][sub 0]([beta], k) and Bulirsch's ['el] functions that could
-be implemented using Carlson's integrals (Low Priority).
-* 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).
-* There is a sub-domain of __ellint_3 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).
-
-[h4 Owen's T Function]
-
-There is a problem area at arbitrary precision when ['a] is very close to 1. However, note that
-the value for ['T(h, 1)] is well known and easy to compute, and if we replaced the
-['a[super k]] terms in series T1, T2 or T4 by ['(a[super k] - 1)] then we would have the
-difference between ['T(h, a)] and ['T(h, 1)]. Unfortunately this doesn't improve the
-convergence of those series in that area. It certainly looks as though a new series in terms
-of ['(1-a)[super k]] is both possible and desirable in this area, but it remains elusive at present.
-
-[h4 Jocobi elliptic functions]
-
-These are useful in engineering applications - we have had a request to add these.
-
-[h4 Statistical distributions]
-
-* Student's t Perhaps switch to normal distribution
-as a better approximation for very large degrees of freedom?
-
-[h4 Feature Requests]
-
-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:
-
-[table
-[[Distribution][R][Mathematica 6][NIST][Regress+][Matlab]]
-
-[/3 votes:]
-[[Geometric][X][X][-][-][X]]
-
-[/2 votes:]
-[[Multinomial][X][-][-][-][X]]
-[[Tukey Lambda][X][-][X][-][-]]
-[[Half Normal / Folded Normal][-][X][-][X][-]]
-[[Chi][-][X][-][X][-]]
-[[Gumbel][-][X][-][X][-]]
-[[Discrete Uniform][-][X][-][-][X]]
-[[Log Series][-][X][-][X][-]]
-[[Nakagami (generalised Chi)][-][-][-][X][X]]
-
-[/1 vote:]
-[[Log Logistic][-][-][-][-][X]]
-[[Tukey (Studentized range)][X][-][-][-][-]]
-[[Wilcoxon rank sum][X][-][-][-][-]]
-[[Wincoxon signed rank][X][-][-][-][-]]
-[[Non-central Beta][X][-][-][-][-]]
-[[Maxwell][-][X][-][-][-]]
-[[Beta-Binomial][-][X][-][-][-]]
-[[Beta-negative Binomial][-][X][-][-][-]]
-[[Zipf][-][X][-][-][-]]
-[[Birnbaum-Saunders / Fatigue Life][-][-][X][-][-]]
-[[Double Exponential][-][-][X][-][-]]
-[[Power Normal][-][-][X][-][-]]
-[[Power Lognormal][-][-][X][-][-]]
-[[Cosine][-][-][-][X][-]]
-[[Double Gamma][-][-][-][X][-]]
-[[Double Weibul][-][-][-][X][-]]
-[[Hyperbolic Secant][-][-][-][X][-]]
-[[Semicircular][-][-][-][X][-]]
-[[Bradford][-][-][-][X][-]]
-[[Birr / Fisk][-][-][-][X][-]]
-[[Reciprocal][-][-][-][X][-]]
-
-[/0 votes but useful anyway?]
-[[Kolmogorov Distribution][-][-][-][-][-]]
-]
-
-Also asked for more than once:
-
-* Add support for interpolated distributions, possibly combine with numeric
-integration and differentiation.
-* Add support for bivariate and multivariate distributions: most especially the normal.
-* 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.
-
-[endsect] [/section:issues Known Issues, and Todo List]
-
-[/
- Copyright 2006, 2010 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/lanczos.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/lanczos.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,246 +0,0 @@
-[section:lanczos The Lanczos Approximation]
-
-[h4 Motivation]
-
-['Why base gamma and gamma-like functions on the Lanczos approximation?]
-
-First of all I should make clear that for the gamma function
-over real numbers (as opposed to complex ones)
-the Lanczos approximation (See [@http://en.wikipedia.org/wiki/Lanczos_approximation Wikipedia or ]
-[@http://mathworld.wolfram.com/LanczosApproximation.html Mathworld])
-appears to offer no clear advantage over more traditional methods such as
-[@http://en.wikipedia.org/wiki/Stirling_approximation Stirling's approximation].
-__pugh 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:
-
-* The approximation has an easy to compute truncation error that holds for
-all /z > 0/. In practice that means we can use the same approximation for all
-/z > 0/, and be certain that no matter how large or small /z/ is, the truncation
-error will /at worst/ be bounded by some finite value.
-* 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.
-
-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.
-
-As the simplest example, consider the ratio of two gamma functions: one could
-compute the result via lgamma:
-
- exp(lgamma(a) - lgamma(b));
-
-However, even if lgamma is uniformly accurate to 0.5ulp, the worst case
-relative error in the above can easily be shown to be:
-
- Erel > a * log(a)/2 + b * log(b)/2
-
-For small /a/ and /b/ that's not a problem, but to put the relationship another
-way: ['each time a and b increase in magnitude by a factor of 10, at least one
-decimal digit of precision will be lost.]
-
-In contrast, by analytically combining like power
-terms in a ratio of Lanczos approximation's, these errors can be virtually eliminated
-for small /a/ and /b/, and kept under control for very large (or very small
-for that matter) /a/ and /b/. 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 __beta function for
-an example of this method in practice. The incomplete
-[link math_toolkit.special.sf_gamma.igamma gamma_p gamma] and
-[link math_toolkit.special.sf_beta.ibeta_function beta] functions
-use similar analytic combinations of power terms, to combine gamma and beta
-functions divided by large powers into single (simpler) expressions.
-
-[h4 The Approximation]
-
-The Lanczos Approximation to the Gamma Function is given by:
-
-[equation lanczos0]
-
-Where S[sub g](z) is an infinite sum, that is convergent for all z > 0,
-and /g/ is an arbitrary parameter that controls the "shape" of the
-terms in the sum which is given by:
-
-[equation lanczos0a]
-
-With individual coefficients defined in closed form by:
-
-[equation lanczos0b]
-
-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).
-
-The Lanczos approximation is therefore often written in partial fraction form
-with the leading constants absorbed by the coefficients in the sum:
-
-[equation lanczos1]
-
-where:
-
-[equation lanczos2]
-
-Again parameter /g/ is an arbitrarily chosen constant, and /N/ is an arbitrarily chosen
-number of terms to evaluate in the "Lanczos sum" part.
-
-[note
-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 __godfrey, but not __pugh, so take care
-when referring to the literature in this field.]
-
-[h4 Computing the Coefficients]
-
-The coefficients C0..CN-1 need to be computed from /N/ and /g/
-at high precision, and then stored as part of the program.
-Calculation of the coefficients is performed via the method of __godfrey;
-let the constants be contained in a column vector P, then:
-
-P = D B C F
-
-where B is an NxN matrix:
-
-[equation lanczos4]
-
-D is an NxN matrix:
-
-[equation lanczos3]
-
-C is an NxN matrix:
-
-[equation lanczos5]
-
-and F is an N element column vector:
-
-[equation lanczos6]
-
-Note than the matrices B, D and C contain all integer terms and depend
-only on /N/, this product should be computed first, and then multiplied
-by /F/ as the last step.
-
-[h4 Choosing the Right Parameters]
-
-The trick is to choose
-/N/ and /g/ to give the desired level of accuracy: choosing a small value for
-/g/ leads to a strictly convergent series, but one which converges only slowly.
-Choosing a larger value of /g/ causes the terms in the series to be large
-and\/or divergent for about the first /g-1/ terms, and to then suddenly converge
-with a "crunch".
-
-__pugh has determined the optimal
-value of /g/ for /N/ in the range /1 <= N <= 60/: 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 /and/ 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.
-
-[table Optimal choices for N and g when computing with guard digits (source: Pugh)
-[[Significand Size] [N] [g][Max Error]]
-[[24] [6] [5.581][9.51e-12]]
-[[53][13][13.144565][9.2213e-23]]
-]
-
-The alternative described by __godfrey is to perform an exhaustive
-search of the /N/ and /g/ parameter space to determine the optimal combination for
-a given /p/ digit floating-point type. Repeating this work found a good
-approximation for double precision arithmetic (close to the one __godfrey 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.
-
-__pugh 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]) in the
-Lanczos series S[sub g](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.
-
-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 /g/, but avoiding cancellation errors in the evaluation
-requires a small /g/.
-
-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 /they are all positive/. 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 __pugh (just slightly larger /N/ and slightly
-smaller /g/ for a given precision than __pugh 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 /N/ than would otherwise be required,
-so fewer floating point operations may be required overall.
-
-The following table shows the optimal values for /N/ and /g/ 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 /g/ may be possible.
-Errors given in the table
-are estimates of the error due to truncation of the Lanczos infinite series
-to /N/ 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 /N/ and /g/ occurred when the estimated truncation error
-almost exactly matches the machine epsilon for the type in question.
-
-[table Optimum value for N and g when computing at fixed precision
-[[Significand Size][Platform/Compiler Used][N][g][Max Truncation Error]]
-[[24][Win32, VC++ 7.1] [6] [1.428456135094165802001953125][9.41e-007]]
-[[53][Win32, VC++ 7.1] [13] [6.024680040776729583740234375][3.23e-016]]
-[[64][Suse Linux 9 IA64, gcc-3.3.3] [17] [12.2252227365970611572265625][2.34e-024]]
-[[116][HP Tru64 Unix 5.1B \/ Alpha, Compaq C++ V7.1-006] [24] [20.3209821879863739013671875][4.75e-035]]
-]
-
-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):
-
-[equation lanczos7]
-
-This form is more convenient for calculating lgamma, but for the gamma
-function the division by /e/ 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.
-
-[h4 References]
-
-# [#godfrey]Paul Godfrey, [@http://my.fit.edu/~gabdo/gamma.txt "A note on the computation of the convergent
-Lanczos complex Gamma approximation"].
-# [#pugh]Glendon Ralph Pugh,
-[@http://bh0.physics.ubc.ca/People/matt/Doc/ThesesOthers/Phd/pugh.pdf
-"An Analysis of the Lanczos Gamma Approximation"],
-PhD Thesis November 2004.
-# Viktor T. Toth,
-[@http://www.rskey.org/gamma.htm "Calculators and the Gamma Function"].
-# Mathworld, [@http://mathworld.wolfram.com/LanczosApproximation.html
-The Lanczos Approximation].
-
-[endsect][/section:lanczos The Lanczos Approximation]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/minima.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/minima.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,64 +0,0 @@
-[section:minima Locating Function Minima: Brent's algorithm]
-
-[h4 synopsis]
-
-``
-#include <boost/math/tools/minima.hpp>
-``
-
- template <class F, class T>
- std::pair<T, T> brent_find_minima(F f, T min, T max, int bits);
-
- template <class F, class T>
- std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);
-
-[h4 Description]
-
-These two functions locate the minima of the continuous function /f/ using Brent's
-algorithm. Parameters are:
-
-[variablelist
-[[f] [The function to minimise. The function should be smooth over the
- range \[min,max\], with no maxima occurring in that interval.]]
-[[min] [The lower endpoint of the range in which to search
- for the minima.]]
-[[max] [The upper endpoint of the range in which to search
- for the minima.]]
-[[bits] [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)[cong]1e-8),
- therefore if /bits/ is set to a value greater than one half of the bits in type T,
- then the value will be ignored.]]
-[[max_iter] [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.]]
-]
-
-[*Returns:] a pair containing the value of the abscissa at the minima and the value
-of f(x) at the minima.
-
-[h4 Implementation]
-
-This is a reasonably faithful implementation of Brent's algorithm, refer
-to:
-
-Brent, R.P. 1973, Algorithms for Minimization without Derivatives
-(Englewood Cliffs, NJ: Prentice-Hall), Chapter 5.
-
-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.
-
-An algorithm with guaranteed convergence for finding a zero
-of a function, R. P. Brent, The Computer Journal, Vol 44, 1971.
-
-[endsect][/section:minima Locating Function Minima]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/minimax.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/minimax.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,167 +0,0 @@
-[section:minimax Minimax Approximations and the Remez Algorithm]
-
-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.
-
-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.
-
-Unless you already familar with the Remez method,
-you should first read the [link math_toolkit.backgrounders.remez
-brief background article explaining the principles behind the
-Remez algorithm].
-
-The program consists of two parts:
-
-[variablelist
-[[main.cpp][Contains the command line parser, and all the calls to the Remez code.]]
-[[f.cpp][Contains the function to approximate.]]
-]
-
-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:
-
- NTL::RR f(const NTL::RR& x, int variant);
-
-Returns the value of the function /variant/ at point /x/. So if you
-wish you can just add the function to approximate as a new variant
-after the existing examples.
-
-In addition to those two files, the program needs to be linked to
-a [link math_toolkit.using_udt.high_precision.use_ntl patched NTL library to compile].
-
-Note that the function /f/ must return the rational part of the
-approximation: for example if you are approximating a function
-/f(x)/ then it is quite common to use:
-
- f(x) = g(x)(Y + R(x))
-
-where /g(x)/ is the dominant part of /f(x)/, /Y/ is some constant, and
-/R(x)/ is the rational approximation part, usually optimised for a low
-absolute error compared to |Y|.
-
-In this case you would define /f/ to return ['f(x)/g(x)] and then set the
-y-offset of the approximation to /Y/ (see command line options below).
-
-Many other forms are possible, but in all cases the objective is to
-split /f(x)/ 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.
-
-Command line options for the program are as follows:
-
-[variablelist
-[[variant N][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.]]
-[[range a b][Sets the domain for the approximation to the range \[a,b\], defaults
- to \[0,1\].]]
-[[relative][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.]]
-[[absolute][Sets the Remez code to optimise for absolute error.]]
-[[pin \[true|false\]]["Pins" the code so that the rational approximation
- passes through the origin. Obviously only set this to
- /true/ 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.]]
-[[order N D][Sets the order of the approximation to /N/ in the numerator and /D/
- in the denominator. If /D/ 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 /pin/ was set to true, and the
- first coefficient of the denominator is always one.]]
-[[working-precision N][Sets the working precision of NTL::RR to /N/ binary digits. Defaults to 250.]]
-[[target-precision N][Sets the precision of printed output to /N/ 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).]]
-[[skew val]["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. /val/ should be in the range
- \[-100,+100\], the default is zero.]]
-[[brake val][Sets a brake on each step so that the change in the
- control points is braked by /val%/. Defaults to 50,
- try a higher value if an approximation won't converge,
- or a lower value to get speedier convergence.]]
-[[x-offset val][Sets the x-offset to /val/: the approximation will
- be generated for `f(S * (x + X)) + Y` where /X/ is the
- x-offset, /S/ is the x-scale
- and /Y/ 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.]]
-[[x-scale val][Sets the x-scale to /val/: the approximation will
- be generated for `f(S * (x + X)) + Y` where /S/ is the
- x-scale, /X/ is the x-offset
- and /Y/ 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.]]
-[[y-offset val][Sets the y-offset to /val/: the approximation will
- be generated for `f(S * (x + X)) + Y` where /X/
- is the x-offset, /S/ is the x-scale
- and /Y/ 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.]]
-[[y-offset auto][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 /float/ precision (and should be stored as a /float/
- in your code). The approximation will
- be generated for `f(x + X) + Y` where /X/ is the x-offset
- and /Y/ is the y-offset. Defaults to zero.]]
-[[graph N][Prints N evaluations of f(x) at evenly spaced points over the
- range being optimised. If unspecified then /N/ defaults
- to 3. Use to check that f(x) is indeed smooth over the range
- of interest.]]
-[[step N][Performs /N/ steps, or one step if /N/ 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.]]
-[[test \[float|double|long\]][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.]]
-[[test \[float|double|long\] N] [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.]]
-[[rescale a b][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.]]
-[[rotate][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.]]
-[[info][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.]]
-]
-
-
-[endsect][/section:minimax Minimax Approximations and the Remez Algorithm]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/overview.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/overview.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,91 +0,0 @@
-[section:intro About the Math Toolkit]
-
-This library is divided into three interconnected parts:
-
-[h4 Statistical Distributions]
-
-Provides a reasonably comprehensive set of
-[link math_toolkit.dist statistical distributions],
-upon which higher level statistical tests can be built.
-
-The initial focus is on the central
-[@http://en.wikipedia.org/wiki/Univariate univariate ]
-[@http://mathworld.wolfram.com/StatisticalDistribution.html distributions].
-Both [@http://mathworld.wolfram.com/ContinuousDistribution.html continuous]
-(like [link math_toolkit.dist.dist_ref.dists.normal_dist normal]
-& [link math_toolkit.dist.dist_ref.dists.f_dist Fisher])
-and [@http://mathworld.wolfram.com/DiscreteDistribution.html discrete]
-(like [link math_toolkit.dist.dist_ref.dists.binomial_dist binomial]
-& [link math_toolkit.dist.dist_ref.dists.poisson_dist Poisson])
-distributions are provided.
-
-A [link math_toolkit.dist.stat_tut comprehensive tutorial is provided],
-along with a series of
-[link math_toolkit.dist.stat_tut.weg worked examples] illustrating
-how the library is used to conduct statistical tests.
-
-[h4 Mathematical Special Functions]
-
-Provides a small number of high quality
-[link math_toolkit.special special functions],
-initially these were concentrated on functions used in statistical applications
-along with those in the [tr1].
-
-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.
-
-All the implementations
-are fully generic and support the use of arbitrary "real-number" types,
-including __multiprecision,
-although they are optimised for use with types with known-about
-[@http://en.wikipedia.org/wiki/Significand significand (or mantissa)]
-sizes: typically `float`, `double` or `long double`.
-
-[h4 Implementation Toolkit]
-
-Provides [link math_toolkit.toolkit many of the tools] 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.
-
-There are helpers for the
-[link math_toolkit.toolkit.internals1.series_evaluation
-evaluation of infinite series],
-[link math_toolkit.toolkit.internals1.cf continued
-fractions] and [link math_toolkit.toolkit.internals1.rational
-rational approximations].
-
-There is a fairly comprehensive set of root finding and
-[link math_toolkit.toolkit.internals1.minima function minimisation
-algorithms]: the root finding algorithms are both
-[link math_toolkit.toolkit.internals1.roots with] and
-[link math_toolkit.toolkit.internals1.roots2 without] derivative support.
-
-A [link math_toolkit.toolkit.internals2.minimax
-Remez algorithm implementation] allows for the locating of minimax rational
-approximations.
-
-There are also (experimental) classes for the
-[link math_toolkit.toolkit.internals2.polynomials manipulation of polynomials], for
-[link math_toolkit.toolkit.internals2.error_test
-testing a special function against tabulated test data], and for
-the [link math_toolkit.toolkit.internals2.test_data
-rapid generation of test data] and/or data for output to an
-external graphing application.
-
-[endsect] [/section:intro Introduction]
-
-[/
- Copyright 2006, 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/performance.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/performance.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,465 +0,0 @@
-[template perf[name value] [value]]
-[template para[text] '''<para>'''[text]'''</para>''']
-
-[section:perf Performance]
-
-[section:perf_over Performance Overview]
-[performance_overview]
-[endsect]
-
-[section:interp Interpreting these Results]
-
-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 ['"twice as slow as the best
-performing result".] Actual timings in seconds per function call
-are also shown in parenthesis.
-
-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.
-
-[caution 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!
-]
-
-[note 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.]
-
-[endsect]
-
-[section:getting_best Getting the Best Performance from this Library]
-
-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.
-
-[table Performance Comparison of Release and Debug Settings
-[[Function]
- [Microsoft Visual C++ 8.0
-
- Debug Settings: /Od /ZI
- ]
- [Microsoft Visual C++ 8.0
-
- Release settings: /Ox /arch:SSE2
- ]]
-
-[[__erf][[perf msvc-debug-erf..[para 16.65][para (1.028e-006s)]]][[perf msvc-erf..[para *1.00*][para (1.483e-007s)]]]]
-[[__erf_inv][[perf msvc-debug-erf_inv..[para 19.28][para (1.215e-006s)]]][[perf msvc-erf_inv..[para *1.00*][para (4.888e-007s)]]]]
-[[__ibeta and __ibetac][[perf msvc-debug-ibeta..[para 8.32][para (1.540e-005s)]]][[perf msvc-ibeta..[para *1.00*][para (1.852e-006s)]]]]
-[[__ibeta_inv and __ibetac_inv][[perf msvc-debug-ibeta_inv..[para 10.25][para (7.492e-005s)]]][[perf msvc-ibeta_inv..[para *1.00*][para (7.311e-006s)]]]]
-[[__ibeta_inva, __ibetac_inva, __ibeta_invb and __ibetac_invb][[perf msvc-debug-ibeta_invab..[para 8.57][para (2.441e-004s)]]][[perf msvc-ibeta_invab..[para *1.00*][para (2.847e-005s)]]]]
-[[__gamma_p and __gamma_q][[perf msvc-debug-igamma..[para 10.98][para (1.044e-005s)]]][[perf msvc-igamma..[para *1.00*][para (9.504e-007s)]]]]
-[[__gamma_p_inv and __gamma_q_inv][[perf msvc-debug-igamma_inv..[para 10.25][para (3.721e-005s)]]][[perf msvc-igamma_inv..[para *1.00*][para (3.631e-006s)]]]]
-[[__gamma_p_inva and __gamma_q_inva][[perf msvc-debug-igamma_inva..[para 11.26][para (1.124e-004s)]]][[perf msvc-igamma_inva..[para *1.00*][para (9.982e-006s)]]]]
-]
-
-[endsect]
-
-[section:comp_compilers Comparing Compilers]
-
-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).
-
-[table Performance Comparison of Various Windows Compilers
-[[Function]
- [Intel C++ 10.0
-
- ( /Ox /Qipo /QxN )
- ]
- [Microsoft Visual C++ 8.0
-
- ( /Ox /arch:SSE2 )
- ]
- [Cygwin G++ 3.4
-
- ( /O3 )
- ]]
-[[__erf][[perf intel-erf..[para *1.00*][para (4.118e-008s)]]][[perf msvc-erf..[para *1.00*][para (1.483e-007s)]]][[perf gcc-erf..[para 3.24][para (1.336e-007s)]]]]
-[[__erf_inv][[perf intel-erf_inv..[para *1.00*][para (4.439e-008s)]]][[perf msvc-erf_inv..[para *1.00*][para (4.888e-007s)]]][[perf gcc-erf_inv..[para 7.88][para (3.500e-007s)]]]]
-[[__ibeta and __ibetac][[perf intel-ibeta..[para *1.00*][para (1.631e-006s)]]][[perf msvc-ibeta..[para 1.14][para (1.852e-006s)]]][[perf gcc-ibeta..[para 3.05][para (4.975e-006s)]]]]
-[[__ibeta_inv and __ibetac_inv][[perf intel-ibeta_inv..[para *1.00*][para (6.133e-006s)]]][[perf msvc-ibeta_inv..[para 1.19][para (7.311e-006s)]]][[perf gcc-ibeta_inv..[para 2.60][para (1.597e-005s)]]]]
-[[__ibeta_inva, __ibetac_inva, __ibeta_invb and __ibetac_invb][[perf intel-ibeta_invab..[para *1.00*][para (2.453e-005s)]]][[perf msvc-ibeta_invab..[para 1.16][para (2.847e-005s)]]][[perf gcc-ibeta_invab..[para 2.83][para (6.947e-005s)]]]]
-[[__gamma_p and __gamma_q][[perf intel-igamma..[para *1.00*][para (6.735e-007s)]]][[perf msvc-igamma..[para 1.41][para (9.504e-007s)]]][[perf gcc-igamma..[para 2.78][para (1.872e-006s)]]]]
-[[__gamma_p_inv and __gamma_q_inv][[perf intel-igamma_inv..[para *1.00*][para (2.637e-006s)]]][[perf msvc-igamma_inv..[para 1.38][para (3.631e-006s)]]][[perf gcc-igamma_inv..[para 3.31][para (8.736e-006s)]]]]
-[[__gamma_p_inva and __gamma_q_inva][[perf intel-igamma_inva..[para *1.00*][para (7.716e-006s)]]][[perf msvc-igamma_inva..[para 1.29][para (9.982e-006s)]]][[perf gcc-igamma_inva..[para 2.56][para (1.974e-005s)]]]]
-]
-
-[endsect]
-
-[section:tuning Performance Tuning Macros]
-
-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.
-
-[table
-[[Macro][Meaning]]
-[[BOOST_MATH_POLY_METHOD]
- [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.]]
-[[BOOST_MATH_RATIONAL_METHOD]
- [Determines how symmetrical rational functions are evaluated: mostly
- this only effects how the Lanczos approximation is evaluated, and how
- the `evaluate_rational` function behaves. Define to one
- of the values 0, 1, 2 or 3: see below for the meaning of these values.
- ]]
-[[BOOST_MATH_MAX_POLY_ORDER]
- [The maximum order of polynomial or rational function that will
- be evaluated by a method other than 0 (a simple "for" loop).
- ]]
-[[BOOST_MATH_INT_TABLE_TYPE(RT, IT)]
- [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:
-
- #define BOOST_MATH_INT_TABLE_TYPE(RT, IT) RT
-
- to boost/math/tools/user.hpp, otherwise the default of:
-
- #define BOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
-
- Set in boost/math/config.hpp is fine, and may well result in smaller
- code.
- ]]
-]
-
-The values to which `BOOST_MATH_POLY_METHOD` and `BOOST_MATH_RATIONAL_METHOD`
-may be set are as follows:
-
-[table
-[[Value][Effect]]
-[[0][The polynomial or rational function is evaluated using Horner's
- method, and a simple for-loop.
-
- Note that if the order of the polynomial
- or rational function is a runtime parameter, or the order is
- greater than the value of `BOOST_MATH_MAX_POLY_ORDER`, then
- this method is always used, irrespective of the value
- of `BOOST_MATH_POLY_METHOD` or `BOOST_MATH_RATIONAL_METHOD`.]]
-[[1][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 `BOOST_MATH_MAX_POLY_ORDER`. ]]
-[[2][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 `BOOST_MATH_MAX_POLY_ORDER`.]]
-[[3][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 `BOOST_MATH_MAX_POLY_ORDER`.]]
-]
-
-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.
-
-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.
-
-[table A Comparison of Polynomial Evaluation Methods
-[[Compiler/platform][Method 0][Method 1][Method 2][Method 3]]
-[[Microsoft C++ 9.0, Polynomial evaluation] [[perf msvc-Polynomial-method-0..[para 1.26][para (7.421e-008s)]]][[perf msvc-Polynomial-method-1..[para 1.22][para (7.226e-008s)]]][[perf msvc-Polynomial-method-2..[para *1.00*][para (5.901e-008s)]]][[perf msvc-Polynomial-method-3..[para 1.04][para (6.115e-008s)]]]]
-[[Microsoft C++ 9.0, Rational evaluation] [[perf msvc-Rational-method-0..[para *1.00*][para (1.008e-007s)]]][[perf msvc-Rational-method-1..[para *1.00*][para (1.008e-007s)]]][[perf msvc-Rational-method-2..[para 1.43][para (1.445e-007s)]]][[perf msvc-Rational-method-3..[para 1.40][para (1.409e-007s)]]]]
-[[Intel C++ 11.1 (Windows), Polynomial evaluation] [[perf intel-Polynomial-method-0..[para 1.18][para (6.517e-008s)]]][[perf intel-Polynomial-method-1..[para 1.18][para (6.505e-008s)]]][[perf intel-Polynomial-method-2..[para *1.00*][para (5.516e-008s)]]][[perf intel-Polynomial-method-3..[para *1.00*][para (5.516e-008s)]]]]
-[[Intel C++ 11.1 (Windows), Rational evaluation] [[perf intel-Rational-method-0..[para *1.00*][para (8.947e-008s)]]][[perf intel-Rational-method-1..[para 1.02][para (9.130e-008s)]]][[perf intel-Rational-method-2..[para 1.49][para (1.333e-007s)]]][[perf intel-Rational-method-3..[para 1.04][para (9.325e-008s)]]]]
-[[GNU G++ 4.2 (Linux), Polynomial evaluation] [[perf gcc-4_2-ld-Polynomial-method-0..[para 1.61][para (1.220e-007s)]]][[perf gcc-4_2-ld-Polynomial-method-1..[para 1.68][para (1.269e-007s)]]][[perf gcc-4_2-ld-Polynomial-method-2..[para 1.23][para (9.275e-008s)]]][[perf gcc-4_2-ld-Polynomial-method-3..[para *1.00*][para (7.566e-008s)]]]]
-[[GNU G++ 4.2 (Linux), Rational evaluation] [[perf gcc-4_2-ld-Rational-method-0..[para 1.26][para (1.660e-007s)]]][[perf gcc-4_2-ld-Rational-method-1..[para 1.33][para (1.758e-007s)]]][[perf gcc-4_2-ld-Rational-method-2..[para *1.00*][para (1.318e-007s)]]][[perf gcc-4_2-ld-Rational-method-3..[para 1.15][para (1.513e-007s)]]]]
-[[Intel C++ 10.0 (Linux), Polynomial evaluation] [[perf intel-linux-Polynomial-method-0..[para 1.15][para (9.154e-008s)]]][[perf intel-linux-Polynomial-method-1..[para 1.15][para (9.154e-008s)]]][[perf intel-linux-Polynomial-method-2..[para *1.00*][para (7.934e-008s)]]][[perf intel-linux-Polynomial-method-3..[para *1.00*][para (7.934e-008s)]]]]
-[[Intel C++ 10.0 (Linux), Rational evaluation] [[perf intel-linux-Rational-method-0..[para *1.00*][para (1.245e-007s)]]][[perf intel-linux-Rational-method-1..[para *1.00*][para (1.245e-007s)]]][[perf intel-linux-Rational-method-2..[para 1.35][para (1.684e-007s)]]][[perf intel-linux-Rational-method-3..[para 1.04][para (1.294e-007s)]]]]
-]
-
-There is one final performance tuning option that is available as a compile time
-[link math_toolkit.policy policy]. Normally when evaluating functions at `double`
-precision, these are actually evaluated at `long double` precision internally:
-this helps to ensure that as close to full `double` precision as possible is
-achieved, but may slow down execution in some environments. The defaults for
-this policy can be changed by
-[link math_toolkit.policy.pol_ref.policy_defaults
-defining the macro `BOOST_MATH_PROMOTE_DOUBLE_POLICY`]
-to `false`, or
-[link math_toolkit.policy.pol_ref.internal_promotion
-by specifying a specific policy] when calling the special
-functions or distributions. See also the
-[link math_toolkit.policy.pol_tutorial policy tutorial].
-
-[table Performance Comparison with and Without Internal Promotion to long double
-[[Function]
- [GCC 4.2 , Linux
-
- (with internal promotion of double to long double).
- ]
- [GCC 4.2, Linux
-
- (without promotion of double).
- ]
-]
-[[__erf][[perf gcc-4_2-ld-erf..[para 1.48][para (1.387e-007s)]]][[perf gcc-4_2-erf..[para *1.00*][para (9.377e-008s)]]]]
-[[__erf_inv][[perf gcc-4_2-ld-erf_inv..[para 1.11][para (4.009e-007s)]]][[perf gcc-4_2-erf_inv..[para *1.00*][para (3.598e-007s)]]]]
-[[__ibeta and __ibetac][[perf gcc-4_2-ld-ibeta..[para 1.29][para (5.354e-006s)]]][[perf gcc-4_2-ibeta..[para *1.00*][para (4.137e-006s)]]]]
-[[__ibeta_inv and __ibetac_inv][[perf gcc-4_2-ld-ibeta_inv..[para 1.44][para (2.220e-005s)]]][[perf gcc-4_2-ibeta_inv..[para *1.00*][para (1.538e-005s)]]]]
-[[__ibeta_inva, __ibetac_inva, __ibeta_invb and __ibetac_invb][[perf gcc-4_2-ld-ibeta_invab..[para 1.25][para (7.009e-005s)]]][[perf gcc-4_2-ibeta_invab..[para *1.00*][para (5.607e-005s)]]]]
-[[__gamma_p and __gamma_q][[perf gcc-4_2-ld-igamma..[para 1.26][para (3.116e-006s)]]][[perf gcc-4_2-igamma..[para *1.00*][para (2.464e-006s)]]]]
-[[__gamma_p_inv and __gamma_q_inv][[perf gcc-4_2-ld-igamma_inv..[para 1.27][para (1.178e-005s)]]][[perf gcc-4_2-igamma_inv..[para *1.00*][para (9.291e-006s)]]]]
-[[__gamma_p_inva and __gamma_q_inva][[perf gcc-4_2-ld-igamma_inva..[para 1.20][para (2.765e-005s)]]][[perf gcc-4_2-igamma_inva..[para *1.00*][para (2.311e-005s)]]]]
-]
-
-[endsect]
-[section:comparisons Comparisons to Other Open Source Libraries]
-
-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.
-
-[caution
-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 /our/ 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.
-]
-
-[heading Comparison to GSL-1.13 and Cephes]
-
-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.
-
-[table
-[[Function][Boost][GSL-1.9][Cephes]]
-[[__cbrt]
- [[perf msvc-cbrt..[para *1.00*][para (4.873e-007s)]]]
- [N\/A]
- [[perf msvc-cbrt-cephes..[para *1.00*][para (6.699e-007s)]]]]
-[[__log1p]
- [[perf msvc-log1p..[para *1.00*][para (1.664e-007s)]]]
- [[perf msvc-log1p-gsl..[para *1.00*][para (2.677e-007s)]]]
- [[perf msvc-log1p-cephes..[para *1.00*][para (1.189e-007s)]]]]
-[[__expm1]
- [[perf msvc-expm1..[para *1.00*][para (8.760e-008s)]]]
- [[perf msvc-expm1-gsl..[para *1.00*][para (1.248e-007s)]]]
- [[perf msvc-expm1-cephes..[para *1.00*][para (8.169e-008s)]]]]
-[[__tgamma]
- [[perf msvc-gamma..[para 1.80][para (2.997e-007s)]]]
- [[perf msvc-gamma-gsl..[para 1.54][para (2.569e-007s)]]]
- [[perf msvc-gamma-cephes..[para *1.00*][para (1.666e-007s)]]]]
-[[__lgamma]
- [[perf msvc-lgamma..[para 2.20][para (3.045e-007s)]]]
- [[perf msvc-lgamma-gsl..[para 4.14][para (5.713e-007s)]]]
- [[perf msvc-lgamma-cephes..[para *1.00*][para (1.381e-007s)]]]]
-[[__erf and __erfc]
- [[perf msvc-erf..[para *1.00*][para (1.483e-007s)]]]
- [[perf msvc-erf-gsl..[para *1.00*][para (7.052e-007s)]]]
- [[perf msvc-erf-cephes..[para *1.00*][para (1.722e-007s)]]]]
-[[__gamma_p and __gamma_q]
- [[perf msvc-igamma..[para *1.00*][para (6.182e-007s)]]]
- [[perf msvc-igamma-gsl..[para 3.57][para (2.209e-006s)]]]
- [[perf msvc-igamma-cephes..[para 4.29][para (2.651e-006s)]]]]
-[[__gamma_p_inv and __gamma_q_inv]
- [[perf msvc-igamma_inv..[para *1.00*][para (1.943e-006s)]]]
- [N\/A]
- [+INF [footnote Cephes gets stuck in an infinite loop while trying to execute our test cases.]]]
-[[__ibeta and __ibetac]
- [[perf msvc-ibeta..[para *1.00*][para (1.670e-006s)]]]
- [[perf msvc-ibeta-cephes..[para 1.16][para (1.935e-006s)]]]
- [[perf msvc-ibeta-cephes..[para 1.16][para (1.935e-006s)]]]]
-[[__ibeta_inv and __ibetac_inv]
- [[perf msvc-ibeta_inv..[para *1.00*][para (6.075e-006s)]]]
- [N\/A]
- [[perf msvc-ibeta_inv-cephes..[para 2.45][para (1.489e-005s)]]]]
-[[__cyl_bessel_j]
- [[perf msvc-cyl_bessel_j..[para 17.89[footnote 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.]][para (4.248e-005s)]]]
- [[perf msvc-cyl_bessel_j-gsl..[para *1.00*][para (5.214e-006s)]]]
- [[perf msvc-cyl_bessel_j-cephes..[para *1.00*][para (2.374e-006s)]]]]
-[[__cyl_bessel_i]
- [[perf msvc-cyl_bessel_i..[para *1.00*][para (5.924e-006s)]]]
- [[perf msvc-cyl_bessel_i-gsl..[para *1.00*][para (4.487e-006s)]]]
- [[perf msvc-cyl_bessel_i-cephes..[para *1.00*][para (4.823e-006s)]]]]
-[[__cyl_bessel_k]
- [[perf msvc-cyl_bessel_k..[para *1.00*][para (2.783e-006s)]]]
- [[perf msvc-cyl_bessel_k-gsl..[para *1.00*][para (3.927e-006s)]]]
- [N\/A]]
-[[__cyl_neumann]
- [[perf msvc-cyl_neumann..[para *1.00*][para (4.465e-006s)]]]
- [[perf msvc-cyl_neumann-gsl..[para *1.00*][para (1.230e-005s)]]]
- [[perf msvc-cyl_neumann-cephes..[para *1.00*][para (4.977e-006s)]]]]
-]
-
-[heading Comparison to the R and DCDFLIB Statistical Libraries on Windows]
-
-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++).
-
-[table A Comparison to the R Statistical Library on Windows XP
-[[Statistical Function][Boost][R][DCDFLIB]]
-[[__beta_distrib CDF][[perf msvc-dist-beta-cdf..[para 1.08][para (1.385e-006s)]]][[perf msvc-dist-beta-R-cdf..[para *1.00*][para (1.278e-006s)]]][[perf msvc-dist-beta-dcd-cdf..[para 1.06][para (1.349e-006s)]]]]
-[[__beta_distrib Quantile][[perf msvc-dist-beta-quantile..[para *1.00*][para (4.975e-006s)]]][[perf msvc-dist-beta-R-quantile..[para 67.66[footnote 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.]][para (3.366e-004s)]]][[perf msvc-dist-beta-dcd-quantile..[para 4.23][para (2.103e-005s)]]]]
-[[__binomial_distrib CDF][[perf msvc-dist-binomial-cdf..[para 1.06][para (4.503e-007s)]]][[perf msvc-dist-binom-R-cdf..[para 1.81][para (7.680e-007s)]]][[perf msvc-dist-binomial-dcd-cdf..[para *1.00*][para (4.239e-007s)]]]]
-[[__binomial_distrib Quantile][[perf msvc-dist-binomial-quantile..[para *1.00*][para (3.254e-006s)]]][[perf msvc-dist-binom-R-quantile..[para 1.15][para (3.746e-006s)]]][[perf msvc-dist-binomial-dcd-quantile..[para 7.25][para (2.358e-005s)]]]]
-[[__cauchy_distrib CDF][[perf msvc-dist-cauchy-cdf..[para *1.00*][para (1.134e-007s)]]][[perf msvc-dist-cauchy-R-cdf..[para 1.08][para (1.227e-007s)]]][NA]]
-[[__cauchy_distrib Quantile][[perf msvc-dist-cauchy-quantile..[para *1.00*][para (1.203e-007s)]]][[perf msvc-dist-cauchy-R-quantile..[para *1.00*][para (1.203e-007s)]]][NA]]
-[[__chi_squared_distrib CDF][[perf msvc-dist-chi_squared-cdf..[para 1.21][para (5.021e-007s)]]][[perf msvc-dist-chisq-R-cdf..[para 2.83][para (1.176e-006s)]]][[perf msvc-dist-chi_squared-dcd-cdf..[para *1.00*][para (4.155e-007s)]]]]
-[[__chi_squared_distrib Quantile][[perf msvc-dist-chi_squared-quantile..[para *1.00*][para (1.930e-006s)]]][[perf msvc-dist-chisq-R-quantile..[para 2.72][para (5.243e-006s)]]][[perf msvc-dist-chi_squared-dcd-quantile..[para 5.73][para (1.106e-005s)]]]]
-[[__exp_distrib CDF][[perf msvc-dist-exponential-cdf..[para *1.00*][para (3.798e-008s)]]][[perf msvc-dist-exp-R-cdf..[para 5.89][para (2.236e-007s)]]][NA]]
-[[__exp_distrib Quantile][[perf msvc-dist-exponential-quantile..[para 1.41][para (9.006e-008s)]]][[perf msvc-dist-exp-R-quantile..[para *1.00*][para (6.380e-008s)]]][NA]]
-[[__F_distrib CDF][[perf msvc-dist-fisher_f-cdf..[para *1.00*][para (9.556e-007s)]]][[perf msvc-dist-f-R-cdf..[para 1.34][para (1.283e-006s)]]][[perf msvc-dist-f-dcd-cdf..[para 1.24][para (1.183e-006s)]]]]
-[[__F_distrib Quantile][[perf msvc-dist-fisher_f-quantile..[para *1.00*][para (6.987e-006s)]]][[perf msvc-dist-f-R-quantile..[para 1.33][para (9.325e-006s)]]][[perf msvc-dist-f-dcd-quantile..[para 3.16][para (2.205e-005s)]]]]
-[[__gamma_distrib CDF][[perf msvc-dist-gamma-cdf..[para 1.52][para (6.240e-007s)]]][[perf msvc-dist-gamma-R-cdf..[para 3.11][para (1.279e-006s)]]][[perf msvc-dist-gam-dcd-cdf..[para *1.00*][para (4.111e-007s)]]]]
-[[__gamma_distrib Quantile][[perf msvc-dist-gamma-quantile..[para 1.24][para (2.179e-006s)]]][[perf msvc-dist-gamma-R-quantile..[para 6.25][para (1.102e-005s)]]][[perf msvc-dist-gam-dcd-quantile..[para *1.00*][para (1.764e-006s)]]]]
-
-[[__hypergeometric_distrib CDF][[perf msvc-dist-hypergeometric-cdf..[para 3.60[footnote 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 /much/ slower, albeit with much improved precision.]][para (5.987e-007s)]]][[perf msvc-dist-hypergeo-R-cdf..[para *1.00*][para (1.665e-007s)]]][NA]]
-[[__hypergeometric_distrib Quantile][[perf msvc-dist-hypergeometric-quantile..[para *1.00*][para (5.684e-007s)]]][[perf msvc-dist-hypergeo-R-quantile..[para 3.53][para (2.004e-006s)]]][NA]]
-[[__logistic_distrib CDF][[perf msvc-dist-logistic-cdf..[para *1.00*][para (1.714e-007s)]]][[perf msvc-dist-logis-R-cdf..[para 5.24][para (8.984e-007s)]]][NA]]
-[[__logistic_distrib Quantile][[perf msvc-dist-logistic-quantile..[para 1.02][para (2.084e-007s)]]][[perf msvc-dist-logis-R-quantile..[para *1.00*][para (2.043e-007s)]]][NA]]
-
-[[__lognormal_distrib CDF][[perf msvc-dist-lognormal-cdf..[para *1.00*][para (3.579e-007s)]]][[perf msvc-dist-lnorm-R-cdf..[para 1.49][para (5.332e-007s)]]][NA]]
-[[__lognormal_distrib Quantile][[perf msvc-dist-lognormal-quantile..[para *1.00*][para (9.622e-007s)]]][[perf msvc-dist-lnorm-R-quantile..[para 1.57][para (1.507e-006s)]]][NA]]
-[[__negative_binomial_distrib CDF][[perf msvc-dist-negative_binomial-cdf..[para *1.00*][para (6.227e-007s)]]][[perf msvc-dist-nbinom-R-cdf..[para 2.25][para (1.403e-006s)]]][[perf msvc-dist-negative_binomial-dcd-cdf..[para 2.21][para (1.378e-006s)]]]]
-[[__negative_binomial_distrib Quantile][[perf msvc-dist-negative_binomial-quantile..[para *1.00*][para (8.594e-006s)]]][[perf msvc-dist-nbinom-R-quantile..[para 43.43[footnote 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]][para (3.732e-004s)]]][[perf msvc-dist-negative_binomial-dcd-quantile..[para 3.48][para (2.994e-005s)]]]]
-
-[[__non_central_chi_squared_distrib CDF][[perf msvc-dist-non_central_chi_squared-cdf..[para 2.16][para (3.926e-006s)]]][[perf msvc-dist-nchisq-R-cdf..[para 79.93][para (1.450e-004s)]]][[perf msvc-dist-non_central_chi_squared-dcd-cdf..[para *1.00*][para (1.814e-006s)]]]]
-[[__non_central_chi_squared_distrib Quantile][[perf msvc-dist-non_central_chi_squared-quantile..[para 5.00][para (3.393e-004s)]]][[perf msvc-dist-nchisq-R-quantile..[para 393.90[footnote 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.]][para (2.673e-002s)]]][[perf msvc-dist-non_central_chi_squared-dcd-quantile..[para *1.00*][para (6.786e-005s)]]]]
-[[__non_central_F_distrib CDF][[perf msvc-dist-non_central_f-cdf..[para 1.59][para (1.128e-005s)]]][[perf msvc-dist-nf-R-cdf..[para *1.00*][para (7.087e-006s)]]][[perf msvc-dist-fnc-cdf..[para *1.00*][para (4.274e-006s)]]]]
-[[__non_central_F_distrib Quantile][[perf msvc-dist-non_central_f-quantile..[para *1.00*][para (4.750e-004s)]]][[perf msvc-dist-nf-R-quantile..[para 1.62][para (7.681e-004s)]]][[perf msvc-dist-ncf-quantile..[para *1.00*][para (4.274e-006s)]]]]
-[[__non_central_t_distrib CDF][[perf msvc-dist-non_central_t-cdf..[para 3.41][para (1.852e-005s)]]][[perf msvc-dist-nt-R-cdf..[para *1.00*][para (5.436e-006s)]]][NA]]
-[[__non_central_t_distrib Quantile][[perf msvc-dist-non_central_t-quantile..[para 1.31][para (5.768e-004s)]]][[perf msvc-dist-nt-R-quantile..[para *1.00*[footnote 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.]][para (4.411e-004s)]]][NA]]
-
-[[__normal_distrib CDF][[perf msvc-dist-normal-cdf..[para *1.00*][para (8.373e-008s)]]][[perf msvc-dist-norm-R-cdf..[para 1.68][para (1.409e-007s)]]][[perf msvc-dist-nor-dcd-cdf..[para 6.01][para (5.029e-007s)]]]]
-[[__normal_distrib Quantile][[perf msvc-dist-normal-quantile..[para 1.29][para (1.521e-007s)]]][[perf msvc-dist-norm-R-quantile..[para *1.00*][para (1.182e-007s)]]][[perf msvc-dist-nor-dcd-quantile..[para 10.85][para (1.283e-006s)]]]]
-[[__poisson_distrib CDF][[perf msvc-dist-poisson-cdf..[para 1.18][para (5.193e-007s)]]][[perf msvc-dist-pois-R-cdf..[para 2.98][para (1.314e-006s)]]][[perf msvc-dist-poi-dcd-cdf..[para *1.00*][para (4.410e-007s)]]]]
-[[__poisson_distrib][[perf msvc-dist-poisson-quantile..[para *1.00*][para (1.203e-006s)]]][[perf msvc-dist-pois-R-quantile..[para 2.20][para (2.642e-006s)]]][[perf msvc-dist-poi-dcd-quantile..[para 7.86][para (9.457e-006s)]]]]
-[[__students_t_distrib CDF][[perf msvc-dist-students_t-cdf..[para *1.00*][para (8.655e-007s)]]][[perf msvc-dist-t-R-cdf..[para 1.06][para (9.166e-007s)]]][[perf msvc-dist-t-dcd-cdf..[para 1.04][para (8.999e-007s)]]]]
-[[__students_t_distrib Quantile][[perf msvc-dist-students_t-quantile..[para *1.00*][para (2.294e-006s)]]][[perf msvc-dist-t-R-quantile..[para 1.36][para (3.131e-006s)]]][[perf msvc-dist-t-dcd-quantile..[para 4.82][para (1.106e-005s)]]]]
-[[__weibull_distrib CDF][[perf msvc-dist-weibull-cdf..[para *1.00*][para (1.865e-007s)]]][[perf msvc-dist-weibull-R-cdf..[para 2.33][para (4.341e-007s)]]][NA]]
-[[__weibull_distrib Quantile][[perf msvc-dist-weibull-quantile..[para *1.00*][para (3.608e-007s)]]][[perf msvc-dist-weibull-R-quantile..[para 1.22][para (4.410e-007s)]]][NA]]
-]
-
-[heading Comparison to the R Statistical Library on Linux]
-
-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.
-
-[table A Comparison to the R Statistical Library on Linux
-[[Statistical Function][Boost][R][DCDFLIB]]
-[[__beta_distrib CDF][[perf gcc-4_3_2-dist-beta-cdf..[para 2.09][para (3.189e-006s)]]][[perf gcc-4_3_2-dist-beta-R-cdf..[para *1.00*][para (1.526e-006s)]]][[perf gcc-4_3_2-dist-beta-dcd-cdf..[para 1.19][para (1.822e-006s)]]]]
-[[__beta_distrib Quantile][[perf gcc-4_3_2-dist-beta-quantile..[para *1.00*][para (1.185e-005s)]]][[perf gcc-4_3_2-dist-beta-R-quantile..[para 30.51[footnote 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.]][para (3.616e-004s)]]][[perf gcc-4_3_2-dist-beta-dcd-quantile..[para 2.52][para (2.989e-005s)]]]]
-[[__binomial_distrib CDF][[perf gcc-4_3_2-dist-binomial-cdf..[para 4.41][para (9.175e-007s)]]][[perf gcc-4_3_2-dist-binom-R-cdf..[para 3.59][para (7.476e-007s)]]][[perf gcc-4_3_2-dist-binomial-dcd-cdf..[para *1.00*][para (2.081e-007s)]]]]
-[[__binomial_distrib Quantile][[perf gcc-4_3_2-dist-binomial-quantile..[para 1.57][para (6.925e-006s)]]][[perf gcc-4_3_2-dist-binom-R-quantile..[para *1.00*][para (4.407e-006s)]]][[perf gcc-4_3_2-dist-binomial-dcd-quantile..[para 7.43][para (3.274e-005s)]]]]
-[[__cauchy_distrib CDF][[perf gcc-4_3_2-dist-cauchy-cdf..[para *1.00*][para (1.594e-007s)]]][[perf gcc-4_3_2-dist-cauchy-R-cdf..[para 1.04][para (1.654e-007s)]]][NA]]
-[[__cauchy_distrib Quantile][[perf gcc-4_3_2-dist-cauchy-quantile..[para 1.21][para (1.752e-007s)]]][[perf gcc-4_3_2-dist-cauchy-R-quantile..[para *1.00*][para (1.448e-007s)]]][NA]]
-[[__chi_squared_distrib CDF][[perf gcc-4_3_2-dist-chi_squared-cdf..[para 2.61][para (1.376e-006s)]]][[perf gcc-4_3_2-dist-chisq-R-cdf..[para 2.36][para (1.243e-006s)]]][[perf gcc-4_3_2-dist-chi_squared-dcd-cdf..[para *1.00*][para (5.270e-007s)]]]]
-[[__chi_squared_distrib Quantile][[perf gcc-4_3_2-dist-chi_squared-quantile..[para *1.00*][para (4.252e-006s)]]][[perf gcc-4_3_2-dist-chisq-R-quantile..[para 1.34][para (5.700e-006s)]]][[perf gcc-4_3_2-dist-chi_squared-dcd-quantile..[para 3.47][para (1.477e-005s)]]]]
-[[__exp_distrib CDF][[perf gcc-4_3_2-dist-exponential-cdf..[para *1.00*][para (1.342e-007s)]]][[perf gcc-4_3_2-dist-exp-R-cdf..[para 1.25][para (1.677e-007s)]]][NA]]
-[[__exp_distrib Quantile][[perf gcc-4_3_2-dist-exponential-quantile..[para *1.00*][para (8.827e-008s)]]][[perf gcc-4_3_2-dist-exp-R-quantile..[para 1.07][para (9.470e-008s)]]][NA]]
-[[__F_distrib CDF][[perf gcc-4_3_2-dist-fisher_f-cdf..[para 1.62][para (2.324e-006s)]]][[perf gcc-4_3_2-dist-f-R-cdf..[para 1.19][para (1.711e-006s)]]][[perf gcc-4_3_2-dist-f-dcd-cdf..[para *1.00*][para (1.437e-006s)]]]]
-[[__F_distrib Quantile][[perf gcc-4_3_2-dist-fisher_f-quantile..[para 1.53][para (1.577e-005s)]]][[perf gcc-4_3_2-dist-f-R-quantile..[para *1.00*][para (1.033e-005s)]]][[perf gcc-4_3_2-dist-f-dcd-quantile..[para 2.63][para (2.719e-005s)]]]]
-[[__gamma_distrib CDF][[perf gcc-4_3_2-dist-gamma-cdf..[para 3.18][para (1.582e-006s)]]][[perf gcc-4_3_2-dist-gamma-R-cdf..[para 2.63][para (1.309e-006s)]]][[perf gcc-4_3_2-dist-gam-dcd-cdf..[para *1.00*][para (4.980e-007s)]]]]
-[[__gamma_distrib Quantile][[perf gcc-4_3_2-dist-gamma-quantile..[para 2.19][para (4.770e-006s)]]][[perf gcc-4_3_2-dist-gamma-R-quantile..[para 6.94][para (1.513e-005s)]]][[perf gcc-4_3_2-dist-gam-dcd-quantile..[para *1.00*][para (2.179e-006s)]]]]
-
-[[__hypergeometric_distrib CDF][[perf gcc-4_3_2-dist-hypergeometric-cdf..[para 2.20[footnote 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 /much/ slower, albeit with much improved precision.]][para (3.522e-007s)]]][[perf gcc-4_3_2-dist-hypergeo-R-cdf..[para *1.00*][para (1.601e-007s)]]][NA]]
-[[__hypergeometric_distrib Quantile][[perf gcc-4_3_2-dist-hypergeometric-quantile..[para *1.00*][para (8.279e-007s)]]][[perf gcc-4_3_2-dist-hypergeo-R-quantile..[para 2.57][para (2.125e-006s)]]][NA]]
-[[__logistic_distrib CDF][[perf gcc-4_3_2-dist-logistic-cdf..[para *1.00*][para (9.398e-008s)]]][[perf gcc-4_3_2-dist-logis-R-cdf..[para 2.75][para (2.588e-007s)]]][NA]]
-[[__logistic_distrib Quantile][[perf gcc-4_3_2-dist-logistic-quantile..[para *1.00*][para (9.893e-008s)]]][[perf gcc-4_3_2-dist-logis-R-quantile..[para 1.30][para (1.285e-007s)]]][NA]]
-
-[[__lognormal_distrib CDF][[perf gcc-4_3_2-dist-lognormal-cdf..[para *1.00*][para (1.831e-007s)]]][[perf gcc-4_3_2-dist-lnorm-R-cdf..[para 1.39][para (2.539e-007s)]]][NA]]
-[[__lognormal_distrib Quantile][[perf gcc-4_3_2-dist-lognormal-quantile..[para 1.10][para (5.551e-007s)]]][[perf gcc-4_3_2-dist-lnorm-R-quantile..[para *1.00*][para (5.037e-007s)]]][NA]]
-[[__negative_binomial_distrib CDF][[perf gcc-4_3_2-dist-negative_binomial-cdf..[para 1.08][para (1.563e-006s)]]][[perf gcc-4_3_2-dist-nbinom-R-cdf..[para *1.00*][para (1.444e-006s)]]][[perf gcc-4_3_2-dist-negative_binomial-dcd-cdf..[para *1.00*][para (1.444e-006s)]]]]
-[[__negative_binomial_distrib Quantile][[perf gcc-4_3_2-dist-negative_binomial-quantile..[para *1.00*][para (1.700e-005s)]]][[perf gcc-4_3_2-dist-nbinom-R-quantile..[para 25.92[footnote 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]][para (4.407e-004s)]]][[perf gcc-4_3_2-dist-negative_binomial-dcd-quantile..[para 1.93][para (3.274e-005s)]]]]
-
-[[__non_central_chi_squared_distrib CDF][[perf gcc-4_3_2-dist-non_central_chi_squared-cdf..[para 5.06][para (2.841e-005s)]]][[perf gcc-4_3_2-dist-nchisq-R-cdf..[para 25.01][para (1.405e-004s)]]][[perf gcc-4_3_2-dist-non_central_chi_squared-dcd-cdf..[para *1.00*][para (5.617e-006s)]]]]
-[[__non_central_chi_squared_distrib Quantile][[perf gcc-4_3_2-dist-non_central_chi_squared-quantile..[para 8.47][para (1.879e-003s)]]][[perf gcc-4_3_2-dist-nchisq-R-quantile..[para 144.91[footnote 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.]][para (3.214e-002s)]]][[perf gcc-4_3_2-dist-non_central_chi_squared-dcd-quantile..[para *1.00*][para (2.218e-004s)]]]]
-[[__non_central_F_distrib CDF][[perf gcc-4_3_2-dist-non_central_f-cdf..[para 10.33][para (5.868e-005s)]]][[perf gcc-4_3_2-dist-nf-R-cdf..[para 1.42][para (8.058e-006s)]]][[perf gcc-4_3_2-dist-fnc-dcd-cdf..[para *1.00*][para (5.682e-006s)]]]]
-[[__non_central_F_distrib Quantile][[perf gcc-4_3_2-dist-non_central_f-quantile..[para 5.64][para (7.869e-004s)]]][[perf gcc-4_3_2-dist-nf-R-quantile..[para 6.63][para (9.256e-004s)]]][[perf gcc-4_3_2-dist-fnc-dcd-quantile..[para *1.00*][para (1.396e-004s)]]]]
-[[__non_central_t_distrib CDF][[perf gcc-4_3_2-dist-non_central_t-cdf..[para 4.91][para (3.357e-005s)]]][[perf gcc-4_3_2-dist-nt-R-cdf..[para *1.00*][para (6.844e-006s)]]][NA]]
-[[__non_central_t_distrib Quantile][[perf gcc-4_3_2-dist-non_central_t-quantile..[para 1.57][para (9.265e-004s)]]][[perf gcc-4_3_2-dist-nt-R-quantile..[para *1.00*[footnote 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.]][para (5.916e-004s)]]][NA]]
-
-[[__normal_distrib CDF][[perf gcc-4_3_2-dist-normal-cdf..[para *1.00*][para (1.074e-007s)]]][[perf gcc-4_3_2-dist-norm-R-cdf..[para 1.16][para (1.245e-007s)]]][[perf gcc-4_3_2-dist-nor-dcd-cdf..[para 5.36][para (5.762e-007s)]]]]
-[[__normal_distrib Quantile][[perf gcc-4_3_2-dist-normal-quantile..[para 1.28][para (1.902e-007s)]]][[perf gcc-4_3_2-dist-norm-R-quantile..[para *1.00*][para (1.490e-007s)]]][[perf gcc-4_3_2-dist-nor-dcd-quantile..[para 10.35][para (1.542e-006s)]]]]
-[[__poisson_distrib CDF][[perf gcc-4_3_2-dist-poisson-cdf..[para 2.43][para (1.198e-006s)]]][[perf gcc-4_3_2-dist-pois-R-cdf..[para 2.25][para (1.110e-006s)]]][[perf gcc-4_3_2-dist-poi-dcd-cdf..[para *1.00*][para (4.937e-007s)]]]]
-[[__poisson_distrib][[perf gcc-4_3_2-dist-poisson-quantile..[para 1.11][para (3.032e-006s)]]][[perf gcc-4_3_2-dist-pois-R-quantile..[para *1.00*][para (2.724e-006s)]]][[perf gcc-4_3_2-dist-poi-dcd-quantile..[para 4.07][para (1.110e-005s)]]]]
-[[__students_t_distrib CDF][[perf gcc-4_3_2-dist-students_t-cdf..[para 2.17][para (2.020e-006s)]]][[perf gcc-4_3_2-dist-t-R-cdf..[para *1.00*][para (9.321e-007s)]]][[perf gcc-4_3_2-dist-t-dcd-cdf..[para 1.10][para (1.021e-006s)]]]]
-[[__students_t_distrib Quantile][[perf gcc-4_3_2-dist-students_t-quantile..[para 1.18][para (3.972e-006s)]]][[perf gcc-4_3_2-dist-t-R-quantile..[para *1.00*][para (3.364e-006s)]]][[perf gcc-4_3_2-dist-t-dcd-quantile..[para 3.89][para (1.308e-005s)]]]]
-[[__weibull_distrib CDF][[perf gcc-4_3_2-dist-weibull-cdf..[para *1.00*][para (3.662e-007s)]]][[perf gcc-4_3_2-dist-weibull-R-cdf..[para 1.04][para (3.808e-007s)]]][NA]]
-[[__weibull_distrib Quantile][[perf gcc-4_3_2-dist-weibull-quantile..[para *1.00*][para (4.112e-007s)]]][[perf gcc-4_3_2-dist-weibull-R-quantile..[para 1.05][para (4.317e-007s)]]][NA]]
-]
-
-[endsect]
-
-[section:perf_test_app The Performance Test Application]
-
-Under ['boost-path]\/libs\/math\/performance you will find a
-(fairly rudimentary) performance test application for this library.
-
-To run this application yourself, build the all the .cpp files in
-['boost-path]\/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
-[link math_toolkit.perf.tuning available performance tuning options].
-
-If you want to use this application to test the effect of changing
-any of the __policy_section, then you will need to build and run it twice:
-once with the default __policy_section, and then a second time with the
-__policy_section you want to test set as the default.
-
-[endsect]
-
-[endsect]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-
-
-
-
-
-
-
-
-
-
-
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/plot_owens_3d_xyp.png
==============================================================================
Binary file. No diff available.

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/plot_owens_t.png
==============================================================================
Binary file. No diff available.

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/policy.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/policy.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,896 +0,0 @@
-[section:policy Policies]
-
-[section:pol_overview Policy Overview]
-[policy_overview]
-[endsect] [/section:pol_overview Policy Overview]
-
-[include policy_tutorial.qbk]
-
-[section:pol_ref Policy Reference]
-
-[section:error_handling_policies Error Handling Policies]
-
-There are two orthogonal aspects to error handling:
-
-* What to do (if anything) with the error.
-* What kind of error is being raised.
-
-[h4 Available Actions When an Error is Raised]
-
-What to do with the error is encapsulated by an enumerated type:
-
- namespace boost { namespace math { namespace policies {
-
- enum error_policy_type
- {
- throw_on_error = 0, // throw an exception.
- errno_on_error = 1, // set ::errno & return 0, NaN, infinity or best guess.
- ignore_error = 2, // return 0, NaN, infinity or best guess.
- user_error = 3 // call a user-defined error handler.
- };
-
- }}} // namespaces
-
-The various enumerated values have the following meanings:
-
-[h5 throw_on_error]
-
-Will throw one of the following exceptions, depending upon the
- type of the error:
- [table
- [[Error Type][Exception]]
- [[Domain Error][std::domain_error]]
- [[Pole Error][std::domain_error]]
- [[Overflow Error][std::overflow_error]]
- [[Underflow Error][std::underflow_error]]
- [[Denorm Error][std::underflow_error]]
- [[Evaluation Error][boost::math::evaluation_error]]
- [[Indeterminate Result Error][std::domain_error]]
- ]
-
-[h5 errno_on_error]
-
-Will set global __errno `::errno` 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:
- [table
- [[Error Type][errno value]]
- [[Domain Error][EDOM]]
- [[Pole Error][EDOM]]
- [[Overflow Error][ERANGE]]
- [[Underflow Error][ERANGE]]
- [[Denorm Error][ERANGE]]
- [[Evaluation Error][EDOM]]
- [[Indeterminate Result Error][EDOM]]
- ]
-
-[h5 ignore_error]
-
-Will return one of the values below depending on the error type (`::errno` is NOT changed)::
- [table
- [[Error Type][Returned Value]]
- [[Domain Error][std::numeric_limits<T>::quiet_NaN()]]
- [[Pole Error][std::numeric_limits<T>::quiet_NaN()]]
- [[Overflow Error][std::numeric_limits<T>::infinity()]]
- [[Underflow Error][0]]
- [[Denorm Error][The denormalised value.]]
- [[Evaluation Error][The best guess (perhaps NaN) as to the result: which
- may be significantly in error.]]
- [[Indeterminate Result Error][Depends on the function where the error occurred]]
- ]
-
-[h5 user_error]
-
-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:
-
- namespace boost{ namespace math{ namespace policies{
-
- template <class T>
- T user_domain_error(const char* function, const char* message, const T& val);
-
- template <class T>
- T user_pole_error(const char* function, const char* message, const T& val);
-
- template <class T>
- T user_overflow_error(const char* function, const char* message, const T& val);
-
- template <class T>
- T user_underflow_error(const char* function, const char* message, const T& val);
-
- template <class T>
- T user_denorm_error(const char* function, const char* message, const T& val);
-
- template <class T>
- T user_rounding_error(const char* function, const char* message, const T& val);
-
- template <class T>
- T user_evaluation_error(const char* function, const char* message, const T& val);
-
- template <class T>
- T user_indeterminate_result_error(const char* function, const char* message, const T& val);
-
- }}} // namespaces
-
-Note that the strings ['function] and ['message] 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 ['function] string, and
-if there is a %1% specifier in the ['message] string then it
-should be replaced with the value of ['val].
-
-There is more information on user-defined error handlers in
-the [link math_toolkit.policy.pol_tutorial.user_def_err_pol
-tutorial here].
-
-[h4 Kinds of Error Raised]
-
-There are six kinds of error reported by this library,
-which are summarised in the following table:
-
-[table
-[[Error Type]
- [Policy Class]
- [Description]]
-[[Domain Error]
- [boost::math::policies::domain_error<['action]>]
- [Raised when more or more arguments are outside the
- defined range of the function.
-
- Defaults to `boost::math::policies::domain_error<throw_on_error>`
-
- When the action is set to ['throw_on_error]
- then throws `std::domain_error`]]
-[[Pole Error]
- [boost::math::policies::pole_error<['action]>]
- [Raised when more or more arguments would cause the function
- to be evaluated at a pole.
-
- Defaults to `boost::math::policies::pole_error<throw_on_error>`
-
- When the action is ['throw_on_error] then
- throw a `std::domain_error`]]
-[[Overflow Error]
- [boost::math::policies::overflow_error<['action]>]
- [Raised when the result of the function is outside
- the representable range of the floating point type used.
-
- Defaults to `boost::math::policies::overflow_error<throw_on_error>`.
-
- When the action is ['throw_on_error] then throws a `std::overflow_error`.]]
-[[Underflow Error]
- [boost::math::policies::underflow_error<['action]>]
- [Raised when the result of the function is too small
- to be represented in the floating point type used.
-
- Defaults to `boost::math::policies::underflow_error<ignore_error>`
-
- When the specified action is ['throw_on_error] then
- throws a `std::underflow_error`]]
-[[Denorm Error]
- [boost::math::policies::denorm_error<['action]>]
- [Raised when the result of the function is a
- denormalised value.
-
- Defaults to `boost::math::policies::denorm_error<ignore_error>`
-
- When the action is ['throw_on_error] then throws a `std::underflow_error`]]
-[[Rounding Error]
- [boost::math::policies::rounding_error<['action]>]
- [Raised When one of the rounding functions __round, __trunc or __modf is
- called with an argument that has no integer representation, or
- is too large to be represented in the result type
-
- Defaults to `boost::math::policies::rounding_error<throw_on_error>`
-
- When the action is ['throw_on_error] then throws `boost::math::rounding_error`]]
-[[Evaluation Error]
- [boost::math::policies::evaluation_error<['action]>]
- [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!
-
- Defaults to `boost::math::policies::evaluation_error<throw_on_error>`
-
- When the action is ['throw_on_error] then throws `boost::math::evaluation_error`]]
-[[Indeterminate Result Error]
- [boost::math::policies::indeterminate_result_error<['action]>]
- [Raised when the result of a function is not defined for the values that
- were passed to it.
-
- Defaults to `boost::math::policies::indeterminate_result_error<ignore_error>`
-
- When the action is ['throw_on_error] then throws `std::domain_error`]]
-]
-
-[h4 Examples]
-
-Suppose we want a call to `tgamma` to behave in a C-compatible way and set global
-`::errno` rather than throw an exception, we can achieve this at the call site
-using:
-
-[import ../../example/policy_ref_snip1.cpp]
-
-[policy_ref_snip1]
-
-Suppose we want a statistical distribution to return infinities,
-rather than throw exceptions, then we can use:
-
-[import ../../example/policy_ref_snip2.cpp]
-
-[policy_ref_snip2]
-
-[endsect] [/section:error_handling_policies Error Handling Policies]
-
-[section:internal_promotion Internal Floating-point Promotion Policies]
-
-Normally when evaluating a function at say `float` precision, maximal
-accuracy is assured by conducting the calculation at `double` 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:
-
-[table
-[[Policy][Meaning]]
-[[`boost::math::policies::promote_float<B>`]
- [Indicates whether `float` arguments should be promoted to `double`
- precision internally: defaults to `boost::math::policies::promote_float<true>`]]
-[[`boost::math::policies::promote_double<B>`]
- [Indicates whether `double` arguments should be promoted to `long double`
- precision internally: defaults to `boost::math::policies::promote_double<true>`]]
-]
-
-[h4 Examples]
-
-Suppose we want `tgamma` to be evaluated without internal promotion to
-`long double`, then we could use:
-
-[import ../../example/policy_ref_snip3.cpp]
-[policy_ref_snip3]
-
-Alternatively, suppose we want a distribution to perform calculations
-without promoting `float` to `double`, then we could use:
-
-[import ../../example/policy_ref_snip4.cpp]
-[policy_ref_snip4]
-
-[endsect] [/section:internal_promotion Internal Promotion Policies]
-
-[section:assert_undefined Mathematically Undefined Function Policies]
-
-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.
-
-For example, the Cauchy distribution does not have a meaningful mean,
-so what should
-
- mean(cauchy<>());
-
-return, and should such an expression even compile at all?
-
-The default behaviour is for all such functions to not compile at all
- - in fact they will raise a
-[@http://www.boost.org/libs/static_assert/index.html static assertion]
- - 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).
-
-This behaviour is controlled by the `assert_undefined<>` policy:
-
- namespace boost{ namespace math{ namespace policies {
-
- template <bool b>
- class assert_undefined;
-
- }}} //namespaces
-
-For example:
-
- #include <boost/math/distributions/cauchy.hpp>
-
- using namespace boost::math::policies;
- using namespace boost::math;
-
- // This will not compile, cauchy has no mean!
- double m1 = mean(cauchy());
-
- // This will compile, but raises a domain error!
- double m2 = mean(cauchy_distribution<double, policy<assert_undefined<false> > >());
-
-`policy<assert_undefined<false>` behaviour can also be obtained by defining the macro
-
- #define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
-
-at the head of the file - see __policy_macros.
-
-[endsect][/section:assert_undefined Mathematically Undefined Function Policies]
-
-[section:discrete_quant_ref Discrete Quantile Policies]
-
-If a statistical distribution is ['discrete] 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 `discrete_quantile` policy defines how
-discrete quantiles work, and how integer results are rounded:
-
- enum discrete_quantile_policy_type
- {
- real,
- integer_round_outwards, // default
- integer_round_inwards,
- integer_round_down,
- integer_round_up,
- integer_round_nearest
- };
-
- template <discrete_quantile_policy_type>
- struct discrete_quantile;
-
-The values that `discrete_quantile` can take have the following meanings:
-
-[h5 real]
-
-Ignores the discreteness of the distribution, and returns a real-valued
-result. For example:
-
-[import ../../example/policy_ref_snip5.cpp]
-[policy_ref_snip5]
-
-Results in `x = 27.3898` and `y = 68.1584`.
-
-[h5 integer_round_outwards]
-
-This is the default policy: an integer value is returned so that:
-
-* Lower quantiles (where the probability is less than 0.5) are rounded
-down.
-* Upper quantiles (where the probability is greater than 0.5) are rounded up.
-
-This is normally the safest rounding policy, since it ensures that both
-one and two sided intervals are guaranteed to have ['at least]
-the requested coverage. For example:
-
-[import ../../example/policy_ref_snip6.cpp]
-[policy_ref_snip6]
-
-Results in `x = 27` (rounded down from 27.3898) and `y = 69` (rounded up from 68.1584).
-
-The variables x and y are now defined so that:
-
- cdf(negative_binomial(20), x) <= 0.05
- cdf(negative_binomial(20), y) >= 0.95
-
-In other words we guarantee ['at least 90% coverage in the central region overall],
-and also ['no more than 5% coverage in each tail].
-
-[h5 integer_round_inwards]
-
-This is the opposite of ['integer_round_outwards]: an integer value is returned so that:
-
-* Lower quantiles (where the probability is less than 0.5) are rounded
-['up].
-* Upper quantiles (where the probability is greater than 0.5) are rounded ['down].
-
-For example:
-
-[import ../../example/policy_ref_snip7.cpp]
-
-[policy_ref_snip7]
-
-Results in `x = 28` (rounded up from 27.3898) and `y = 68` (rounded down from 68.1584).
-
-The variables x and y are now defined so that:
-
- cdf(negative_binomial(20), x) >= 0.05
- cdf(negative_binomial(20), y) <= 0.95
-
-In other words we guarantee ['at no more than 90% coverage in the central region overall],
-and also ['at least 5% coverage in each tail].
-
-[h5 integer_round_down]
-
-Always rounds down to an integer value, no matter whether it's an upper
-or a lower quantile.
-
-[h5 integer_round_up]
-
-Always rounds up to an integer value, no matter whether it's an upper
-or a lower quantile.
-
-[h5 integer_round_nearest]
-
-Always rounds to the nearest integer value, no matter whether it's an upper
-or a lower quantile. This will produce the requested coverage
-['in the average case], but for any specific example may results in
-either significantly more or less coverage than the requested amount.
-For example:
-
-For example:
-
-[import ../../example/policy_ref_snip8.cpp]
-
-[policy_ref_snip8]
-
-Results in `x = 27` (rounded from 27.3898) and `y = 68` (rounded from 68.1584).
-
-[endsect][/section:discrete_quant_ref Discrete Quantile Policies]
-
-[section:precision_pol Precision Policies]
-
-There are two equivalent policies that effect the ['working precision]
-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.
-
- namespace boost{ namespace math{ namespace policies{
-
- template <int N>
- digits10;
-
- template <int N>
- digits2;
-
- }}} // namespaces
-
-As you would expect, ['digits10] specifies the number of decimal digits
-to use, and ['digits2] the number of binary digits. Internally, whichever
-is used, the precision is always converted to ['binary digits].
-
-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.
-
-For example we could calculate `tgamma` to approximately 5 decimal digits using:
-
-[import ../../example/policy_ref_snip9.cpp]
-
-[policy_ref_snip9]
-
-Or again using helper function `make_policy`:
-
-[import ../../example/policy_ref_snip10.cpp]
-
-[policy_ref_snip10]
-
-And for a quantile of a distribution to approximately 25-bit precision:
-
-[import ../../example/policy_ref_snip11.cpp]
-
-[policy_ref_snip11]
-
-[endsect][/section:precision_pol Precision Policies]
-
-[section:iteration_pol Iteration Limits Policies]
-
-There are two policies that effect the iterative algorithms
-used to implement the special functions in this library:
-
- template <unsigned long limit = BOOST_MATH_MAX_SERIES_ITERATION_POLICY>
- class max_series_iterations;
-
- template <unsigned long limit = BOOST_MATH_MAX_ROOT_ITERATION_POLICY>
- class max_root_iterations;
-
-The class `max_series_iterations` determines the maximum number of
-iterations permitted in a series evaluation, before the special
-function gives up and returns the result of __evaluation_error.
-
-The class `max_root_iterations` determines the maximum number
-of iterations permitted in a root-finding algorithm before the special
-function gives up and returns the result of __evaluation_error.
-
-[endsect] [/section:iteration_pol Iteration Limits Policies]
-
-[section:policy_defaults Using Macros to Change the Policy Defaults]
-
-You can use the various macros below to change any (or all) of the policies.
-
-You can make a local change by placing a macro definition *before*
-a function or distribution #include.
-
-[caution 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 *every
-translation unit*.]
-
-[caution 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!]
-
-If you want to alter the defaults for any or all of
-the policies for *all* functions and distributions, installation-wide,
-then you can do so by defining various macros in
-[@../../../../../boost/math/tools/user.hpp boost/math/tools/user.hpp].
-
-[h5 BOOST_MATH_DOMAIN_ERROR_POLICY]
-
-Defines what happens when a domain error occurs, if not defined then
-defaults to `throw_on_error`, but can be set to any of the enumerated
-actions for error handing: `throw_on_error`, `errno_on_error`,
-`ignore_error` or `user_error`.
-
-[h5 BOOST_MATH_POLE_ERROR_POLICY]
-
-Defines what happens when a pole error occurs, if not defined then
-defaults to `throw_on_error`, but can be set to any of the enumerated
-actions for error handing: `throw_on_error`, `errno_on_error`,
-`ignore_error` or `user_error`.
-
-[h5 BOOST_MATH_OVERFLOW_ERROR_POLICY]
-
-Defines what happens when an overflow error occurs, if not defined then
-defaults to `throw_on_error`, but can be set to any of the enumerated
-actions for error handing: `throw_on_error`, `errno_on_error`,
-`ignore_error` or `user_error`.
-
-[h5 BOOST_MATH_ROUNDING_ERROR_POLICY]
-
-Defines what happens when a rounding error occurs, if not defined then
-defaults to `throw_on_error`, but can be set to any of the enumerated
-actions for error handing: `throw_on_error`, `errno_on_error`,
-`ignore_error` or `user_error`.
-
-[h5 BOOST_MATH_EVALUATION_ERROR_POLICY]
-
-Defines what happens when an internal evaluation error occurs, if not defined then
-defaults to `throw_on_error`, but can be set to any of the enumerated
-actions for error handing: `throw_on_error`, `errno_on_error`,
-`ignore_error` or `user_error`.
-
-[h5 BOOST_MATH_UNDERFLOW_ERROR_POLICY]
-
-Defines what happens when an overflow error occurs, if not defined then
-defaults to `ignore_error`, but can be set to any of the enumerated
-actions for error handing: `throw_on_error`, `errno_on_error`,
-`ignore_error` or `user_error`.
-
-[h5 BOOST_MATH_DENORM_ERROR_POLICY]
-
-Defines what happens when a denormalisation error occurs, if not defined then
-defaults to `ignore_error`, but can be set to any of the enumerated
-actions for error handing: `throw_on_error`, `errno_on_error`,
-`ignore_error` or `user_error`.
-
-[h5 BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY]
-
-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 `ignore_error`, but can be set to any of the enumerated
-actions for error handing: `throw_on_error`, `errno_on_error`,
-`ignore_error` or `user_error`.
-
-[h5 BOOST_MATH_DIGITS10_POLICY]
-
-Defines how many decimal digits to use in internal computations:
-defaults to `0` - 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.
-
-[h5 BOOST_MATH_PROMOTE_FLOAT_POLICY]
-
-Determines whether `float` types get promoted to `double`
-internally to ensure maximum precision in the result, defaults
-to `true`, but can be set to `false` to turn promotion of
-`float`'s off.
-
-[h5 BOOST_MATH_PROMOTE_DOUBLE_POLICY]
-
-Determines whether `double` types get promoted to `long double`
-internally to ensure maximum precision in the result, defaults
-to `true`, but can be set to `false` to turn promotion of
-`double`'s off.
-
-[h5 BOOST_MATH_DISCRETE_QUANTILE_POLICY]
-
-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: `real`, `integer_round_outwards`, `integer_round_inwards`,
-`integer_round_down`, `integer_round_up`, `integer_round_nearest`. Defaults to
-`integer_round_outwards`.
-
-[h5 BOOST_MATH_ASSERT_UNDEFINED_POLICY]
-
-Determines whether functions that are mathematically undefined
-for a specific distribution compile or raise a static (i.e. compile-time)
-assertion. Defaults to `true`: meaning that any mathematically
-undefined function will not compile. When set to `false` 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.
-
-[h5 BOOST_MATH_MAX_SERIES_ITERATION_POLICY]
-
-Determines how many series iterations a special function is permitted
-to perform before it gives up and returns an __evaluation_error:
-Defaults to 1000000.
-
-[h5 BOOST_MATH_MAX_ROOT_ITERATION_POLICY]
-
-Determines how many root-finding iterations a special function is permitted
-to perform before it gives up and returns an __evaluation_error:
-Defaults to 200.
-
-[h5 Example]
-
-Suppose we want overflow errors to set `::errno` 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:
-
- #define BOOST_MATH_OVERFLOW_ERROR_POLICY errno_on_error
- #define BOOST_MATH_DISCRETE_QUANTILE_POLICY real
- #define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
-
-or we could place these definitions *before*
-
- #include <boost/math/distributions/normal.hpp>
- using boost::math::normal_distribution;
-
-in a source .cpp file.
-
-[endsect][/section:policy_defaults Changing the Policy Defaults]
-
-[section:namespace_pol Setting Polices at Namespace Scope]
-
-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:
-
- BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS(Policy)
-
-and:
-
- BOOST_MATH_DECLARE_DISTRIBUTIONS(Type, Policy)
-
-You can use either of these macros after including any special function
-or distribution header. For example:
-
-[import ../../example/policy_ref_snip12.cpp]
-
-[policy_ref_snip12]
-
-In this example, using BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS results in
-a set of thin inline forwarding functions being defined:
-
- template <class T>
- inline T tgamma(T a){ return ::boost::math::tgamma(a, mypolicy()); }
-
- template <class T>
- inline T lgamma(T a) ( return ::boost::math::lgamma(a, mypolicy()); }
-
-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.
-
-We can do the same thing with the distributions, but this time we need to
-specify the floating-point type to use:
-
-[import ../../example/policy_ref_snip13.cpp]
-
-[policy_ref_snip13]
-
-In this example the result of BOOST_MATH_DECLARE_DISTRIBUTIONS is to
-declare a typedef for each distribution like this:
-
- typedef boost::math::cauchy_distribution<double, my_policy> cauchy;
- tyepdef boost::math::gamma_distribution<double, my_policy> gamma;
-
-and so on. The name given to each typedef is the name of the distribution
-with the "_distribution" suffix removed.
-
-[endsect][/section Changing the Policy Defaults]
-
-[section:pol_ref_ref Policy Class Reference]
-
-There's very little to say here, the `policy` class is just a rag-bag
-compile-time container for a collection of policies:
-
-```#include <boost/math/policies/policy.hpp>```
-
-
- namespace boost{
- namespace math{
- namespace policies
-
- template <class A1 = default_policy,
- class A2 = default_policy,
- class A3 = default_policy,
- class A4 = default_policy,
- class A5 = default_policy,
- class A6 = default_policy,
- class A7 = default_policy,
- class A8 = default_policy,
- class A9 = default_policy,
- class A10 = default_policy,
- class A11 = default_policy,
- class A12 = default_policy,
- class A13 = default_policy>
- struct policy
- {
- public:
- typedef ``['computed-from-template-arguments]`` domain_error_type;
- typedef ``['computed-from-template-arguments]`` pole_error_type;
- typedef ``['computed-from-template-arguments]`` overflow_error_type;
- typedef ``['computed-from-template-arguments]`` underflow_error_type;
- typedef ``['computed-from-template-arguments]`` denorm_error_type;
- typedef ``['computed-from-template-arguments]`` rounding_error_type;
- typedef ``['computed-from-template-arguments]`` evaluation_error_type;
- typedef ``['computed-from-template-arguments]`` indeterminate_result_error_type;
- typedef ``['computed-from-template-arguments]`` precision_type;
- typedef ``['computed-from-template-arguments]`` promote_float_type;
- typedef ``['computed-from-template-arguments]`` promote_double_type;
- typedef ``['computed-from-template-arguments]`` discrete_quantile_type;
- typedef ``['computed-from-template-arguments]`` assert_undefined_type;
- };
-
- template <...argument list...>
- typename normalise<policy<>, A1>::type make_policy(...argument list..);
-
- template <class Policy,
- class A1 = default_policy,
- class A2 = default_policy,
- class A3 = default_policy,
- class A4 = default_policy,
- class A5 = default_policy,
- class A6 = default_policy,
- class A7 = default_policy,
- class A8 = default_policy,
- class A9 = default_policy,
- class A10 = default_policy,
- class A11 = default_policy,
- class A12 = default_policy,
- class A13 = default_policy>
- struct normalise
- {
- typedef ``computed-from-template-arguments`` type;
- };
-
-The member typedefs of class `policy` are intended for internal use
-but are documented briefly here for the sake of completeness.
-
- policy<...>::domain_error_type
-
-Specifies how domain errors are handled, will be an instance of
-`boost::math::policies::domain_error<>` with the template argument to
-`domain_error` one of the `error_policy_type` enumerated values.
-
- policy<...>::pole_error_type
-
-Specifies how pole-errors are handled, will be an instance of
-`boost::math::policies::pole_error<>` with the template argument to
-`pole_error` one of the `error_policy_type` enumerated values.
-
- policy<...>::overflow_error_type
-
-Specifies how overflow errors are handled, will be an instance of
-`boost::math::policies::overflow_error<>` with the template argument to
-`overflow_error` one of the `error_policy_type` enumerated values.
-
- policy<...>::underflow_error_type
-
-Specifies how underflow errors are handled, will be an instance of
-`boost::math::policies::underflow_error<>` with the template argument to
-`underflow_error` one of the `error_policy_type` enumerated values.
-
- policy<...>::denorm_error_type
-
-Specifies how denorm errors are handled, will be an instance of
-`boost::math::policies::denorm_error<>` with the template argument to
-`denorm_error` one of the `error_policy_type` enumerated values.
-
- policy<...>::rounding_error_type
-
-Specifies how rounding errors are handled, will be an instance of
-`boost::math::policies::rounding_error<>` with the template argument to
-`rounding_error` one of the `error_policy_type` enumerated values.
-
- policy<...>::evaluation_error_type
-
-Specifies how evaluation errors are handled, will be an instance of
-`boost::math::policies::evaluation_error<>` with the template argument to
-`evaluation_error` one of the `error_policy_type` enumerated values.
-
- policy<...>::indeterminate_error_type
-
-Specifies how indeterminate result errors are handled, will be an instance of
-`boost::math::policies::indeterminate_result_error<>` with the template argument
-to `indeterminate_result_error` one of the `error_policy_type` enumerated
-values.
-
- policy<...>::precision_type
-
-Specifies the internal precision to use in binary digits (uses zero
-to represent whatever the default precision is). Will be an instance
-of `boost::math::policies::digits2<N>` which in turn inherits from
-`boost::mpl::int_<N>`.
-
- policy<...>::promote_float_type
-
-Specifies whether or not to promote `float` arguments to `double` precision
-internally. Will be an instance of `boost::math::policies::promote_float<B>`
-which in turn inherits from `boost::mpl::bool_<B>`.
-
- policy<...>::promote_double_type
-
-Specifies whether or not to promote `double` arguments to `long double` precision
-internally. Will be an instance of `boost::math::policies::promote_float<B>`
-which in turn inherits from `boost::mpl::bool_<B>`.
-
- policy<...>::discrete_quantile_type
-
-Specifies how discrete quantiles are evaluated, will be an instance
-of `boost::math::policies::discrete_quantile<>` instantiated with one of
-the `discrete_quantile_policy_type` enumerated type.
-
- policy<...>::assert_undefined_type
-
-Specifies whether mathematically-undefined properties are
-asserted as compile-time errors, or treated as runtime errors
-instead. Will be an instance of `boost::math::policies::assert_undefined<B>`
-which in turn inherits from `boost::math::mpl::bool_<B>`.
-
-
- template <...argument list...>
- typename normalise<policy<>, A1>::type make_policy(...argument list..);
-
-`make_policy` is a helper function that converts a list of policies into
-a normalised `policy` class.
-
- template <class Policy,
- class A1 = default_policy,
- class A2 = default_policy,
- class A3 = default_policy,
- class A4 = default_policy,
- class A5 = default_policy,
- class A6 = default_policy,
- class A7 = default_policy,
- class A8 = default_policy,
- class A9 = default_policy,
- class A10 = default_policy,
- class A11 = default_policy,
- class A12 = default_policy,
- class A13 = default_policy>
- struct normalise
- {
- typedef ``computed-from-template-arguments`` type;
- };
-
-The `normalise` class template converts one instantiation of the
-`policy` class into a normalised form. This is used internally
-to reduce code bloat: so that instantiating a special function
-on `policy<A,B>` or `policy<B,A>` actually both generate the same
-code internally.
-
-Further more, `normalise` 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.
-
-[endsect][/section:pol_ref_ref Policy Class Reference]
-
-[endsect][/section:pol_ref Policy Reference]
-[endsect][/section:policy Policies]
-
-[/ policy.qbk
- Copyright 2007, 2010 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/policy_tutorial.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/policy_tutorial.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,509 +0,0 @@
-
-[section:pol_tutorial Policy Tutorial]
-
-[section:what_is_a_policy So Just What is a Policy Anyway?]
-
-A policy is a compile-time mechanism for customising the behaviour of a
-special function, or a statistical distribution. With Policies you can
-control:
-
-* What action to take when an error occurs.
-* What happens when you call a function that is mathematically undefined
-(for example, if you ask for the mean of a Cauchy distribution).
-* What happens when you ask for a quantile of a discrete distribution.
-* Whether the library is allowed to internally promote `float` to `double`
-and `double` to `long double` in order to improve precision.
-* What precision to use when calculating the result.
-
-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.
-
-For this reason a Policy is a /type/: in fact it's an instance of the
-class template `boost::math::policies::policy<>`. This class is just a
-compile-time-container of user-selected policies (sometimes called a type-list):
-
- using namespace boost::math::policies;
- //
- // Define a policy that sets ::errno on overflow, and does
- // not promote double to long double internally:
- //
- typedef policy<domain_error<errno_on_error>, promote_double<false> > mypolicy;
-
-[endsect][/section:what_is_a_policy So Just What is a Policy Anyway?]
-
-[section:policy_tut_defaults Policies Have Sensible Defaults]
-
-Most of the time you can just ignore the policy framework.
-
-['*The defaults for the various policies are as follows,
-if these work OK for you then you can stop reading now!]
-
-[variablelist
-[[Domain Error][Throws a `std::domain_error` exception.]]
-[[Pole Error][Occurs when a function is evaluated at a pole: throws a `std::domain_error` exception.]]
-[[Overflow Error][Throws a `std::overflow_error` exception.]]
-[[Underflow][Ignores the underflow, and returns zero.]]
-[[Denormalised Result][Ignores the fact that the result is denormalised, and returns it.]]
-[[Rounding Error][Throws a `boost::math::rounding_error` exception.]]
-[[Internal Evaluation Error][Throws a `boost::math::evaluation_error` exception.]]
-[[Indeterminate Result Error][Returns a result that depends on the function where the error occurred.]]
-[[Promotion of float to double][Does occur by default - gives full float precision results.]]
-[[Promotion of double to long double][Does occur by default if long double offers
- more precision than double.]]
-[[Precision of Approximation Used][By default uses an approximation that
- will result in the lowest level of error for the type of the result.]]
-[[Behaviour of Discrete Quantiles]
- [
- The quantile function will by default return an integer result that has been
- /rounded outwards/. 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 /at least/ the requested
- coverage will be present in the central region, and /no more than/
- the requested coverage will be present in the tails.
-
-This behaviour can be changed so that the quantile functions are rounded
- differently, or even return a real-valued result using
- [link math_toolkit.policy.pol_overview Policies]. It is strongly
- recommended that you read the tutorial
- [link math_toolkit.policy.pol_tutorial.understand_dis_quant
- Understanding Quantiles of Discrete Distributions] before
- using the quantile function on a discrete distribution. The
- [link math_toolkit.policy.pol_ref.discrete_quant_ref reference docs]
- describe how to change the rounding policy
- for these distributions.
-]]
-]
-
-What's more, if you define your own policy type, then it automatically
-inherits the defaults for any policies not explicitly set, so given:
-
- using namespace boost::math::policies;
- //
- // Define a policy that sets ::errno on overflow, and does
- // not promote double to long double internally:
- //
- typedef policy<domain_error<errno_on_error>, promote_double<false> > mypolicy;
-
-then `mypolicy` defines a policy where only the overflow error handling and
-`double`-promotion policies differ from the defaults.
-
-[endsect][/section:policy_tut_defaults Policies Have Sensible Defaults]
-
-[section:policy_usage So How are Policies Used Anyway?]
-
-The details follow later, but basically policies can be set by either:
-
-* Defining some macros that change the default behaviour: [*this is the
- recommended method for setting installation-wide policies].
-* By instantiating a distribution object with an explicit policy:
- this is mainly reserved for ad hoc policy changes.
-* By passing a policy to a special function as an optional final argument:
- this is mainly reserved for ad hoc policy changes.
-* By using some helper macros to define a set of functions or distributions
-in the current namespace that use a specific policy: [*this is the
-recommended method for setting policies on a project- or translation-unit-wide
-basis].
-
-The following sections introduce these methods in more detail.
-
-[endsect][/section:policy_usage So How are Policies Used Anyway?]
-
-[section:changing_policy_defaults Changing the Policy Defaults]
-
-The default policies used by the library are changed by the usual
-configuration macro method.
-
-For example, passing `-DBOOST_MATH_DOMAIN_ERROR_POLICY=errno_on_error` to
-your compiler will cause domain errors to set `::errno` and return a __NaN
-rather than the usual default behaviour of throwing a `std::domain_error`
-exception.
-
-[tip For Microsoft Visual Studio,you can add to the Project Property Page,
-C/C++, Preprocessor, Preprocessor definitions like:
-
-``BOOST_MATH_ASSERT_UNDEFINED_POLICY=0
-BOOST_MATH_OVERFLOW_ERROR_POLICY=errno_on_error``
-
-This may be helpful to avoid complications with pre-compiled headers
-that may mean that the equivalent definitions in source code:
-
-``#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
-#define BOOST_MATH_OVERFLOW_ERROR_POLICY errno_on_error``
-
-*may be ignored*.
-
-The compiler command line shows:
-
-``/D "BOOST_MATH_ASSERT_UNDEFINED_POLICY=0"
-/D "BOOST_MATH_OVERFLOW_ERROR_POLICY=errno_on_error"``
-] [/MSVC tip]
-
-There is however a very important caveat to this:
-
-[important
-[*['Default policies changed by setting configuration macros must be changed
-uniformly in every translation unit in the program.]]
-
-Failure to follow this rule may result in violations of the "One
-Definition Rule (ODR)" and result in unpredictable program behaviour.]
-
-That means there are only two safe ways to use these macros:
-
-* Edit them in [@../../../../../boost/math/tools/user.hpp 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).
-* Set the defines in your project's Makefile or build environment, so that they
-are set uniformly across all translation units.
-
-What you should *not* do is:
-
-* Set the defines in the source file using `#define` as doing so
-almost certainly will break your program, unless you're absolutely
-certain that the program is restricted to a single translation unit.
-
-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: ['don't say that you weren't warned!]
-
-[error_handling_example]
-
-[endsect][/section:changing_policy_defaults Changing the Policy Defaults]
-
-[section:ad_hoc_dist_policies Setting Policies for Distributions on an Ad Hoc Basis]
-
-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:
-
- namespace boost{ namespace math{
-
- template <class RealType = double, class Policy = policies::policy<> >
- class fisher_f_distribution;
-
- typedef fisher_f_distribution<> fisher_f;
-
- }}
-
-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
-`double` precision arithmetic and all the default policies.
-
-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 /nearest/
-integer, then here's how it can be done:
-
-[import ../../example/policy_eg_3.cpp]
-
-[policy_eg_3]
-
-Which outputs:
-
-[pre quantile is: 40]
-
-[endsect][/section:ad_hoc_dist_policies Setting Policies for Distributions on an Ad Hoc Basis]
-
-[section:ad_hoc_sf_policies Changing the Policy on an Ad Hoc Basis for the Special Functions]
-
-All of the special functions in this library come in two overloaded forms,
-one with a final "policy" parameter, and one without. For example:
-
- namespace boost{ namespace math{
-
- template <class RealType, class Policy>
- RealType tgamma(RealType, const Policy&);
-
- template <class RealType>
- RealType tgamma(RealType);
-
- }} // namespaces
-
-Normally, the second version is just a forwarding wrapper to the first
-like this:
-
- template <class RealType>
- inline RealType tgamma(RealType x)
- {
- return tgamma(x, policies::policy<>());
- }
-
-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 `tgamma` to behave in a C-compatible
-fashion and set `::errno` when an error occurs, and never
-throw an exception:
-
-[import ../../example/policy_eg_1.cpp]
-
-[policy_eg_1]
-
-which outputs:
-
-[pre
-Result of tgamma(30000) is: 1.#INF
-errno = 34
-Result of tgamma(-10) is: 1.#QNAN
-errno = 33
-]
-
-Alternatively, for ad hoc use, we can use the `make_policy`
-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:
-
-[import ../../example/policy_eg_2.cpp]
-
-[policy_eg_2]
-
-[endsect][/section:ad_hoc_sf_policies Changing the Policy on an Ad Hoc Basis for the Special Functions]
-
-[section:namespace_policies Setting Policies at Namespace or Translation Unit Scope]
-
-Sometimes what you want to do is just change a set of policies within
-the current scope: *the one thing you should not do in this situation
-is use the configuration macros*, as this can lead to "One Definition
-Rule" violations. Instead this library provides a pair of macros
-especially for this purpose.
-
-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(['Policy]). 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.
-
-[import ../../example/policy_eg_4.cpp]
-
-[policy_eg_4]
-
-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:
-
-[import ../../example/policy_eg_5.cpp]
-
-[policy_eg_5]
-
-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:
-
- BOOST_MATH_DECLARE_DISTRIBUTIONS(double, mypolicy)
-
-Results a set of typedefs being defined like this:
-
- typedef boost::math::normal_distribution<double, mypolicy> normal;
-
-The name of each typedef is the same as the name of the distribution
-class template, but without the "_distribution" suffix.
-
-[import ../../example/policy_eg_6.cpp]
-
-[policy_eg_6]
-
-[note
-There is an important limitation to note: you can *not use the macros
-BOOST_MATH_DECLARE_DISTRIBUTIONS and BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS
-['in the same namespace]*, as doing so creates ambiguities between functions
-and distributions of the same name.
-]
-
-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:
-
-[import ../../example/policy_eg_7.cpp]
-
-[policy_eg_7]
-
-[endsect][/section:namespace_policies Setting Policies at Namespace or Translation Unit Scope]
-
-[section:user_def_err_pol Calling User Defined Error Handlers]
-
-[import ../../example/policy_eg_8.cpp]
-
-[policy_eg_8]
-
-[import ../../example/policy_eg_9.cpp]
-
-[policy_eg_9]
-
-[endsect][/section:user_def_err_pol Calling User Defined Error Handlers]
-
-[section:understand_dis_quant Understanding Quantiles of Discrete Distributions]
-
-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.
-
-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:
-
-[$../graphs/binomial_pdf.png]
-
-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:
-
-[$../graphs/binomial_quantile_1.png]
-
-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:
-
-* We could round the result down to 18.
-* We could round the result up to 19.
-
-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).
-
-By using policies we can offer any of the above as options, but that
-still leaves the question: ['What is actually the right thing to do?]
-
-And in particular: ['What policy should we use by default?]
-
-In coming to an answer we should realise that:
-
-* 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.
-* Normally people calculate quantiles so that they can perform
-a test of some kind: ['"If the random variable is less than N
-then we can reject our null-hypothesis with 90% confidence."]
-
-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
-['[*at least] 95% of the probability to the right of the value chosen,
-and [*no more than] 5% of the probability to the left of the value chosen.]
-
-In the above binomial example we would therefore round the result down to 18.
-
-The converse applies to upper-quantiles: If the probability is greater than
-0.5 we would want to round the quantile up, ['so that [*at least] the requested
-probability is to the left of the value returned, and [*no more than] 1 - the
-requested probability is to the right of the value returned.]
-
-Likewise for two-sided intervals, we would round lower quantiles down,
-and upper quantiles up. This ensures that we have ['at least the requested
-probability in the central region] and ['no more than 1 minus the requested
-probability in the tail areas.]
-
-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 ['rounded outwards] so that
-['at least 90% of the probability] is in the central area:
-
-[$../graphs/binomial_pdf_3.png]
-
-So far so good, but there is in fact a trap waiting for the unwary here:
-
- quantile(binomial(50, 0.5), 0.05);
-
-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:
-
- cdf(binomial(50, 0.5), x) <= 0.05;
-
-However:
-
- quantile(binomial(50, 0.5), 0.95);
-
-returns 31, and indeed while there is no x less than 31 for which:
-
- cdf(binomial(50, 0.5), x) >= 0.95;
-
-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 /inclusive/ of the random variable. So while the left tail
-area /includes/ the quantile returned, the right tail area always excludes
-an upper quantile value: since that "belongs" to the central area.
-
-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.
-
-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:
-
- X <= L || X > U
-
-And the a variable X is inside the central region if:
-
- L < X <= U
-
-The moral here is to ['always be very careful with your comparisons
-when dealing with a discrete distribution], and if in doubt,
-['base your comparisons on CDF's instead].
-
-[heading Other Rounding Policies are Available]
-
-As you would expect from a section on policies, you won't be surprised
-to know that other rounding options are available:
-
-[variablelist
-
-[[integer_round_outwards]
- [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.
-
- This gives /no more than/ the requested probability
- in the tails, and /at least/ the requested probability
- in the central area.]]
-[[integer_round_inwards]
- [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.
-
- This gives /at least/ the requested probability
- in the tails, and /no more than/ the requested probability
- in the central area.]]
-[[integer_round_down][This policy will always round the result down
- no matter whether it is an upper or lower quantile]]
-[[integer_round_up][This policy will always round the result up
- no matter whether it is an upper or lower quantile]]
-[[integer_round_nearest][This policy will always round the result
- to the nearest integer
- no matter whether it is an upper or lower quantile]]
-[[real][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.]]
-
-]
-
-[import ../../example/policy_eg_10.cpp]
-
-[policy_eg_10]
-
-[endsect]
-
-[endsect][/section:pol_Tutorial Policy Tutorial]
-
-
-[/ math.qbk
- Copyright 2007 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/polynomial.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/polynomial.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,94 +0,0 @@
-[section:polynomials Polynomials]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/tools/polynomial.hpp>
-``
-
- namespace boost{ namespace math{ namespace tools{
-
- template <class T>
- class polynomial
- {
- public:
- // typedefs:
- typedef typename std::vector<T>::value_type value_type;
- typedef typename std::vector<T>::size_type size_type;
-
- // construct:
- polynomial(){}
- template <class U>
- polynomial(const U* data, unsigned order);
- template <class U>
- polynomial(const U& point);
-
- // access:
- size_type size()const;
- size_type degree()const;
- value_type& operator[](size_type i);
- const value_type& operator[](size_type i)const;
-
- // operators:
- template <class U>
- polynomial& operator +=(const U& value);
- template <class U>
- polynomial& operator -=(const U& value);
- template <class U>
- polynomial& operator *=(const U& value);
- template <class U>
- polynomial& operator +=(const polynomial<U>& value);
- template <class U>
- polynomial& operator -=(const polynomial<U>& value);
- template <class U>
- polynomial& operator *=(const polynomial<U>& value);
- };
-
- template <class T>
- polynomial<T> operator + (const polynomial<T>& a, const polynomial<T>& b);
- template <class T>
- polynomial<T> operator - (const polynomial<T>& a, const polynomial<T>& b);
- template <class T>
- polynomial<T> operator * (const polynomial<T>& a, const polynomial<T>& b);
-
- template <class T, class U>
- polynomial<T> operator + (const polynomial<T>& a, const U& b);
- template <class T, class U>
- polynomial<T> operator - (const polynomial<T>& a, const U& b);
- template <class T, class U>
- polynomial<T> operator * (const polynomial<T>& a, const U& b);
-
- template <class U, class T>
- polynomial<T> operator + (const U& a, const polynomial<T>& b);
- template <class U, class T>
- polynomial<T> operator - (const U& a, const polynomial<T>& b);
- template <class U, class T>
- polynomial<T> operator * (const U& a, const polynomial<T>& b);
-
- template <class charT, class traits, class T>
- std::basic_ostream<charT, traits>& operator <<
- (std::basic_ostream<charT, traits>& os, const polynomial<T>& poly);
-
- }}} // namespaces
-
-[h4 Description]
-
-This is a fairly trivial class for polynomial manipulation.
-
-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.
-
-Advanced manipulations: the FFT, division, GCD, factorisation etc are
-not currently provided. Submissions for these are of course welcome :-)
-
-[endsect][/section:polynomials Polynomials]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/pp_pi.hpp
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/pp_pi.hpp 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,99 +0,0 @@
-//[preprocessed_pi
-
-// Preprocessed pi constant, annotated.
-
-namespace boost
-{
- namespace math
- {
- namespace constants
- {
- namespace detail
- {
- template <class T> struct constant_pi
- {
- private:
- // Default implementations from string of decimal digits:
- static inline T get_from_string()
- {
- static const T result
- = detail::convert_from_string<T>("3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651e+00",
- boost::is_convertible<const char*, T>());
- return result;
- }
- template <int N> static T compute();
-
- public:
- // Default implementations from string of decimal digits:
- static inline T get(const mpl::int_<construct_from_string>&)
- {
- constant_initializer<T, & constant_pi<T>::get_from_string >::do_nothing();
- return get_from_string();
- }
- // Float, double and long double versions:
- static inline T get(const mpl::int_<construct_from_float>)
- {
- return 3.141592653589793238462643383279502884e+00F;
- }
- static inline T get(const mpl::int_<construct_from_double>&)
- {
- return 3.141592653589793238462643383279502884e+00;
- }
- static inline T get(const mpl::int_<construct_from_long_double>&)
- {
- return 3.141592653589793238462643383279502884e+00L;
- }
- // For very high precision that is nonetheless can be calculated at compile time:
- template <int N> static inline T get(const mpl::int_<N>& n)
- {
- constant_initializer2<T, N, & constant_pi<T>::template compute<N> >::do_nothing();
- return compute<N>();
- }
- //For true arbitrary precision, which may well vary at runtime.
- static inline T get(const mpl::int_<0>&)
- {
- return tools::digits<T>() > max_string_digits ? compute<0>() : get(mpl::int_<construct_from_string>());
- }
- }; // template <class T> struct constant_pi
- } // namespace detail
-
- // The actual forwarding function (including policy to control precision).
- template <class T, class Policy> inline T pi( )
- {
- return detail:: constant_pi<T>::get(typename construction_traits<T, Policy>::type());
- }
- // The actual forwarding function (using default policy to control precision).
- template <class T> inline T pi()
- {
- return pi<T, boost::math::policies::policy<> >()
- }
- } // namespace constants
-
- // Namespace specific versions, for the three built-in floats:
- namespace float_constants
- {
- static const float pi = 3.141592653589793238462643383279502884e+00F;
- }
- namespace double_constants
- {
- static const double pi = 3.141592653589793238462643383279502884e+00;
- }
- namespace long_double_constants
- {
- static const long double pi = 3.141592653589793238462643383279502884e+00L;
- }
- namespace constants{;
- } // namespace constants
- } // namespace math
-} // namespace boost
-
-//] [/preprocessed_pi]
-
-/*
- Copyright 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/rational.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/rational.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,176 +0,0 @@
-[section:rational Polynomial and Rational Function Evaluation]
-
-[h4 synopsis]
-
-``
-#include <boost/math/tools/rational.hpp>
-``
-
- // Polynomials:
- template <std::size_t N, class T, class V>
- V evaluate_polynomial(const T(&poly)[N], const V& val);
-
- template <std::size_t N, class T, class V>
- V evaluate_polynomial(const boost::array<T,N>& poly, const V& val);
-
- template <class T, class U>
- U evaluate_polynomial(const T* poly, U z, std::size_t count);
-
- // Even polynomials:
- template <std::size_t N, class T, class V>
- V evaluate_even_polynomial(const T(&poly)[N], const V& z);
-
- template <std::size_t N, class T, class V>
- V evaluate_even_polynomial(const boost::array<T,N>& poly, const V& z);
-
- template <class T, class U>
- U evaluate_even_polynomial(const T* poly, U z, std::size_t count);
-
- // Odd polynomials
- template <std::size_t N, class T, class V>
- V evaluate_odd_polynomial(const T(&a)[N], const V& z);
-
- template <std::size_t N, class T, class V>
- V evaluate_odd_polynomial(const boost::array<T,N>& a, const V& z);
-
- template <class T, class U>
- U evaluate_odd_polynomial(const T* poly, U z, std::size_t count);
-
- // Rational Functions:
- template <std::size_t N, class T, class V>
- V evaluate_rational(const T(&a)[N], const T(&b)[N], const V& z);
-
- template <std::size_t N, class T, class V>
- V evaluate_rational(const boost::array<T,N>& a, const boost::array<T,N>& b, const V& z);
-
- template <class T, class U, class V>
- V evaluate_rational(const T* num, const U* denom, V z, unsigned count);
-
-[h4 Description]
-
-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.
-
- template <std::size_t N, class T, class V>
- V evaluate_polynomial(const T(&poly)[N], const V& val);
-
- template <std::size_t N, class T, class V>
- V evaluate_polynomial(const boost::array<T,N>& poly, const V& val);
-
- template <class T, class U>
- U evaluate_polynomial(const T* poly, U z, std::size_t count);
-
-Evaluates the [@http://en.wikipedia.org/wiki/Polynomial polynomial] described by
-the coefficients stored in /poly/.
-
-If the size of the array is specified at runtime, then the polynomial
-most have order /count-1/ with /count/ coefficients. Otherwise it has
-order /N-1/ with /N/ coefficients.
-
-Coefficients should be stored such that the coefficients for the x[super i ] terms
-are in poly[i].
-
-The types of the coefficients and of variable
-/z/ may differ as long as /*poly/ is convertible to type /U/.
-This allows, for example, for the coefficient table
-to be a table of integers if this is appropriate.
-
- template <std::size_t N, class T, class V>
- V evaluate_even_polynomial(const T(&poly)[N], const V& z);
-
- template <std::size_t N, class T, class V>
- V evaluate_even_polynomial(const boost::array<T,N>& poly, const V& z);
-
- template <class T, class U>
- U evaluate_even_polynomial(const T* poly, U z, std::size_t count);
-
-As above, but evaluates an even polynomial: one where all the powers
-of /z/ are even numbers. Equivalent to calling
-`evaluate_polynomial(poly, z*z, count)`.
-
- template <std::size_t N, class T, class V>
- V evaluate_odd_polynomial(const T(&a)[N], const V& z);
-
- template <std::size_t N, class T, class V>
- V evaluate_odd_polynomial(const boost::array<T,N>& a, const V& z);
-
- template <class T, class U>
- U evaluate_odd_polynomial(const T* poly, U z, std::size_t count);
-
-As above but evaluates a polynomial where all the powers are odd numbers.
-Equivalent to `evaluate_polynomial(poly+1, z*z, count-1) * z + poly[0]`.
-
- template <std::size_t N, class T, class U, class V>
- V evaluate_rational(const T(&num)[N], const U(&denom)[N], const V& z);
-
- template <std::size_t N, class T, class U, class V>
- V evaluate_rational(const boost::array<T,N>& num, const boost::array<U,N>& denom, const V& z);
-
- template <class T, class U, class V>
- V evaluate_rational(const T* num, const U* denom, V z, unsigned count);
-
-Evaluates the rational function (the ratio of two polynomials) described by
-the coefficients stored in /num/ and /demom/.
-
-If the size of the array is specified at runtime then both
-polynomials most have order /count-1/ with /count/ coefficients.
-Otherwise both polynomials have order /N-1/ with /N/ coefficients.
-
-Array /num/ describes the numerator, and /demon/ the denominator.
-
-Coefficients should be stored such that the coefficients for the x[super i ] terms
-are in num[i] and denom[i].
-
-The types of the coefficients and of variable
-/v/ may differ as long as /*num/ and /*denom/ are convertible to type /V/.
-This allows, for example, for one or both of the coefficient tables
-to be a table of integers if this is appropriate.
-
-These functions are designed to safely evaluate the result, even when the value
-/z/ 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 /z/ 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.
-
-[h4 Implementation]
-
-Polynomials are evaluated by
-[@http://en.wikipedia.org/wiki/Horner_algorithm Horners method].
-If the array size is known at
-compile time then the functions dispatch to size-specific implementations
-that unroll the evaluation loop.
-
-Rational evaluation is by
-[@http://en.wikipedia.org/wiki/Horner_algorithm Horners method]:
-with the two polynomials being evaluated
-in parallel to make the most of the processors floating-point pipeline.
-If /v/ is greater than one, then the polynomials are evaluated in reverse
-order as polynomials in ['1\/v]: this avoids unnecessary numerical overflow when the
-coefficients are large.
-
-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
-[link math_toolkit.perf.tuning documented here]. However, the performance
-benefits to be gained from these are marginal on most current hardware,
-consequently it's best to run the
-[link math_toolkit.perf.perf_test_app performance test application] before
-changing the default settings.
-
-[endsect][/section:rational Polynomial and Rational Function Evaluation]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/references.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/references.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,115 +0,0 @@
-[section:refs References]
-
-[h4 General references]
-
-(Specific detailed sources for individual functions and distributions
-are given at the end of each individual section).
-
-[@http://dlmf.nist.gov/ DLMF (NIST Digital Library of Mathematical Functions)]
-is a replacement for the legendary
-Abramowitz and Stegun's Handbook of Mathematical Functions (often called simply A&S),
-
-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.
-[/ __Abramowitz_Stegun]
-
-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.
-
-ISBN: 978-0521140638 (paperback), 9780521192255 (hardback), July 2010, Cambridge University Press.
-
-[@http://www.itl.nist.gov/div898/handbook/index.htm NIST/SEMATECH e-Handbook of Statistical Methods]
-
-[@http://documents.wolfram.com/mathematica/Add-onsLinks/StandardPackages/Statistics/DiscreteDistributions.html Mathematica Documentation: DiscreteDistributions]
-The Wolfram Research Documentation Center is a collection of online reference materials about Mathematica, CalculationCenter, and other Wolfram Research products.
-
-[@http://documents.wolfram.com/mathematica/Add-onsLinks/StandardPackages/Statistics/ContinuousDistributions.html Mathematica Documentation: ContinuousDistributions]
-The Wolfram Research Documentation Center is a collection of online reference materials about Mathematica, CalculationCenter, and other Wolfram Research products.
-
-Statistical Distributions (Wiley Series in Probability & Statistics) (Paperback)
-by N.A.J. Hastings, Brian Peacock, Merran Evans, ISBN: 0471371246, Wiley 2000.
-
-[@http://www.worldscibooks.com/mathematics/p191.html Extreme Value Distributions, Theory and Applications]
-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.
-
-[@http://bh0.physics.ubc.ca/People/matt/Doc/ThesesOthers/Phd/pugh.pdf pugh.pdf (application/pdf Object)]
-Pugh Msc Thesis on the Lanczos approximation to the gamma function.
-
-[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003 N1514, 03-0097, A Proposal to Add Mathematical Special Functions to the C++ Standard Library (version 2), Walter E. Brown]
-
-[h4 Calculators]
-
-We found (and used to create cross-check spot values - as far as their accuracy allowed).
-
-[@http://functions.wolfram.com/ 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.
-
-[@http://www.moshier.net/cephes28.zip 100-decimal digit calculator] provided some spot values.
-
-[@http://www.adsciengineering.com/bpdcalc/ http://www.adsciengineering.com/bpdcalc/] Binomial Probability Distribution Calculator.
-
-
-[h4 Other Libraries]
-
-[@http://www.moshier.net/#Cephes Cephes library] by Shephen Moshier and his book:
-
-Methods and programs for mathematical functions, Stephen L B Moshier, Ellis Horwood (1989) ISBN 0745802893 0470216093 provided inspiration.
-
-[@http://lib.stat.cmu.edu/general/cdflib CDFLIB Library of Fortran Routines for Cumulative Distribution functions.]
-
-[@http://www.csit.fsu.edu/~burkardt/cpp_src/dcdflib/dcdflib.html DCFLIB C++ version].
-
-[@http://www.csit.fsu.edu/~burkardt/f_src/dcdflib/dcdflib.html DCDFLIB C++ version]
-DCDFLIB is a library of C++ routines, using double precision arithmetic, for evaluating cumulative probability density functions.
-
-[@http://www.softintegration.com/docs/package/chnagstat/ http://www.softintegration.com/docs/package/chnagstat/]
-
-[@http://www.nag.com/numeric/numerical_libraries.asp NAG] libraries.
-
-[@http://www.mathcad.com MathCAD]
-
-[@http://www.vni.com/products/imsl/jmsl/v30/api/com/imsl/stat/Cdf.html JMSL Numerical Library] (Java).
-
-John F Hart, Computer Approximations, (1978) ISBN 0 088275 642-7.
-
-William J Cody, Software Manual for the Elementary Functions, Prentice-Hall (1980) ISBN 0138220646.
-
-Nico Temme, Special Functions, An Introduction to the Classical Functions of Mathematical Physics, Wiley, ISBN: 0471-11313-1 (1996) who also gave valueable advice.
-
-[@http://www.cas.lancs.ac.uk/glossary_v1.1/prob.html#probdistn Statistics Glossary], Valerie Easton and John H. McColl.
-
-[__R]
-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.
-
-For use of R, see:
-
-Jim Albert, Bayesian Computation with R, ISBN 978-0-387-71384-7.
-
-[@http://www.quantnet.com/cplusplus-statistical-distributions-boost
-C++ Statistical Distributions in Boost - QuantNetwork forum]
-discusses using Boost.Math in finance.
-
-[@http://www.quantnet.com/boost-and-computational-finance/ Quantnet Boost and computational finance].
-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.]
-
-[endsect] [/section:references References]
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/relative_error.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/relative_error.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,134 +0,0 @@
-[section:error_test Relative Error and Testing]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/tools/test.hpp>
-``
-
- template <class T>
- T relative_error(T a, T b);
-
- template <class A, class F1, class F2>
- test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);
-
-[h4 Description]
-
- template <class T>
- T relative_error(T a, T v);
-
-Returns the relative error between /a/ and /v/ using the usual formula:
-
-[equation error1]
-
-In addition the value returned is zero if:
-
-* Both /a/ and /v/ are infinite.
-* Both /a/ and /v/ are denormalised numbers or zero.
-
-Otherwise if only one of /a/ and /v/ is zero then the value returned is 1.
-
- template <class A, class F1, class F2>
- test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);
-
-This function is used for testing a function against tabulated test data.
-
-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:
-
-[variablelist
-[[`unsigned worst()const;`][Returns the row at which the worst error occurred.]]
-[[`T min()const;`][Returns the smallest relative error found.]]
-[[`T max()const;`][Returns the largest relative error found.]]
-[[`T mean()const;`][Returns the mean error found.]]
-[[`boost::uintmax_t count()const;`][Returns the number of test cases.]]
-[[`T variance()const;`][Returns the variance of the errors found.]]
-[[`T variance1()const;`][Returns the unbiased variance of the errors found.]]
-[[`T rms()const`][Returns the Root Mean Square, or quadratic mean of the errors.]]
-[[`test_result& operator+=(const test_result& t)`][Combines two test_result's into
-a single result.]]
-]
-
-The template parameter of test_result, is the same type as the values in the two
-dimensional array passed to function /test/, roughly that's
-`A::value_type::value_type`.
-
-Parameter /a/ 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
-[^boost::array]. Each row
-of /a/ should contain all the parameters that are passed to the function
-under test as well as the expected result.
-
-Parameter /test_func/ is the function under test, it is invoked with each row
-of test data in /a/. Typically type F1 is created with Boost.Lambda: see
-the example below.
-
-Parameter /expect_func/ is a functor that extracts the expected result
-from a row of test data in /a/. Typically type F2 is created with Boost.Lambda: see
-the example below.
-
-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 `std::cerr`,
-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).
-
-[h4 Example]
-
-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.
-
- static const boost::array<boost::array<TestType, 3>, NumberOfTests>
- factorials = {
- /* big array of test data goes here */
- };
-
-Now we can invoke the test function to test tgamma:
-
- using namespace boost::math::tools;
- using namespace boost::lambda;
-
- // get a pointer to the function under test:
- TestType (*funcp)(TestType) = boost::math::tgamma;
-
- // declare something to hold the result:
- test_result<TestType> result;
- //
- // and test tgamma against data:
- //
- result = test(
- factorials,
- bind(funcp, ret<TestType>(_1[0])), // calls tgamma with factorials[row][0]
- ret<TestType>(_1[1]) // extracts the expected result from factorials[row][1]
- );
- //
- // Print out some results:
- //
- std::cout << "The Mean was " << result.mean() << std::endl;
- std::cout << "The worst error was " << (result.max)() << std::endl;
- std::cout << "The worst error was at row " << result.worst_case() << std::endl;
- //
- // same again with lgamma this time:
- //
- funcp = boost::math::lgamma;
- result = test(
- factorials,
- bind(funcp, ret<TestType>(_1[0])), // calls tgamma with factorials[row][0]
- ret<TestType>(_1[2]) // extracts the expected result from factorials[row][2]
- );
- //
- // etc ...
- //
-
-[endsect][/section:error_test Relative Error and Testing]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/remez.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/remez.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,377 +0,0 @@
-[section:remez The Remez Method]
-
-The [@http://en.wikipedia.org/wiki/Remez_algorithm 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.
-
-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.
-
-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:
-
-E[sub abs](x) = f(x) - R(x)
-
-which is expressed in terms of absolute error, but we can equally use
-relative error:
-
-E[sub rel](x) = (f(x) - R(x)) / |f(x)|
-
-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.
-
-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:
-
-* 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.
-* The error function has N+1 roots, and N+2 extrema (minima and maxima).
-* The extrema alternate in sign, and all have the same magnitude.
-
-That means that if we know the location of the extrema of the error function
-then we can write N+2 simultaneous equations:
-
-R(x[sub i]) + (-1)[super i]E = f(x[sub i])
-
-where E is the maximal error term, and x[sub i] 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.
-
-['Unfortunately we don't know where the extrema of the error function are located!]
-
-[h4 The Remez Method]
-
-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.
-
-In the following discussion we'll use a concrete example to illustrate
-the Remez method: an approximation to the function e[super x][space] over
-the range \[-1, 1\].
-
-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).
-
-In order to obtain the N+1 coefficients of the interpolated polynomial
-we need N+1 points (x[sub 0]...x[sub N]): with our interpolated form
-passing through each of those points
-that yields N+1 simultaneous equations:
-
-f(x[sub i]) = P(x[sub i]) = c[sub 0] + c[sub 1]x[sub i] ... + c[sub N]x[sub i][super N]
-
-Which can be solved for the coefficients c[sub 0]...c[sub N] in P(x).
-
-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 /relative error/
-we get the following error function:
-
-[$../graphs/remez-2.png]
-
-Which has a peak relative error of 1.2x10[super -3].
-
-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 ['Chebyshev control points].
-
-[note
-In the simple case of a polynomial approximation, by interpolating through
-the roots of a Chebyshev polynomial we have in fact created a ['Chebyshev
-approximation] to the function: in terms of /absolute error/
-this is the best a priori choice for the interpolated form we can
-achieve, and typically is very close to the minimax solution.
-
-However, if we want to optimise for /relative error/, or if the approximation
-is a rational function, then the initial Chebyshev solution can be quite far
-from the ideal minimax solution.
-
-A more technical discussion of the theory involved can be found in this
-[@http://math.fullerton.edu/mathews/n2003/ChebyshevPolyMod.html online course].]
-
-[h4 Remez Step 1]
-
-The first step in the Remez method, given our current set of
-N+2 Chebyshev control points x[sub i], is to solve the N+2 simultaneous
-equations:
-
-P(x[sub i]) + (-1)[super i]E = f(x[sub i])
-
-To obtain the error term E, and the coefficients of the polynomial P(x).
-
-This gives us a new approximation to f(x) that has the same error /E/ at
-each of the control points, and whose error function ['alternates in sign]
-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:
-
-[$../graphs/remez-3.png]
-
-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[super -4].
-
-[h4 Remez Step 2]
-
-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.
-
-We now have a choice: multi-point exchange, or single point exchange.
-
-In single point exchange, we move the control point nearest to the largest extrema to
-the absissa value of the extrema.
-
-In multi-point exchange we swap all the current control points, for the locations
-of the extrema.
-
-In our example we perform multi-point exchange.
-
-[h4 Iteration]
-
-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.
-
-For our current example, two more iterations converges on a minimax
-solution with a peak relative error of
-5x10[super -4] and an error function that looks like:
-
-[$../graphs/remez-4.png]
-
-[h4 Rational Approximations]
-
-If we wish to extend the Remez method to a rational approximation of the form
-
-f(x) = R(x) = P(x) / Q(x)
-
-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.
-
-The simultaneous equations to be solved are now:
-
-P(x[sub i]) / Q(x[sub i]) + (-1)[super i]E = f(x[sub i])
-
-Evaluated at the N+M+2 control points x[sub i].
-
-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!
-
-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.
-
-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[super x], we obtained 5x10[super -4] 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[super -5]. That's a 5 fold increase in accuracy, for the same number
-of terms overall.
-
-[h4 Practical Considerations]
-
-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.
-
-So far we have used a direct approximation:
-
-f(x) = R(x)
-
-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.
-
-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:
-
-f(x) = g(x) + R(x)
-
-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:
-
-f(x) = g(x)(c + R(x))
-
-Will yield a much better solution: here /c/ is a constant that is the approximate
-value of f(x)\/g(x) and R(x) is typically tiny compared to /c/. In this situation
-if R(x) is optimised for absolute error, then as long as its error is small compared
-to the constant /c/, that error will effectively get wiped out when R(x) is added to
-/c/.
-
-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 __erfc becomes proportional to
-e[super -x[super 2]]\/x as x becomes large. Therefore using:
-
-erfc(z) = (C + R(x)) e[super -x[super 2]]/x
-
-as the approximating form seems like an obvious thing to try, and does indeed
-yield a useful approximation.
-
-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.
-
-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[super x][space] over \[-1,1\], the initial
-interpolated form was some way from the minimax solution:
-
-[$../graphs/remez-2.png]
-
-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[super -3][space]to 6x10[super -4]:
-
-[$../graphs/remez-5.png]
-
-It's clearly still not ideal, but it is only a few percent away from
-our desired minimax solution (5x10[super -4]).
-
-[h4 Remez Method Checklist]
-
-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.
-
-* Is the function smooth enough? Can it be better separated into
-a rapidly changing part, and an asymptotic part?
-* 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.
-* 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.
-* Try skewing the initial interpolated approximation to minimise the
-error before you begin the Remez steps.
-* If the approximation won't converge or is ill-conditioned from one starting
-location, try starting from a different location.
-* 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.
-* 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.
-* Keep absissa values small: use a change of variable to keep the abscissa
-over, say \[0, b\], for some smallish value /b/.
-
-[h4 References]
-
-The original references for the Remez Method and it's extension
-to rational functions are unfortunately in Russian:
-
-Remez, E.Ya., ['Fundamentals of numerical methods for Chebyshev approximations],
-"Naukova Dumka", Kiev, 1969.
-
-Remez, E.Ya., Gavrilyuk, V.T., ['Computer development of certain approaches
-to the approximate construction of solutions of Chebyshev problems
-nonlinearly depending on parameters], Ukr. Mat. Zh. 12 (1960), 324-338.
-
-Gavrilyuk, V.T., ['Generalization of the first polynomial algorithm of
-E.Ya.Remez for the problem of constructing rational-fractional
-Chebyshev approximations], Ukr. Mat. Zh. 16 (1961), 575-585.
-
-Some English language sources include:
-
-Fraser, W., Hart, J.F., ['On the computation of rational approximations
-to continuous functions], Comm. of the ACM 5 (1962), 401-403, 414.
-
-Ralston, A., ['Rational Chebyshev approximation by Remes' algorithms],
-Numer.Math. 7 (1965), no. 4, 322-330.
-
-A. Ralston, ['Rational Chebyshev approximation, Mathematical
-Methods for Digital Computers v. 2] (Ralston A., Wilf H., eds.),
-Wiley, New York, 1967, pp. 264-284.
-
-Hart, J.F. e.a., ['Computer approximations], Wiley, New York a.o., 1968.
-
-Cody, W.J., Fraser, W., Hart, J.F., ['Rational Chebyshev approximation
-using linear equations], Numer.Math. 12 (1968), 242-251.
-
-Cody, W.J., ['A survey of practical rational and polynomial
-approximation of functions], SIAM Review 12 (1970), no. 3, 400-423.
-
-Barrar, R.B., Loeb, H.J., ['On the Remez algorithm for non-linear
-families], Numer.Math. 15 (1970), 382-391.
-
-Dunham, Ch.B., ['Convergence of the Fraser-Hart algorithm for rational
-Chebyshev approximation], Math. Comp. 29 (1975), no. 132, 1078-1082.
-
-G. L. Litvinov, ['Approximate construction of rational
-approximations and the effect of error autocorrection],
-Russian Journal of Mathematical Physics, vol.1, No. 3, 1994.
-
-[endsect][/section:remez The Remez Method]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/result_type_calc.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/result_type_calc.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,85 +0,0 @@
-
-[section:result_type Calculation of the Type of the Result]
-
-The functions in this library are all overloaded to accept
-mixed floating point (or mixed integer and floating point type)
-arguments. So for example:
-
- foo(1.0, 2.0);
- foo(1.0f, 2);
- foo(1.0, 2L);
-
-etc, are all valid calls, as long as "foo" is a function taking two
-floating-point arguments. But that leaves the question:
-
-[blurb ['"Given a special function with N arguments of
-types T1, T2, T3 ... TN, then what type is the result?"]]
-
-[*If all the arguments are of the same (floating point) type then the
-result is the same type as the arguments.]
-
-Otherwise, the type of the result
-is computed using the following logic:
-
-# Any arguments that are not template arguments are disregarded from
-further analysis.
-# 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.
-# 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.
-# If any of the arguments is of type `long double`, then the result is of type
-`long double`.
-# If any of the arguments is of type `double`, then the result is of type
-`double`.
-# Otherwise the result is of type `float`.
-
-For example:
-
- cyl_bessel(2, 3.0);
-
-Returns a `double` result, as does:
-
- cyl_bessel(2, 3.0f);
-
-as in this case the integer first argument is treated as a `double` and takes
-precedence over the `float` second argument. To get a `float` result we would need
-all the arguments to be of type float:
-
- cyl_bessel_j(2.0f, 3.0f);
-
-When one or more of the arguments is not a template argument then it
-doesn't effect the return type at all, for example:
-
- sph_bessel(2, 3.0f);
-
-returns a `float`, 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 `float`.
-
-And for user-defined types, all of the following return an `NTL::RR` result:
-
- cyl_bessel_j(0, NTL::RR(2));
-
- cyl_bessel_j(NTL::RR(2), 3);
-
- cyl_bessel_j(NTL::quad_float(2), NTL::RR(3));
-
-In the last case, `quad_float` is convertible to `RR`, but not vice-versa, so
-the result will be an `NTL::RR`. Note that this assumes that you are using
-a [link math_toolkit.using_udt.high_precision.use_ntl patched NTL library].
-
-These rules are chosen to be compatible with the behaviour of
-['ISO/IEC 9899:1999 Programming languages - C]
-and with the
-[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Draft Technical Report on C++ Library Extensions, 2005-06-24, section 5.2.1, paragraph 5].
-
-[endsect]
-
-[/
- Copyright 2006, 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/roadmap.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/roadmap.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,270 +0,0 @@
-[template history[]
-
-Currently open bug reports can be viewed
-[@https://svn.boost.org/trac/boost/query?status=assigned&status=new&status=reopened&component=math&col=id&col=summary&col=status&col=type&col=milestone&col=component&order=priority here].
-
-All bug reports including closed ones can be viewed
-[@https://svn.boost.org/trac/boost/query?status=assigned&status=closed&status=new&status=reopened&component=math&col=id&col=summary&col=status&col=type&col=milestone&col=component&order=priority here].
-
-[h4 Boost-1.54]
-
-* Added many references to Boost.Multiprecision and `cpp_dec_float_50` as an example of a User-defined Type (UDT).
-* Added Clang to list of supported compilers.
-* Fixed constants to use a thread-safe cache of computed values when used at arbitrary precision.
-* Added finding zeros of Bessel functions `cyl_bessel_j_zero`, `cyl_neumann_zero`, `air_ai_zeros` and `air_bi_zeros`(by Christopher Kormanyos).
-* More accuracy improvements to the Bessel J and Y functions from Rocco Romeo.
-* Fixed nasty cyclic dependency bug that caused some headers to not compile [@https://svn.boost.org/trac/boost/ticket/7999 #7999].
-* Fixed bug in __tgamma that caused spurious overflow for arguments between 142.5 and 143.
-* Fixed bug in raise_rounding_error that caused it to return an incorrect result when throwing an exception is turned off [@https://svn.boost.org/trac/boost/ticket/7905 #7905].
-* Added minimal __float128 support.
-* Fixed bug in edge-cases of poisson quantile [@https://svn.boost.org/trac/boost/ticket/8308 #8308].
-* 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 [@https://svn.boost.org/trac/boost/ticket/8314 #8314].
-
-[h4 Boost-1.53]
-
-* Fixed issues [@https://svn.boost.org/trac/boost/ticket/7325 #7325], [@https://svn.boost.org/trac/boost/ticket/7415 #7415]
-and [@https://svn.boost.org/trac/boost/ticket/7416 #7416], [@https://svn.boost.org/trac/boost/ticket/7183 #7183],
-[@https://svn.boost.org/trac/boost/ticket/7649 #7649], [@https://svn.boost.org/trac/boost/ticket/7694 #7694],
-[@https://svn.boost.org/trac/boost/ticket/4445 #4445], [@https://svn.boost.org/trac/boost/ticket/7492 #7492],
-[@https://svn.boost.org/trac/boost/ticket/7891 #7891], [@https://svn.boost.org/trac/boost/ticket/7429 #7429].
-* Fixed mistake in calculating pooled standard deviation in two-sample students t example
-[@https://svn.boost.org/trac/boost/ticket/7402 #7402].
-* Improve complex acos/asin/atan, see [@https://svn.boost.org/trac/boost/ticket/7290 #7290],
-[@https://svn.boost.org/trac/boost/ticket/7291 #7291].
-* Improve accuracy in some corner cases of __cyl_bessel_j and __gamma_p/__gamma_q thanks to suggestions from Rocco Romeo.
-* Improve accuracy of Bessel J and Y for integer orders thanks to suggestions from Rocco Romeo.
-
-[h4 Boost-1.52]
-
-* Corrected moments for small degrees of freedom [@https://svn.boost.org/trac/boost/ticket/7177 #7177] (reported by Thomas Mang).
-* Added [link math_toolkit.special.airy Airy functions] and [link math_toolkit.special.jacobi Jacobi Elliptic functions].
-* Corrected failure to detect bad parameters in many distributions
-[@https://svn.boost.org/trac/boost/ticket/6934 #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.
-* Fixed issue in Hankel functions that causes incorrect values to be returned for ['x < 0] and [nu] odd, see [@https://svn.boost.org/trac/boost/ticket/7135 #7135].
-* Fixed issues [@https://svn.boost.org/trac/boost/ticket/6517 #6517], [@https://svn.boost.org/trac/boost/ticket/6362 #6362],
-[@https://svn.boost.org/trac/boost/ticket/7053 #7053], [@https://svn.boost.org/trac/boost/ticket/2693 #2693],
-[@https://svn.boost.org/trac/boost/ticket/6937 #6937], [@https://svn.boost.org/trac/boost/ticket/7099 #7099].
-
-
-* Permitted infinite degrees of freedom [@https://svn.boost.org/trac/boost/ticket/7259 #7259]
-implemented using the normal distribution (requested by Thomas Mang).
-* Much enhanced accuracy for large degrees of freedom [nu] and/or large non-centrality [delta]
-by switching to use the Students t distribution
-(or Normal distribution for infinite degrees of freedom)
- centered at delta,
-when [delta] / (4 * [nu]) < epsilon for the floating-point type in use.
-[@https://svn.boost.org/trac/boost/ticket/7259 #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).
-
-[h4 Boost-1.51]
-See Boost-1.52 - some items were added but not listed in time for the release.
-
-[h4 Boost-1.50]
-
-* 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.
-* Added the Owen's T function and Skew Normal distribution written by Benjamin Sobotta: see __owens_t and skew_normal_distrib.
-* Added Hankel functions __cyl_hankel_1, __cyl_hankel_2, __sph_hankel_1 and __sph_hankel_2.
-* Corrected issue [@https://svn.boost.org/trac/boost/ticket/6627 #6627 nonfinite_num_put formatting of 0.0 is incorrect]
-based on a patch submitted by K R Walker.
-* 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 `long double` does not.
-So for example 128-bit rational approximations will work with UDT's and do the right thing, even though
-`long double` may be only 64 or 80 bits.
-* Fixed issue in `bessel_jy` which causes Y[sub 8.5](4[pi]) to yield a NaN.
-
-[h4 Boost-1.49]
-
-* Deprecated wrongly named `twothirds` math constant in favour of `two_thirds` (with underscore separator).
-(issue [@https://svn.boost.org/trac/boost/ticket/6199 #6199]).
-* Refactored test data and some special function code to improve support for arbitary precision and/or expression-template-enabled types.
-* Added new faster zeta function evaluation method.
-
-Fixed issues:
-
-* Corrected CDF complement for Laplace distribution (issue [@https://svn.boost.org/trac/boost/ticket/6151 #6151]).
-* Corrected branch cuts on the complex inverse trig functions, to handle signed zeros (issue [@https://svn.boost.org/trac/boost/ticket/6171 #6171]).
-* Fixed bug in `bessel_yn` which caused incorrect overflow errors to be raised for negative ['n] (issue [@https://svn.boost.org/trac/boost/ticket/6367 #6367]).
-* Also fixed minor/cosmetic/configuration issues [@https://svn.boost.org/trac/boost/ticket/6120 #6120], [@https://svn.boost.org/trac/boost/ticket/6191 #6191],
- [@https://svn.boost.org/trac/boost/ticket/5982 #5982], [@https://svn.boost.org/trac/boost/ticket/6130 #6130],
- [@https://svn.boost.org/trac/boost/ticket/6234 #6234], [@https://svn.boost.org/trac/boost/ticket/6307 #6307],
- [@https://svn.boost.org/trac/boost/ticket/6192 #6192].
-
-[h4 Boost-1.48]
-
-* 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 [@https://svn.boost.org/trac/boost/ticket/5560 #5560]
-
-* Added an example of using Inverse Chi-Squared distribution for Bayesian statistics,
-provided by Thomas Mang.
-
-* Added tests to use improved version of lexical_cast which handles C99 nonfinites without using globale facets.
-
-* Corrected wrong out-of-bound uniform distribution CDF complement values [@https://svn.boost.org/trac/boost/ticket/5733 #5733].
-
-* Enabled long double support on OpenBSD (issue [@https://svn.boost.org/trac/boost/ticket/6014 #6014]).
-
-* Changed nextafter and related functions to behave in the same way as other implementations - so that nextafter(+INF, 0)
-is a finite value (issue [@https://svn.boost.org/trac/boost/ticket/5823 #5832]).
-
-* Changed tuple include configuration to fix issue when using in conjunction with Boost.Tr1 (issue [@https://svn.boost.org/trac/boost/ticket/5934 #5934]).
-
-* Changed class eps_tolerance to behave correctly when both ends of the range are zero (issue [@https://svn.boost.org/trac/boost/ticket/6001 #6001]).
-
-* Fixed missing include guards on prime.hpp (issue [@https://svn.boost.org/trac/boost/ticket/5927 #5927]).
-
-* Removed unused/undocumented constants from constants.hpp (issue [@https://svn.boost.org/trac/boost/ticket/5982 #5982]).
-
-* Fixed missing std:: prefix in nonfinite_num_facets.hpp (issue [@https://svn.boost.org/trac/boost/ticket/5914 #5914]).
-
-* Minor patches for Cray compiler compatibility.
-
-[h4 Boost-1.47]
-
-* Added changesign function to sign.hpp to facilitate addition of nonfinite facets.
-* Addition of nonfinite facets from Johan Rade, with tests,
-examples of use for C99 format infinity and NaN, and documentation.
-* Added tests and documentation of changesign from Johan Rade.
-
-[h4 Boost-1.46.1]
-
-* Fixed issues [@https://svn.boost.org/trac/boost/ticket/5095 #5095], [@https://svn.boost.org/trac/boost/ticket/5095 #5113].
-
-[h4 Boost-1.46.0]
-
-* Added Wald, Inverse Gaussian and geometric distributions.
-* Added information about configuration macros.
-* Added support for mpreal as a real-numbered type.
-
-[h4 Boost-1.45.0]
-
-* Added warnings about potential ambiguity with std random library in distribution and function names.
-* Added inverse gamma distribution and inverse chi_square and scaled inverse chi_square.
-* Editorial revision of documentation, and added FAQ.
-
-[h4 Boost-1.44.0]
-
-* Fixed incorrect range and support for Rayleigh distribution.
-* 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.
-
-[h4 Boost-1.41.0]
-
-* Significantly improved performance for the incomplete gamma function and its inverse.
-
-[h4 Boost-1.40.0]
-
-* Added support for MPFR as a bignum type.
-* Added some full specializations of the policy classes to reduce compile times.
-* Added logistic and hypergeometric distributions, from Gautam Sewani's Google Summer of Code project.
-* Added Laplace distribution submitted by Thijs van den Berg.
-* Updated performance test code to include new distributions, and improved the performance of the non-central distributions.
-* Added SSE2 optimised __lanczos code, from Gautam Sewani's Google Summer of Code project.
-* Fixed bug in cyl_bessel_i that used an incorrect approximation for [nu] = 0.5, also effects the non-central
- Chi Square Distribution when [nu] = 3, see bug report [@https://svn.boost.org/trac/boost/ticket/2877 #2877].
-* Fixed minor bugs [@https://svn.boost.org/trac/boost/ticket/2873 #2873].
-
-[h4 Boost-1.38.0]
-
-* Added Johan R'''&#xE5;'''de's optimised floating point classification routines.
-* Fixed code so that it compiles in GCC's -pedantic mode (bug report
-[@https://svn.boost.org/trac/boost/ticket/1451 #1451]).
-
-[h4 Boost-1.37.0]
-
-* Improved accuracy and testing of the inverse hypergeometric functions.
-
-[h4 Boost-1.36.0]
-
-* Added Noncentral Chi Squared Distribution.
-* Added Noncentral Beta Distribution.
-* Added Noncentral F Distribution.
-* Added Noncentral T Distribution.
-* Added Exponential Integral Functions.
-* Added Zeta Function.
-* Added Rounding and Truncation functions.
-* Added Compile time powers of runtime bases.
-* Added SSE2 optimizations for Lanczos evaluation.
-
-[h4 Boost-1.35.0: Post Review First Official Release]
-
-* Added Policy based framework that allows fine grained control
-over function behaviour.
-* [*Breaking change:] Changed default behaviour for domain, pole and overflow errors
-to throw an exception (based on review feedback), this
-behaviour can be customised using __Policy's.
-* [*Breaking change:] Changed exception thrown when an internal evaluation error
-occurs to boost::math::evaluation_error.
-* [*Breaking change:] 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 __Policy's.
-* Polynomial/rational function evaluation is now customisable and hopefully
-faster than before.
-* Added performance test program.
-
-[h4 Milestone 4: Second Review Candidate (1st March 2007)]
-
-* Moved Xiaogang Zhang's Bessel Functions code into the library,
-and brought them into line with the rest of the code.
-* Added C# "Distribution Explorer" demo application.
-
-[h4 Milestone 3: First Review Candidate (31st Dec 2006)]
-
-* Implemented the main probability distribution and density functions.
-* Implemented digamma.
-* Added more factorial functions.
-* Implemented the Hermite, Legendre and Laguerre polynomials plus the
-spherical harmonic functions from TR1.
-* Moved Xiaogang Zhang's elliptic integral code into the library,
-and brought them into line with the rest of the code.
-* Moved Hubert Holin's existing Boost.Math special functions
-into this library and brought them into line with the rest of the code.
-
-[h4 Milestone 2: Released September 10th 2006]
-
-* Implement preview release of the statistical distributions.
-* Added statistical distributions tutorial.
-* Implemented root finding algorithms.
-* Implemented the inverses of the incomplete gamma and beta functions.
-* Rewrite erf/erfc as rational approximations (valid to 128-bit precision).
-* 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.
-* Improved lgamma near 1 and 2 (rational approximations).
-* Improved erf/erfc inverses (rational approximations).
-* Implemented Rational function generation (the Remez method).
-
-[h4 Milestone 1: Released March 31st 2006]
-
-* Implement gamma/beta/erf functions along with their incomplete counterparts.
-* Generate high quality test data, against which future improvements can be judged.
-* Provide tools for the evaluation of infinite series, continued fractions, and
-rational functions.
-* Provide tools for testing against tabulated test data, and collecting statistics
-on error rates.
-* Provide sufficient docs for people to be able to find their way around the library.
-
-SVN Revisions:
-
-Sandbox and trunk last synchonised at revision: .
-
-]
-[/
- Copyright 2006 - 2013 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/roots.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/roots.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,277 +0,0 @@
- [section:roots Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/tools/roots.hpp>
-``
-
- namespace boost{ namespace math{
- namespace tools{
-
- template <class F, class T>
- T newton_raphson_iterate(F f, T guess, T min, T max, int digits);
-
- template <class F, class T>
- T newton_raphson_iterate(F f, T guess, T min, T max, int digits, boost::uintmax_t& max_iter);
-
- template <class F, class T>
- T halley_iterate(F f, T guess, T min, T max, int digits);
-
- template <class F, class T>
- T halley_iterate(F f, T guess, T min, T max, int digits, boost::uintmax_t& max_iter);
-
- template <class F, class T>
- T schroeder_iterate(F f, T guess, T min, T max, int digits);
-
- template <class F, class T>
- T schroeder_iterate(F f, T guess, T min, T max, int digits, boost::uintmax_t& max_iter);
-
- }}} // namespaces
-
-[h4 Description]
-
-These functions all perform iterative root finding using derivatives:
-
-* `newton_raphson_iterate` performs second order
-[link newton Newton-Raphson iteration],
-
-* `halley_iterate` and`schroeder_iterate` perform third order
-[link halley Halley] and [link schroeder Schroeder] iteration.
-
-The functions all take the same parameters:
-
-[variablelist Parameters of the root finding functions
-[[F f] [Type F must be a callable function object that accepts one parameter and
- returns a __tuple:
-
-For the second order iterative methods ([@http://en.wikipedia.org/wiki/Newton_Raphson Newton Raphson])
- the __tuple should have *two* elements containing the evaluation
- of the function and its first derivative.
-
-For the third order methods
-([@http://en.wikipedia.org/wiki/Halley%27s_method Halley] and
-Schroeder)
- the __tuple should have *three* elements containing the evaluation of
- the function and its first and second derivatives.]]
-[[T guess] [The initial starting value. A good guess is crucial to quick convergence!]]
-[[T min] [The minimum possible value for the result, this is used as an initial lower bracket.]]
-[[T max] [The maximum possible value for the result, this is used as an initial upper bracket.]]
-[[int digits] [The desired number of binary digits.]]
-[[uintmax_t max_iter] [An optional maximum number of iterations to perform.
-]]
-]
-
-When using these functions you should note that:
-
-* Default max_iter = `(std::numeric_limits<boost::uintmax_t>::max)()` is effectively 'iterate for ever'!.
-* 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.
-* 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 ['of the correct sign] rather
-than zero.
-* 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.
-* 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 `numeric_limits<T>::max()`.
-*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.
-* 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.
-* The value of /digits/ 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 /digits/ 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, /digits/ should be set by experiment so that the final
-iteration just takes the next value into the zone where f(x) becomes inaccurate.
-* To get the binary digits of accuracy, use policies::get_max_root_iterations<Policy>()).
-* If you need some diagnostic output to see what is going on, you can
-`#define BOOST_MATH_INSTRUMENT` before the `#include <boost/math/tools/roots.hpp>`,
-and also ensure that display of all the possibly significant digits with
-` cout.precision(std::numeric_limits<double>::max_digits10)`:
-but be warned, this may produce copious output!
-* 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.
-
-[#newton]
-[h4 Newton Raphson Method]
-Given an initial guess x0 the subsequent values are computed using:
-
-[equation roots1]
-
-Out of bounds steps revert to bisection of the current bounds.
-
-Under ideal conditions, the number of correct digits doubles with each iteration.
-
-[#halley]
-[h4 Halley's Method]
-
-Given an initial guess x0 the subsequent values are computed using:
-
-[equation roots2]
-
-Over-compensation by the second derivative (one which would proceed
-in the wrong direction) causes the method to
-revert to a Newton-Raphson step.
-
-Out of bounds steps revert to bisection of the current bounds.
-
-Under ideal conditions, the number of correct digits trebles with each iteration.
-
-[#schroeder]
-[h4 Schroeder's Method]
-
-Given an initial guess x0 the subsequent values are computed using:
-
-[equation roots3]
-
-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%.
-
-Out of bounds steps revert to bisection of the current bounds.
-
-Under ideal conditions, the number of correct digits trebles with each iteration.
-
-[h4 Example]
-
-Let's suppose we want to find the cube root of a number: the equation we want to
-solve along with its derivatives are:
-
-[equation roots4]
-
-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):
-
- template <class T>
- struct cbrt_functor
- {
- cbrt_functor(T const& target) : a(target)
- { // Constructor stores value to be 'cube-rooted'.
- }
- ``__tuple``<T, T> operator()(T const& z)
- { // z is estimate so far.
- return boost::math::make_tuple(
- z*z*z - a, // return both f(x)
- 3 * z*z); // and f'(x)
- }
- private:
- T a; // to be 'cube-rooted'.
- };
-
-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:
-
- template <class T>
- T cbrt(T z)
- {
- using namespace std; // for frexp, ldexp, numeric_limits.
- using namespace boost::math::tools;
-
- int exp;
- frexp(z, &exp); // Get exponent of z (ignore mantissa).
- T min = ldexp(0.5, exp/3);
- T max = ldexp(2.0, exp/3);
- T guess = ldexp(1.0, exp/3); // Rough guess is to divide the exponent by three.
- int digits = std::numeric_limits<T>::digits; // Maximum possible binary digits accuracy for type T.
- return newton_raphson_iterate(detail::cbrt_functor<T>(z), guess, min, max, digits);
- }
-
-Using the test data in `libs/math/test/cbrt_test.cpp` 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 `std::numeric_limits<T>::digits * 2 / 3` 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.
-
-Note also that the above code omits a probably optimization by computing z[sup2],
-and reusing it, omits error handling, and does not handle
-negative values of z correctly. (These are left as an exercise for the reader!)
-
-The `boost::math::cbrt` function also includes these and other improvements.
-
-Now let's adapt the functor slightly to return the second derivative as well:
-
- template <class T>
- struct cbrt_functor
- {
- cbrt_functor(T const& target) : a(target){}
- ``__tuple``<T, T, T> operator()(T const& z)
- {
- return boost::math::make_tuple(
- z*z*z - a,
- 3 * z*z,
- 6 * z);
- }
- private:
- T a;
- };
-
-And then adapt the `cbrt` function to use Halley iterations:
-
- template <class T>
- T cbrt(T z)
- {
- using namespace std;
- using namespace boost::math::tools;
-
- int exp;
- frexp(z, &exp);
- T min = ldexp(0.5, exp/3);
- T max = ldexp(2.0, exp/3);
- T guess = ldexp(1.0, exp/3);
- int digits = std::numeric_limits<T>::digits / 2;
- return halley_iterate(detail::cbrt_functor<T>(z), guess, min, max, digits);
- }
-
-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.
-
-Just to complete the picture, we could have called `schroeder_iterate` 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".
-
-Finally, had we called `cbrt` with [@http://shoup.net/ntl/doc/RR.txt 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.
-
-Or to put it another way: ['nothing beats a really good initial guess!]
-
-[endsect] [/section:roots Root Finding With Derivatives]
-
-[/
- Copyright 2006, 2010, 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/roots_without_derivatives.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/roots_without_derivatives.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,425 +0,0 @@
-[section:roots2 Root Finding Without Derivatives: Bisection, Bracket and TOMS748]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/tools/roots.hpp>
-``
-
- namespace boost{ namespace math{
- namespace tools{
- // Bisection
- template <class F, class T, class Tol>
- std::pair<T, T>
- bisect(
- F f,
- T min,
- T max,
- Tol tol,
- boost::uintmax_t& max_iter);
-
- template <class F, class T, class Tol>
- std::pair<T, T>
- bisect(
- F f,
- T min,
- T max,
- Tol tol);
-
- template <class F, class T, class Tol, class ``__Policy``>
- std::pair<T, T>
- bisect(
- F f,
- T min,
- T max,
- Tol tol,
- boost::uintmax_t& max_iter,
- const ``__Policy``&);
-
- // Bracket and Solve Root
- template <class F, class T, class Tol>
- std::pair<T, T>
- bracket_and_solve_root(
- F f,
- const T& guess,
- const T& factor,
- bool rising,
- Tol tol,
- boost::uintmax_t& max_iter);
-
- template <class F, class T, class Tol, class ``__Policy``>
- std::pair<T, T>
- bracket_and_solve_root(
- F f,
- const T& guess,
- const T& factor,
- bool rising,
- Tol tol,
- boost::uintmax_t& max_iter,
- const ``__Policy``&);
-
- // TOMS 748 algorithm
- template <class F, class T, class Tol>
- std::pair<T, T>
- toms748_solve(
- F f,
- const T& a,
- const T& b,
- Tol tol,
- boost::uintmax_t& max_iter);
-
- template <class F, class T, class Tol, class ``__Policy``>
- std::pair<T, T>
- toms748_solve(
- F f,
- const T& a,
- const T& b,
- Tol tol,
- boost::uintmax_t& max_iter,
- const ``__Policy``&);
-
- template <class F, class T, class Tol>
- std::pair<T, T>
- toms748_solve(
- F f,
- const T& a,
- const T& b,
- const T& fa,
- const T& fb,
- Tol tol,
- boost::uintmax_t& max_iter);
-
- template <class F, class T, class Tol, class ``__Policy``>
- std::pair<T, T>
- toms748_solve(
- F f,
- const T& a,
- const T& b,
- const T& fa,
- const T& fb,
- Tol tol,
- boost::uintmax_t& max_iter,
- const ``__Policy``&);
-
- // Termination conditions:
- template <class T>
- struct eps_tolerance;
-
- struct equal_floor;
- struct equal_ceil;
- struct equal_nearest_integer;
-
- }}} // namespaces
-
-[h4 Description]
-
-These functions solve the root of some function /f(x)/ ['without the
-need for any derivatives of /f(x)/].
-
-The `bracket_and_solve_root` 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.
-
-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.
-
-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 /never/
-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 [@http://en.wikipedia.org/wiki/Brent%27s_method Brent or Dekker)]
-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:
-/eps_tolerance/ causes termination when the relative error in the enclosing
-interval is below a certain threshold, while /equal_floor/ and /equal_ceil/ 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.
-
-[h6 Bisection]
-
- template <class F, class T, class Tol>
- std::pair<T, T>
- bisect(
- F f,
- T min,
- T max,
- Tol tol,
- boost::uintmax_t& max_iter);
-
- template <class F, class T, class Tol>
- std::pair<T, T>
- bisect(
- F f,
- T min,
- T max,
- Tol tol);
-
- template <class F, class T, class Tol, class ``__Policy``>
- std::pair<T, T>
- bisect(
- F f,
- T min,
- T max,
- Tol tol,
- boost::uintmax_t& max_iter,
- const ``__Policy``&);
-
-These functions locate the root using bisection: function arguments are:
-
-[variablelist
-[[f] [A unary functor which is the function whose root is to be found.]]
-[[min] [The left bracket of the interval known to contain the root.]]
-[[max] [The right bracket of the interval known to contain the root.
- It is a precondition that /min < max/ and /f(min)*f(max) <= 0/,
- 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.]]
-[[tol] [A binary functor that specifies the termination condition: the function
- will return the current brackets enclosing the root when /tol(min,max)/ becomes true.]]
-[[max_iter][The maximum number of invocations of /f(x)/ to make while searching for the root.]]
-]
-
-[optional_policy]
-
-Returns: a pair of values /r/ 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 /m/ is the initial value of /max_iter/ passed to the function.
-
-In other words, it's up to the caller to verify whether termination occurred
-as a result of exceeding /max_iter/ function invocations (easily done by
-checking the updated value of /max_iter/ when the function returns), rather than
-because the termination condition /tol/ was satisfied.
-
-[h6 Bracket and solve]
-
- template <class F, class T, class Tol>
- std::pair<T, T>
- bracket_and_solve_root(
- F f,
- const T& guess,
- const T& factor,
- bool rising,
- Tol tol,
- boost::uintmax_t& max_iter);
-
- template <class F, class T, class Tol, class ``__Policy``>
- std::pair<T, T>
- bracket_and_solve_root(
- F f,
- const T& guess,
- const T& factor,
- bool rising,
- Tol tol,
- boost::uintmax_t& max_iter,
- const ``__Policy``&);
-
-This is a convenience function that calls /toms748_solve/ internally
-to find the root of /f(x)/. It's usable only when /f(x)/ 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
-/x/. The parameters are:
-
-[variablelist
-[[f][A unary functor that is the function whose root is to be solved.
- f(x) must be uniformly increasing or decreasing on /x/.]]
-[[guess][An initial approximation to the root]]
-[[factor][A scaling factor that is used to bracket the root: the value
- /guess/ is multiplied (or divided as appropriate) by /factor/
- until two values are found that bracket the root. A value
- such as 2 is a typical choice for /factor/.]]
-[[rising][Set to /true/ if /f(x)/ is rising on /x/ and /false/ if /f(x)/
- is falling on /x/. This value is used along with the result
- of /f(guess)/ to determine if /guess/ is
- above or below the root.]]
-[[tol] [A binary functor that determines the termination condition for the search
- for the root. /tol/ is passed the current brackets at each step,
- when it returns true then the current brackets are returned as the result.]]
-[[max_iter] [The maximum number of function invocations to perform in the search
- for the root.]]
-]
-
-[optional_policy]
-
-Returns: a pair of values /r/ 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 /m/ is the initial value of /max_iter/ passed to the function.
-
-In other words, it's up to the caller to verify whether termination occurred
-as a result of exceeding /max_iter/ function invocations (easily done by
-checking the value of /max_iter/ when the function returns), rather than
-because the termination condition /tol/ was satisfied.
-
-[h6 Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions]
-
- template <class F, class T, class Tol>
- std::pair<T, T>
- toms748_solve(
- F f,
- const T& a,
- const T& b,
- Tol tol,
- boost::uintmax_t& max_iter);
-
- template <class F, class T, class Tol, class ``__Policy``>
- std::pair<T, T>
- toms748_solve(
- F f,
- const T& a,
- const T& b,
- Tol tol,
- boost::uintmax_t& max_iter,
- const ``__Policy``&);
-
- template <class F, class T, class Tol>
- std::pair<T, T>
- toms748_solve(
- F f,
- const T& a,
- const T& b,
- const T& fa,
- const T& fb,
- Tol tol,
- boost::uintmax_t& max_iter);
-
- template <class F, class T, class Tol, class ``__Policy``>
- std::pair<T, T>
- toms748_solve(
- F f,
- const T& a,
- const T& b,
- const T& fa,
- const T& fb,
- Tol tol,
- boost::uintmax_t& max_iter,
- const ``__Policy``&);
-
-These two functions implement TOMS Algorithm 748: it uses a mixture of
-cubic, quadratic and linear (secant) interpolation to locate the root of
-/f(x)/. The two functions differ only by whether values for /f(a)/ and
-/f(b)/ are already available. The toms748_solve parameters are:
-
-[variablelist
-[[f] [A unary functor that is the function whose root is to be solved.
- f(x) need not be uniformly increasing or decreasing on /x/ and
- may have multiple roots.]]
-[[a] [ The lower bound for the initial bracket of the root.]]
-[[b] [The upper bound for the initial bracket of the root.
- It is a precondition that /a < b/ and that /a/ and /b/
- bracket the root to find so that /f(a)*f(b) < 0/.]]
-[[fa] [Optional: the value of /f(a)/.]]
-[[fb] [Optional: the value of /f(b)/.]]
-[[tol] [A binary functor that determines the termination condition for the search
- for the root. /tol/ is passed the current brackets at each step,
- when it returns true, then the current brackets are returned as the result.]]
-[[max_iter] [The maximum number of function invocations to perform in the search
- for the root. On exit /max_iter/ is set to actual number of function
- invocations used.]]
-]
-
-[optional_policy]
-
-toms748_solve returns: a pair of values /r/ 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 /m/ is the initial value of /max_iter/ passed to the function.
-
-In other words, it's up to the caller to verify whether termination occurred
-as a result of exceeding /max_iter/ function invocations (easily done by
-checking the updated value of /max_iter/
-against its previous value passed as parameter),
-rather than because the termination condition /tol/ was satisfied.
-
- template <class T>
- struct eps_tolerance
- {
- eps_tolerance(int bits);
- bool operator()(const T& a, const T& b)const;
- };
-
-`eps_tolerance` is the usual termination condition used with these root finding functions.
-Its operator() will return true when the relative distance between /a/ and /b/
-is less than twice the machine epsilon for T, or 2[super 1-bits], whichever is
-the larger. In other words, you set /bits/ 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.
-
- struct equal_floor
- {
- equal_floor();
- template <class T> bool operator()(const T& a, const T& b)const;
- };
-
-This termination condition is used when you want to find an integer result
-that is the /floor/ of the true root. It will terminate as soon as both ends
-of the interval have the same /floor/.
-
- struct equal_ceil
- {
- equal_ceil();
- template <class T> bool operator()(const T& a, const T& b)const;
- };
-
-This termination condition is used when you want to find an integer result
-that is the /ceil/ of the true root. It will terminate as soon as both ends
-of the interval have the same /ceil/.
-
- struct equal_nearest_integer
- {
- equal_nearest_integer();
- template <class T> bool operator()(const T& a, const T& b)const;
- };
-
-This termination condition is used when you want to find an integer result
-that is the /closest/ to the true root. It will terminate as soon as both ends
-of the interval round to the same nearest integer.
-
-[h4 Implementation]
-
-The implementation of the bisection algorithm is extremely straightforward
-and not detailed here. __TOMS748 is described in detail in:
-
-['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.]
-
-The implementation here is a faithful translation of this paper into C++.
-
-[endsect] [/section:roots2 Root Finding Without Derivatives]
-
-[/
- Copyright 2006, 2010 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/rounding_func.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/rounding_func.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,129 +0,0 @@
-
-[section:rounding Rounding Truncation and Integer Conversion]
-
-[section:round Rounding Functions]
-
-``#include <boost/math/special_functions/round.hpp>``
-
- template <class T>
- T round(const T& v);
-
- template <class T, class Policy>
- T round(const T& v, const Policy&);
-
- template <class T>
- int iround(const T& v);
-
- template <class T, class Policy>
- int iround(const T& v, const Policy&);
-
- template <class T>
- long lround(const T& v);
-
- template <class T, class Policy>
- long lround(const T& v, const Policy&);
-
- template <class T>
- long long llround(const T& v);
-
- template <class T, class Policy>
- long long llround(const T& v, const Policy&);
-
-These functions return the closest integer to the argument /v/.
-
-Halfway cases are rounded away from zero, regardless of the current rounding
-direction.
-
-If the argument /v/ is either non-finite or else outside the range
-of the result type, then returns the result of __rounding_error: by
-default this throws an instance of boost::math::rounding_error.
-
-[endsect]
-
-[section:trunc Truncation Functions]
-
-``#include <boost/math/special_functions/trunc.hpp>``
-
- template <class T>
- T trunc(const T& v);
-
- template <class T, class Policy>
- T trunc(const T& v, const Policy&);
-
- template <class T>
- int itrunc(const T& v);
-
- template <class T, class Policy>
- int itrunc(const T& v, const Policy&);
-
- template <class T>
- long ltrunc(const T& v);
-
- template <class T, class Policy>
- long ltrunc(const T& v, const Policy&);
-
- template <class T>
- long long lltrunc(const T& v);
-
- template <class T, class Policy>
- long long lltrunc(const T& v, const Policy&);
-
-The trunc functions round their argument to the integer value,
-nearest to but no larger in magnitude than the argument.
-
-For example `itrunc(3.7)` would return `3` and `ltrunc(-4.6)`
-would return `-4`.
-
-If the argument /v/ is either non-finite or else outside the range
-of the result type, then returns the result of __rounding_error: by
-default this throws an instance of boost::math::rounding_error.
-
-[endsect]
-
-[section:modf Integer and Fractional Part Splitting (modf)]
-
-``#include <boost/math/special_functions/modf.hpp>``
-
- template <class T>
- T modf(const T& v, T* ipart);
-
- template <class T, class Policy>
- T modf(const T& v, T* ipart, const Policy&);
-
- template <class T>
- T modf(const T& v, int* ipart);
-
- template <class T, class Policy>
- T modf(const T& v, int* ipart, const Policy&);
-
- template <class T>
- T modf(const T& v, long* ipart);
-
- template <class T, class Policy>
- T modf(const T& v, long* ipart, const Policy&);
-
- template <class T>
- T modf(const T& v, long long* ipart);
-
- template <class T, class Policy>
- T modf(const T& v, long long* ipart, const Policy&);
-
-The `modf` functions store the integer part of /v/ in `*ipart`
-and return the fractional part of /v/. The sign of the integer
-and fractional parts are the same as the sign of /v/.
-
-If the argument /v/ is either non-finite or else outside the range
-of the result type, then returns the result of __rounding_error: by
-default this throws an instance of boost::math::rounding_error.
-
-[endsect]
-
-
-[endsect] [/section:rounding Rounding Truncation and Integer Conversion]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/series.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/series.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,141 +0,0 @@
-[section:series_evaluation Series Evaluation]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/tools/series.hpp>
-``
-
- namespace boost{ namespace math{ namespace tools{
-
- template <class Functor, class U, class V>
- inline typename Functor::result_type sum_series(Functor& func, const U& tolerance, boost::uintmax_t& max_terms, const V& init_value);
-
- template <class Functor, class U, class V>
- inline typename Functor::result_type sum_series(Functor& func, const U& tolerance, boost::uintmax_t& max_terms);
-
- //
- // The following interfaces are now deprecated:
- //
- template <class Functor>
- typename Functor::result_type sum_series(Functor& func, int bits);
-
- template <class Functor>
- typename Functor::result_type sum_series(Functor& func, int bits, boost::uintmax_t& max_terms);
-
- template <class Functor, class U>
- typename Functor::result_type sum_series(Functor& func, int bits, U init_value);
-
- template <class Functor, class U>
- typename Functor::result_type sum_series(Functor& func, int bits, boost::uintmax_t& max_terms, U init_value);
-
- template <class Functor>
- typename Functor::result_type kahan_sum_series(Functor& func, int bits);
-
- template <class Functor>
- typename Functor::result_type kahan_sum_series(Functor& func, int bits, boost::uintmax_t& max_terms);
-
- }}} // namespaces
-
-[h4 Description]
-
-These algorithms are intended for the
-[@http://en.wikipedia.org/wiki/Series_%28mathematics%29 summation of infinite series].
-
-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.
-
-The second argument is the precision required,
-summation will stop when the next term is less than
-/tolerance/ 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.
-
-The third argument /max_terms/ sets an upper limit on the number
-of terms of the series to evaluate. In addition, on exit the function will
-set /max_terms/ 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.
-
-The final optional argument /init_value/ is the initial value of the sum
-to which the terms of the series should be added. This is useful in two situations:
-
-* 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.
-* 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 /1 - S(z)/ 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 /1 - S(z)/.
-
-The two /kahan_sum_series/ variants of these algorithms maintain a carry term
-that corrects for roundoff error during summation.
-They are inspired by the
-[@http://en.wikipedia.org/wiki/Kahan_Summation_Algorithm /Kahan Summation Formula/]
-that appears in
-[@http://docs.sun.com/source/806-3568/ncg_goldberg.html What Every Computer Scientist Should Know About Floating-Point Arithmetic].
-However, it should be pointed out that there are very few series that require
-summation in this way.
-
-[h4 Example]
-
-Let's suppose we want to implement /log(1+x)/ via its infinite series,
-
-[equation log1pseries]
-
-We begin by writing a small function object to return successive terms
-of the series:
-
- template <class T>
- struct log1p_series
- {
- // we must define a result_type typedef:
- typedef T result_type;
-
- log1p_series(T x)
- : k(0), m_mult(-x), m_prod(-1){}
-
- T operator()()
- {
- // This is the function operator invoked by the summation
- // algorithm, the first call to this operator should return
- // the first term of the series, the second call the second
- // term and so on.
- m_prod *= m_mult;
- return m_prod / ++k;
- }
-
- private:
- int k;
- const T m_mult;
- T m_prod;
- };
-
-Implementing log(1+x) is now fairly trivial:
-
- template <class T>
- T log1p(T x)
- {
- // We really should add some error checking on x here!
- assert(std::fabs(x) < 1);
-
- // Construct the series functor:
- log1p_series<T> s(x);
- // Set a limit on how many iterations we permit:
- boost::uintmax_t max_iter = 1000;
- // Add it up, with enough precision for full machine precision:
- return tools::sum_series(s, std::numeric_limits<T>::epsilon(), max_iter);
- }
-
-[endsect][/section Series Evaluation]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/sign.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/sign.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,137 +0,0 @@
-[section:sign_functions Sign Manipulation Functions]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/special_functions/sign.hpp>
-``
-
- namespace boost{ namespace math{
-
- template<class T>
- int signbit(T x);
-
- template <class T>
- int sign (const T& z);
-
- template <class T, class U>
- T copysign (const T& x, const U& y);
-
- template <class T>
- ``__sf_result`` changesign (const T& z);
-
- }} // namespaces
-
-[h4 Description]
-
- template<class T>
- int signbit(T x);
-
-Returns a non-zero value if the sign bit is set in variable /x/, otherwise `0`.
-
-[important The return value from this function is zero or /not-zero/ and [*not] zero or one.]
-
- template <class T>
- int sign (const T& z);
-
-Returns `1` if /x/ `> 0`, `-1` if /x/ `< 0`, and `0` if /x/ is zero.
-
- template <class T, class U>
- ``__sf_result`` copysign (const T& x, const U& y);
-
-Sets the sign of /x/ to be the same as the sign of /y/.
-
-See [@http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf C99 7.12.11.1 The copysign functions]
-for more detail.
-
- template <class T>
- T changesign (const T& z);
-
-Returns a floating point number with a binary representation
-where the signbit is the opposite of the sign bit in /x/,
-and where the other bits are the same as in /x/.
-
-This function is widely available, but not specified in any standards.
-
-Rationale: Not specified by TR1, but `changesign(x)`
-is both easier to read and more efficient than
-
- copysign(x, signbit(x) ? 1.0 : -1.0);
-
-For finite values, this function has the same effect as simple negation,
-the assignment z = -z, but for nonfinite values,
-[@http://en.wikipedia.org/wiki/Infinity#Computing infinities]
-and [@http://en.wikipedia.org/wiki/NaN NaNs],
-the `changesign(x)` function may be the only portable way
-to ensure that the sign bit is changed.
-
-[h5 Sign bits]
-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.)
-
-[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf C++ TR1]
-specifies `copysign` functions and function templates for accessing the sign bit.
-
-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.
-
-[h5 Examples]
-
- signbit(3.5) is zero (or false)
- signbit(-7.1) is 1 (or true)
- copysign(4.2, 7.9) is 4.2
- copysign(3.5 -1.4) is -3.5
- copysign(-4.2, 1.0) is 4.2
- copysign(-8.6, -3.3) is -8.6
- changesign(6.9) is -6.9
- changesign(-1.8) is 1.8
-
-[h5 Portability]
-
-The library supports the following binary floating-point formats:
-
-* IEEE 754 single precision
-* IEEE 754 double precision
-* IEEE 754 extended double precision with 15 exponent bits
-* Intel extended double precision
-* PowerPC extended double precision
-* Motorola 68K extended double precision
-
-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.)
-
-The main portability issues are:
-
-* Unsupported floating point formats
-* The library depends on the header boost/detail/endian.hpp
-* Code such as `#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)`
-is used to determine the processor type.
-
-The library has passed all tests on the following platforms:
-
-* Win32 / MSVC 7.1 / 10.0 / x86
-* Win32 / Intel C++ 7.1, 8.1, 9.1 / x86
-* Mac OS X / GCC 3.3, 4.0 / ppc
-* Linux / Intel C++ 9.1 / x86, ia64
-* Linux / GCC 3.3 / x86, x64, ia64, ppc, hppa, mips, m68k
-* Linux / GCC 3.4 / x64
-* HP-UX / aCC, GCC 4.1 / ia64
-* HP-UX / aCC / hppa
-* Tru64 / Compaq C++ 7.1 / alpha
-* VMS / HP C++ 7.1 / alpha (in IEEE floating point mode)
-* VMS / HP C++ 7.2 / ia64 (in IEEE floating point mode)
-
-[endsect][/section:sign_functions Sign Manipulation Functions]
-[/
- Copyright 2006 John Maddock and Paul A. Bristow 2011.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/structure.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/structure.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,193 +0,0 @@
-[section:navigation Navigation]
-
-[indexterm1 navigation]
-
-Boost.Math documentation is provided in both HTML and PDF formats.
-
-* [*Tutorials] are listed in the ['Table of Contents] and
-include many examples that should help you get started quickly.
-* [*Source code] of the many ['Examples] will often be your quickest starting point.
-* [*Index] (general) includes all entries.
-* [*Specific Indexes] list only functions, class signatures, macros and typedefs.
-
-[h5 Using the Indexes]
-
-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.
-
-[tip When using the index, keep in mind that clicking on an index term
-only takes you to the [*section] containing the index entry.
-This section may be several pages long,
-so you may need to use the [*find] facility of your browser or PDF reader
-to get to the index term itself.]
-
-[tip A PDF reader usually allows a [*global] 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.]
-
-[endsect] [/section:navigation Navigation]
-
-[section:conventions Document Conventions]
-
-[indexterm1 conventions]
-
-This documentation aims to use of the following naming and formatting conventions.
-
-* C++ Code is in `fixed width font` and is syntax-highlighted in color, for example `double`.
-* Other code is in block [^teletype fixed-width font].
-* Replaceable text that [*you] will need to supply is in [~italics].
-* If a name refers to a free function, it is specified like this:
- `free_function()`; that is, it is in [~code font] and its name is followed by `()`
- to indicate that it is a free function.
-* If a name refers to a class template, it is specified like this:
- `class_template<>`; that is, it is in code font and its name is followed by `<>`
- to indicate that it is a class template.
-* If a name refers to a function-like macro, it is specified like this: `MACRO()`;
- that is, it is uppercase in code font and its name is followed by `()` to
- indicate that it is a function-like macro. Object-like macros appear without the
- trailing `()`.
-* Names that refer to ['concepts] in the generic programming sense
-(like template parameter names) are specified in CamelCase.
-
-
-[endsect] [/section:conventions Document Conventions]
-
-[section:hints Other Hints and tips]
-
-* If you have a feature request,
-or if it appears that the implementation is in error,
-please search first in the [@https://svn.boost.org/trac/boost/ Boost Trac].
-
-* [@https://svn.boost.org/trac/boost/ Trac] entries may indicate that
-updates or corrections that solve your problem are in
-[@http://svn.boost.org/svn/boost/trunk 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.
-
-* If you do not understand why things work the way they do, see the ['rationale] section.
-
-* 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.
-
-[h5 Admonishments]
-
-[note In addition, notes such as this one specify non-essential information that
-provides additional background or rationale.]
-
-[tip These blocks contain information that you may find helpful while coding.]
-
-[important 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.]
-
-[warning Failure to heed this will lead to incorrect,
-and very likely undesired, results.]
-
-[endsect] [/section:hints Other Hints and tips]
-
-
-[section:directories Directory and File Structure]
-
-[h4 boost\/math]
-
-[variablelist
-[[\/concepts\/]
- [Prototype defining the *essential* features of a RealType
- class (see real_concept.hpp). Most applications will use `double`
- as the RealType (and short `typedef` names of distributions are
- reserved for this type where possible), a few will use `float` or
- `long double`, but it is also possible to use higher precision types
- like __NTL_RR, __GMP, __MPFR
-that conform to the requirements specified by real_concept.]]
-
-[[\/constants\/]
- [Templated definition of some highly accurate math
- constants (in constants.hpp).]]
-
-[[\/distributions\/]
- [Distributions used in mathematics and, especially, statistics:
- Gaussian, Students-t, Fisher, Binomial etc]]
-
-[[\/policies\/]
- [Policy framework, for handling user requested behaviour modifications.]]
-
-[[\/special_functions\/]
- [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).]]
-
-[[\/tools\/]
- [Tools used by functions, like evaluating polynomials, continued fractions,
- root finding, precision and limits, and by tests. Some will
- find application outside this package.]]
-]
-
-[h4 boost\/libs]
-
-[variablelist
-[[\/doc\/]
- [Documentation source files in Quickbook format processed into
- html and pdf formats.]]
-
-[[\/examples\/]
- [Examples and demos of using math functions and distributions.]]
-
-[[\/performance\/]
- [Performance testing and tuning program.]]
-
-[[\/test\/]
- [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).]]
-
-[[\/tools\/]
- [Programs used to generate test data. Also changes to the
- [@http://shoup.net/ntl/ NTL] released package to provide a few additional
- (and vital) extra features.]]
-]
-
-[endsect] [/section:directories Directory and File Structure]
-
-[section:namespaces Namespaces]
-
-All math functions and distributions are in `namespace boost::math`
-
-So, for example, the Students-t distribution template in `namespace boost::math` is
-
- template <class RealType> class students_t_distribution
-
-and can be instantiated with the help of the reserved name `students_t`(for `RealType double`)
-
- typedef students_t_distribution<double> students_t;
-
- student_t mydist(10);
-
-[warning 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: `using boost::math::students_t_distribution`]
-
-Functions not intended for use by applications are in `boost::math::detail`.
-
-Functions that may have more general use, like `digits`
-(significand), `max_value`, `min_value` and `epsilon` are in
-`boost::math::tools`.
-
-__Policy and configuration information is in namespace `boost::math::policies`.
-
-[tip Many code snippets assume implicit namespace(s),
-for example, `std::` or `boost::math`.]
-
-
-[endsect] [/section:namespaces Namespaces]
-
-
-[/ structure.qbk
- Copyright 2006, 2010, 2012 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/test_data.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/test_data.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,438 +0,0 @@
-[section:test_data Graphing, Profiling, and Generating Test Data for Special Functions]
-
-The class `test_data` and associated helper functions are designed so that in just
-a few lines of code you should be able to:
-
-* Profile a continued fraction, or infinite series for convergence and accuracy.
-* Generate csv data from a special function that can be imported into your favorite
-graphing program (or spreadsheet) for further analysis.
-* Generate high precision test data.
-
-[h4 Synopsis]
-
- namespace boost{ namespace math{ namespace tools{
-
- enum parameter_type
- {
- random_in_range = 0,
- periodic_in_range = 1,
- power_series = 2,
- dummy_param = 0x80,
- };
-
- template <class T>
- struct parameter_info;
-
- template <class T>
- parameter_info<T> make_random_param(T start_range, T end_range, int n_points);
-
- template <class T>
- parameter_info<T> make_periodic_param(T start_range, T end_range, int n_points);
-
- template <class T>
- parameter_info<T> make_power_param(T basis, int start_exponent, int end_exponent);
-
- template <class T>
- bool get_user_parameter_info(parameter_info<T>& info, const char* param_name);
-
- template <class T>
- class test_data
- {
- public:
- typedef std::vector<T> row_type;
- typedef row_type value_type;
- private:
- typedef std::set<row_type> container_type;
- public:
- typedef typename container_type::reference reference;
- typedef typename container_type::const_reference const_reference;
- typedef typename container_type::iterator iterator;
- typedef typename container_type::const_iterator const_iterator;
- typedef typename container_type::difference_type difference_type;
- typedef typename container_type::size_type size_type;
-
- // creation:
- test_data(){}
- template <class F>
- test_data(F func, const parameter_info<T>& arg1);
-
- // insertion:
- template <class F>
- test_data& insert(F func, const parameter_info<T>& arg1);
-
- template <class F>
- test_data& insert(F func, const parameter_info<T>& arg1,
- const parameter_info<T>& arg2);
-
- template <class F>
- test_data& insert(F func, const parameter_info<T>& arg1,
- const parameter_info<T>& arg2,
- const parameter_info<T>& arg3);
-
- void clear();
-
- // access:
- iterator begin();
- iterator end();
- const_iterator begin()const;
- const_iterator end()const;
- bool operator==(const test_data& d)const;
- bool operator!=(const test_data& d)const;
- void swap(test_data& other);
- size_type size()const;
- size_type max_size()const;
- bool empty()const;
-
- bool operator < (const test_data& dat)const;
- bool operator <= (const test_data& dat)const;
- bool operator > (const test_data& dat)const;
- bool operator >= (const test_data& dat)const;
- };
-
- template <class charT, class traits, class T>
- std::basic_ostream<charT, traits>& write_csv(
- std::basic_ostream<charT, traits>& os,
- const test_data<T>& data);
-
- template <class charT, class traits, class T>
- std::basic_ostream<charT, traits>& write_csv(
- std::basic_ostream<charT, traits>& os,
- const test_data<T>& data,
- const charT* separator);
-
- template <class T>
- std::ostream& write_code(std::ostream& os,
- const test_data<T>& data,
- const char* name);
-
- }}} // namespaces
-
-[h4 Description]
-
-This tool is best illustrated with the following series of examples.
-
-The functionality of test_data is split into the following parts:
-
-* A functor that implements the function for which data is being generated:
-this is the bit you have to write.
-* 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 /this/ etc.
-* 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.
-* 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).
-
-[h5 Example 1: Output Data for Graph Plotting]
-
-For example, lets say we want to graph the lgamma function between -3 and 100,
-one could do this like so:
-
- #include <boost/math/tools/test_data.hpp>
- #include <boost/math/special_functions/gamma.hpp>
-
- int main()
- {
- using namespace boost::math::tools;
-
- // create an object to hold the data:
- test_data<double> data;
-
- // insert 500 points at uniform intervals between just after -3 and 100:
- double (*pf)(double) = boost::math::lgamma;
- data.insert(pf, make_periodic_param(-3.0 + 0.00001, 100.0, 500));
-
- // print out in csv format:
- write_csv(std::cout, data, ", ");
- return 0;
- }
-
-Which, when plotted, results in:
-
-[graph lgamma]
-
-[h5 Example 2: Creating Test Data]
-
-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.
-
-In this example we'll generate test data for the beta function using
-[@http://shoup.net/ntl/doc/RR.txt 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.
-
-To start with then, here's the function object that creates the test data:
-
- #include <boost/math/tools/ntl.hpp>
- #include <boost/math/special_functions/gamma.hpp>
- #include <boost/math/tools/test_data.hpp>
- #include <fstream>
-
- #include <boost/math/tools/test_data.hpp>
-
- using namespace boost::math::tools;
-
- struct beta_data_generator
- {
- NTL::RR operator()(NTL::RR a, NTL::RR b)
- {
- //
- // If we throw a domain error then test_data will
- // ignore this input point. We'll use this to filter
- // out all cases where a < b since the beta function
- // is symmetrical in a and b:
- //
- if(a < b)
- throw std::domain_error("");
-
- // very naively calculate spots with lgamma:
- NTL::RR g1, g2, g3;
- int s1, s2, s3;
- g1 = boost::math::lgamma(a, &s1);
- g2 = boost::math::lgamma(b, &s2);
- g3 = boost::math::lgamma(a+b, &s3);
- g1 += g2 - g3;
- g1 = exp(g1);
- g1 *= s1 * s2 * s3;
- return g1;
- }
- };
-
-To create the data, we'll need to input the domains for a and b
-for which the function will be tested: the function `get_user_parameter_info`
-is designed for just that purpose. The start of main will look something like:
-
- // Set the precision on RR:
- NTL::RR::SetPrecision(1000); // bits.
- NTL::RR::SetOutputPrecision(40); // decimal digits.
-
- parameter_info<NTL::RR> arg1, arg2;
- test_data<NTL::RR> data;
-
- std::cout << "Welcome.\n"
- "This program will generate spot tests for the beta function:\n"
- " beta(a, b)\n\n";
-
- bool cont;
- std::string line;
-
- do{
- // prompt the user for the domain of a and b to test:
- get_user_parameter_info(arg1, "a");
- get_user_parameter_info(arg2, "b");
-
- // create the data:
- data.insert(beta_data_generator(), arg1, arg2);
-
- // see if the user want's any more domains tested:
- std::cout << "Any more data [y/n]?";
- std::getline(std::cin, line);
- boost::algorithm::trim(line);
- cont = (line == "y");
- }while(cont);
-
-[caution 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 ['million test points in total].
-Don't say you weren't warned!]
-
-There's just one final step now, and that's to write the test data to file:
-
- std::cout << "Enter name of test data file [default=beta_data.ipp]";
- std::getline(std::cin, line);
- boost::algorithm::trim(line);
- if(line == "")
- line = "beta_data.ipp";
- std::ofstream ofs(line.c_str());
- write_code(ofs, data, "beta_data");
-
-The format of the test data looks something like:
-
- #define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 3>, 1830>
- beta_med_data = {
- SC_(0.4883005917072296142578125),
- SC_(0.4883005917072296142578125),
- SC_(3.245912809500479157065104747353807392371),
- SC_(3.5808107852935791015625),
- SC_(0.4883005917072296142578125),
- SC_(1.007653173802923954909901438393379243537),
- /* ... lots of rows skipped */
- };
-
-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 __tuple rather than a value, then we would have had
-one entry for each element in the tuple in addition to the input parameters.
-
-The first #define serves two purposes:
-
-* It reduces the file sizes considerably: all those `static_cast`'s add up to a lot
-of bytes otherwise (they are needed to suppress compiler warnings when `T` is
-narrower than a `long double`).
-* It provides a useful customisation point: for example if we were testing
-a user-defined type that has more precision than a `long double` we could change
-it to:
-
-[^#define SC_(x) lexical_cast<T>(BOOST_STRINGIZE(x))]
-
-in order to ensure that no truncation of the values occurs prior to conversion
-to `T`. Note that this isn't used by default as it's rather hard on the compiler
-when the table is large.
-
-[h5 Example 3: Profiling a Continued Fraction for Convergence and Accuracy]
-
-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 ] and b[sub N ] of the continued fraction
-each time it's invoked:
-
- template <class T>
- struct upper_incomplete_gamma_fract
- {
- private:
- T z, a;
- int k;
- public:
- typedef std::pair<T,T> result_type;
-
- upper_incomplete_gamma_fract(T a1, T z1)
- : z(z1-a1+1), a(a1), k(0)
- {
- }
-
- result_type operator()()
- {
- ++k;
- z += 2;
- return result_type(k * (a - k), z);
- }
- };
-
-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 __tuple:
-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):
-
- #include <boost/math/tools/test_data.hpp>
- #include <boost/math/tools/test.hpp>
- #include <boost/math/special_functions/gamma.hpp>
- #include <boost/math/tools/ntl.hpp>
- #include <boost/math/tools/tuple.hpp>
-
- template <class T>
- struct profile_gamma_fraction
- {
- typedef ``__tuple``<T, T> result_type;
-
- result_type operator()(T val)
- {
- using namespace boost::math::tools;
- // estimate the true value, using arbitary precision
- // arithmetic and NTL::RR:
- NTL::RR rval(val);
- upper_incomplete_gamma_fract<NTL::RR> f1(rval, rval);
- NTL::RR true_val = continued_fraction_a(f1, 1000);
- //
- // Now get the aproximation at double precision, along with the number of
- // iterations required:
- boost::uintmax_t iters = std::numeric_limits<boost::uintmax_t>::max();
- upper_incomplete_gamma_fract<T> f2(val, val);
- T found_val = continued_fraction_a(f2, std::numeric_limits<T>::digits, iters);
- //
- // Work out the relative error, as measured in units of epsilon:
- T err = real_cast<T>(relative_error(true_val, NTL::RR(found_val)) / std::numeric_limits<T>::epsilon());
- //
- // now just return the results as a tuple:
- return boost::math::make_tuple(err, iters);
- }
- };
-
-Feeding that functor into test_data allows rapid output of csv data,
-for whatever type `T` we may be interested in:
-
- int main()
- {
- using namespace boost::math::tools;
- // create an object to hold the data:
- test_data<double> data;
- // insert 500 points at uniform intervals between just after 0 and 100:
- data.insert(profile_gamma_fraction<double>(), make_periodic_param(0.01, 100.0, 100));
- // print out in csv format:
- write_csv(std::cout, data, ", ");
- return 0;
- }
-
-This time there's no need to plot a graph, the first few rows are:
-
- a and z, Error/epsilon, Iterations required
-
- 0.01, 9723.14, 4726
- 1.0099, 9.54818, 87
- 2.0098, 3.84777, 40
- 3.0097, 0.728358, 25
- 4.0096, 2.39712, 21
- 5.0095, 0.233263, 16
-
-So it's pretty clear that this fraction shouldn't be used for small values
-of a and z.
-
-[h4 reference]
-[#test_data_reference]
-
-Most of this tool has been described already in the examples above, we'll
-just add the following notes on the non-member functions:
-
- template <class T>
- parameter_info<T> make_random_param(T start_range, T end_range, int n_points);
-
-Tells class test_data to test /n_points/ random values in the range
-[start_range,end_range].
-
- template <class T>
- parameter_info<T> make_periodic_param(T start_range, T end_range, int n_points);
-
-Tells class test_data to test /n_points/ evenly spaced values in the range
-[start_range,end_range].
-
- template <class T>
- parameter_info<T> make_power_param(T basis, int start_exponent, int end_exponent);
-
-Tells class test_data to test points of the form ['basis + R * 2[super expon]] for each
-/expon/ in the range [start_exponent, end_exponent], and /R/ a random number in \[0.5, 1\].
-
- template <class T>
- bool get_user_parameter_info(parameter_info<T>& info, const char* param_name);
-
-Prompts the user for the parameter range and form to use.
-
-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":
-
- parameter_info<double> p = make_random_param(2.0, 5.0, 10);
- p.type |= dummy_param;
-
-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.
-
-[endsect][/section:test_data Graphing, Profiling, and Generating Test Data for Special Functions]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/thread_safety.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/thread_safety.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,15 +0,0 @@
-[section:threads Thread Safety]
-
-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.
-
-[endsect] [/section:threads Thread Safety]
-
-[/
- Copyright 2006 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/tr1.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/tr1.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,398 +0,0 @@
-[template tr1_overview[]
-Many of the special functions included in this library are also a part
-of the either the [C99] or the [tr1]. Therefore this library
-includes a thin wrapper header `boost/math/tr1.hpp` that provides
-compatibility with these two standards.
-
-There are various pros and cons to using the library in this way:
-
-Pros:
-
-* The header to include is lightweight (i.e. fast to compile).
-* The functions have extern "C" linkage,
- and so are usable from other languages (not just C and C++).
-* C99 and C++ TR1 Standard compatibility.
-
-Cons:
-
-* You will need to compile and link to the external Boost.Math libraries.
-* Limited to support for the types, `float`, `double` and `long double`.
-* Error handling is handled via setting ::errno and returning NaN's and
-infinities: this may be less flexible than an C++ exception based approach.
-
-[note The separate libraries are required *only* if you choose to use
-boost/math/tr1.hpp rather than some other Boost.Math header, the rest
-of Boost.Math remains header-only.]
-
-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:
-
-[table
-[[Name][Type][Functions]]
-[[boost_math_c99f-<suffix>][float][C99 Functions]]
-[[boost_math_c99-<suffix>][double][C99 Functions]]
-[[boost_math_c99l-<suffix>][long double][C99 Functions]]
-[[boost_math_tr1f-<suffix>][float][TR1 Functions]]
-[[boost_math_tr1-<suffix>][double][TR1 Functions]]
-[[boost_math_tr1l-<suffix>][long double][TR1 Functions]]
-]
-
-Where `<suffix>` 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
-[@http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html#library-naming
-full explanation of the `<suffix>` meanings].
-
-[note
-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.
-
-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.
-
-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.]
-
-[note Linux and Unix users will generally only have one variant of
-these libraries installed, and can generally just link against
--lboost_math_tr1 etc.]
-
-[h4 Usage Recomendations]
-
-This library now presents the user with a choice:
-
-* To include the header only versions of the functions and have
-an easier time linking, but a longer compile time.
-* To include the TR1 headers and link against an external library.
-
-Which option you choose depends largely on how you prefer to work
-and how your system is set up.
-
-For example a casual user who just needs the acosh function, would
-probably be better off including `<boost/math/special_functions/acosh.hpp>`
-and using `boost::math::acosh(x)` in their code.
-
-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 `<boost/math/tr1.hpp>` and using `boost::math::tr1::acosh(x)`
-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
-[link math_toolkit.perf.getting_best
-release and debug builds can be as much as 20 times],
-so for complex applications this can be a big win.
-
-[h4 Supported C99 Functions]
-
-See also the [link math_toolkit.extern_c.c99
-quick reference guide for these functions].
-
- namespace boost{ namespace math{ namespace tr1{ extern "C"{
-
- typedef unspecified float_t;
- typedef unspecified double_t;
-
- double acosh(double x);
- float acoshf(float x);
- long double acoshl(long double x);
-
- double asinh(double x);
- float asinhf(float x);
- long double asinhl(long double x);
-
- double atanh(double x);
- float atanhf(float x);
- long double atanhl(long double x);
-
- double cbrt(double x);
- float cbrtf(float x);
- long double cbrtl(long double x);
-
- double copysign(double x, double y);
- float copysignf(float x, float y);
- long double copysignl(long double x, long double y);
-
- double erf(double x);
- float erff(float x);
- long double erfl(long double x);
-
- double erfc(double x);
- float erfcf(float x);
- long double erfcl(long double x);
-
- double expm1(double x);
- float expm1f(float x);
- long double expm1l(long double x);
-
- double fmax(double x, double y);
- float fmaxf(float x, float y);
- long double fmaxl(long double x, long double y);
-
- double fmin(double x, double y);
- float fminf(float x, float y);
- long double fminl(long double x, long double y);
-
- double hypot(double x, double y);
- float hypotf(float x, float y);
- long double hypotl(long double x, long double y);
-
- double lgamma(double x);
- float lgammaf(float x);
- long double lgammal(long double x);
-
- long long llround(double x);
- long long llroundf(float x);
- long long llroundl(long double x);
-
- double log1p(double x);
- float log1pf(float x);
- long double log1pl(long double x);
-
- long lround(double x);
- long lroundf(float x);
- long lroundl(long double x);
-
- double nextafter(double x, double y);
- float nextafterf(float x, float y);
- long double nextafterl(long double x, long double y);
-
- double nexttoward(double x, long double y);
- float nexttowardf(float x, long double y);
- long double nexttowardl(long double x, long double y);
-
- double round(double x);
- float roundf(float x);
- long double roundl(long double x);
-
- double tgamma(double x);
- float tgammaf(float x);
- long double tgammal(long double x);
-
- double trunc(double x);
- float truncf(float x);
- long double truncl(long double x);
-
- }}}} // namespaces
-
-[h4 Supported TR1 Functions]
-
-See also the [link math_toolkit.extern_c.tr1
-quick reference guide for these functions].
-
- namespace boost{ namespace math{ namespace tr1{ extern "C"{
-
- // [5.2.1.1] associated Laguerre polynomials:
- double assoc_laguerre(unsigned n, unsigned m, double x);
- float assoc_laguerref(unsigned n, unsigned m, float x);
- long double assoc_laguerrel(unsigned n, unsigned m, long double x);
-
- // [5.2.1.2] associated Legendre functions:
- double assoc_legendre(unsigned l, unsigned m, double x);
- float assoc_legendref(unsigned l, unsigned m, float x);
- long double assoc_legendrel(unsigned l, unsigned m, long double x);
-
- // [5.2.1.3] beta function:
- double beta(double x, double y);
- float betaf(float x, float y);
- long double betal(long double x, long double y);
-
- // [5.2.1.4] (complete) elliptic integral of the first kind:
- double comp_ellint_1(double k);
- float comp_ellint_1f(float k);
- long double comp_ellint_1l(long double k);
-
- // [5.2.1.5] (complete) elliptic integral of the second kind:
- double comp_ellint_2(double k);
- float comp_ellint_2f(float k);
- long double comp_ellint_2l(long double k);
-
- // [5.2.1.6] (complete) elliptic integral of the third kind:
- double comp_ellint_3(double k, double nu);
- float comp_ellint_3f(float k, float nu);
- long double comp_ellint_3l(long double k, long double nu);
-
- // [5.2.1.8] regular modified cylindrical Bessel functions:
- double cyl_bessel_i(double nu, double x);
- float cyl_bessel_if(float nu, float x);
- long double cyl_bessel_il(long double nu, long double x);
-
- // [5.2.1.9] cylindrical Bessel functions (of the first kind):
- double cyl_bessel_j(double nu, double x);
- float cyl_bessel_jf(float nu, float x);
- long double cyl_bessel_jl(long double nu, long double x);
-
- // [5.2.1.10] irregular modified cylindrical Bessel functions:
- double cyl_bessel_k(double nu, double x);
- float cyl_bessel_kf(float nu, float x);
- long double cyl_bessel_kl(long double nu, long double x);
-
- // [5.2.1.11] cylindrical Neumann functions;
- // cylindrical Bessel functions (of the second kind):
- double cyl_neumann(double nu, double x);
- float cyl_neumannf(float nu, float x);
- long double cyl_neumannl(long double nu, long double x);
-
- // [5.2.1.12] (incomplete) elliptic integral of the first kind:
- double ellint_1(double k, double phi);
- float ellint_1f(float k, float phi);
- long double ellint_1l(long double k, long double phi);
-
- // [5.2.1.13] (incomplete) elliptic integral of the second kind:
- double ellint_2(double k, double phi);
- float ellint_2f(float k, float phi);
- long double ellint_2l(long double k, long double phi);
-
- // [5.2.1.14] (incomplete) elliptic integral of the third kind:
- double ellint_3(double k, double nu, double phi);
- float ellint_3f(float k, float nu, float phi);
- long double ellint_3l(long double k, long double nu, long double phi);
-
- // [5.2.1.15] exponential integral:
- double expint(double x);
- float expintf(float x);
- long double expintl(long double x);
-
- // [5.2.1.16] Hermite polynomials:
- double hermite(unsigned n, double x);
- float hermitef(unsigned n, float x);
- long double hermitel(unsigned n, long double x);
-
- // [5.2.1.18] Laguerre polynomials:
- double laguerre(unsigned n, double x);
- float laguerref(unsigned n, float x);
- long double laguerrel(unsigned n, long double x);
-
- // [5.2.1.19] Legendre polynomials:
- double legendre(unsigned l, double x);
- float legendref(unsigned l, float x);
- long double legendrel(unsigned l, long double x);
-
- // [5.2.1.20] Riemann zeta function:
- double riemann_zeta(double);
- float riemann_zetaf(float);
- long double riemann_zetal(long double);
-
- // [5.2.1.21] spherical Bessel functions (of the first kind):
- double sph_bessel(unsigned n, double x);
- float sph_besself(unsigned n, float x);
- long double sph_bessell(unsigned n, long double x);
-
- // [5.2.1.22] spherical associated Legendre functions:
- double sph_legendre(unsigned l, unsigned m, double theta);
- float sph_legendref(unsigned l, unsigned m, float theta);
- long double sph_legendrel(unsigned l, unsigned m, long double theta);
-
- // [5.2.1.23] spherical Neumann functions;
- // spherical Bessel functions (of the second kind):
- double sph_neumann(unsigned n, double x);
- float sph_neumannf(unsigned n, float x);
- long double sph_neumannl(unsigned n, long double x);
-
- }}}} // namespaces
-
-In addition sufficient additional overloads of the `double` versions of the
-above functions are provided, so that calling the function with any mixture
-of `float`, `double`, `long double`, or /integer/ arguments is supported, with the
-return type determined by the __arg_pomotion_rules.
-
-[h4 Currently Unsupported C99 Functions]
-
- double exp2(double x);
- float exp2f(float x);
- long double exp2l(long double x);
-
- double fdim(double x, double y);
- float fdimf(float x, float y);
- long double fdiml(long double x, long double y);
-
- double fma(double x, double y, double z);
- float fmaf(float x, float y, float z);
- long double fmal(long double x, long double y, long double z);
-
- int ilogb(double x);
- int ilogbf(float x);
- int ilogbl(long double x);
-
- long long llrint(double x);
- long long llrintf(float x);
- long long llrintl(long double x);
-
- double log2(double x);
- float log2f(float x);
- long double log2l(long double x);
-
- double logb(double x);
- float logbf(float x);
- long double logbl(long double x);
-
- long lrint(double x);
- long lrintf(float x);
- long lrintl(long double x);
-
- double nan(const char *str);
- float nanf(const char *str);
- long double nanl(const char *str);
-
- double nearbyint(double x);
- float nearbyintf(float x);
- long double nearbyintl(long double x);
-
- double remainder(double x, double y);
- float remainderf(float x, float y);
- long double remainderl(long double x, long double y);
-
- double remquo(double x, double y, int *pquo);
- float remquof(float x, float y, int *pquo);
- long double remquol(long double x, long double y, int *pquo);
-
- double rint(double x);
- float rintf(float x);
- long double rintl(long double x);
-
- double scalbln(double x, long ex);
- float scalblnf(float x, long ex);
- long double scalblnl(long double x, long ex);
-
- double scalbn(double x, int ex);
- float scalbnf(float x, int ex);
- long double scalbnl(long double x, int ex);
-
-[h4 Currently Unsupported TR1 Functions]
-
- // [5.2.1.7] confluent hypergeometric functions:
- double conf_hyperg(double a, double c, double x);
- float conf_hypergf(float a, float c, float x);
- long double conf_hypergl(long double a, long double c, long double x);
-
- // [5.2.1.17] hypergeometric functions:
- double hyperg(double a, double b, double c, double x);
- float hypergf(float a, float b, float c, float x);
- long double hypergl(long double a, long double b, long double c,
- long double x);
-
-
-]
-
-[/
- Copyright 2008 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/tr1_ref.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/tr1_ref.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,393 +0,0 @@
-[section:tr1_ref TR1 C Functions Quick Reference]
-
-
-[h4 Supported TR1 Functions]
-
- namespace boost{ namespace math{ namespace tr1{ extern "C"{
-
- // [5.2.1.1] associated Laguerre polynomials:
- double assoc_laguerre(unsigned n, unsigned m, double x);
- float assoc_laguerref(unsigned n, unsigned m, float x);
- long double assoc_laguerrel(unsigned n, unsigned m, long double x);
-
- // [5.2.1.2] associated Legendre functions:
- double assoc_legendre(unsigned l, unsigned m, double x);
- float assoc_legendref(unsigned l, unsigned m, float x);
- long double assoc_legendrel(unsigned l, unsigned m, long double x);
-
- // [5.2.1.3] beta function:
- double beta(double x, double y);
- float betaf(float x, float y);
- long double betal(long double x, long double y);
-
- // [5.2.1.4] (complete) elliptic integral of the first kind:
- double comp_ellint_1(double k);
- float comp_ellint_1f(float k);
- long double comp_ellint_1l(long double k);
-
- // [5.2.1.5] (complete) elliptic integral of the second kind:
- double comp_ellint_2(double k);
- float comp_ellint_2f(float k);
- long double comp_ellint_2l(long double k);
-
- // [5.2.1.6] (complete) elliptic integral of the third kind:
- double comp_ellint_3(double k, double nu);
- float comp_ellint_3f(float k, float nu);
- long double comp_ellint_3l(long double k, long double nu);
-
- // [5.2.1.8] regular modified cylindrical Bessel functions:
- double cyl_bessel_i(double nu, double x);
- float cyl_bessel_if(float nu, float x);
- long double cyl_bessel_il(long double nu, long double x);
-
- // [5.2.1.9] cylindrical Bessel functions (of the first kind):
- double cyl_bessel_j(double nu, double x);
- float cyl_bessel_jf(float nu, float x);
- long double cyl_bessel_jl(long double nu, long double x);
-
- // [5.2.1.10] irregular modified cylindrical Bessel functions:
- double cyl_bessel_k(double nu, double x);
- float cyl_bessel_kf(float nu, float x);
- long double cyl_bessel_kl(long double nu, long double x);
-
- // [5.2.1.11] cylindrical Neumann functions;
- // cylindrical Bessel functions (of the second kind):
- double cyl_neumann(double nu, double x);
- float cyl_neumannf(float nu, float x);
- long double cyl_neumannl(long double nu, long double x);
-
- // [5.2.1.12] (incomplete) elliptic integral of the first kind:
- double ellint_1(double k, double phi);
- float ellint_1f(float k, float phi);
- long double ellint_1l(long double k, long double phi);
-
- // [5.2.1.13] (incomplete) elliptic integral of the second kind:
- double ellint_2(double k, double phi);
- float ellint_2f(float k, float phi);
- long double ellint_2l(long double k, long double phi);
-
- // [5.2.1.14] (incomplete) elliptic integral of the third kind:
- double ellint_3(double k, double nu, double phi);
- float ellint_3f(float k, float nu, float phi);
- long double ellint_3l(long double k, long double nu, long double phi);
-
- // [5.2.1.15] exponential integral:
- double expint(double x);
- float expintf(float x);
- long double expintl(long double x);
-
- // [5.2.1.16] Hermite polynomials:
- double hermite(unsigned n, double x);
- float hermitef(unsigned n, float x);
- long double hermitel(unsigned n, long double x);
-
- // [5.2.1.18] Laguerre polynomials:
- double laguerre(unsigned n, double x);
- float laguerref(unsigned n, float x);
- long double laguerrel(unsigned n, long double x);
-
- // [5.2.1.19] Legendre polynomials:
- double legendre(unsigned l, double x);
- float legendref(unsigned l, float x);
- long double legendrel(unsigned l, long double x);
-
- // [5.2.1.20] Riemann zeta function:
- double riemann_zeta(double);
- float riemann_zetaf(float);
- long double riemann_zetal(long double);
-
- // [5.2.1.21] spherical Bessel functions (of the first kind):
- double sph_bessel(unsigned n, double x);
- float sph_besself(unsigned n, float x);
- long double sph_bessell(unsigned n, long double x);
-
- // [5.2.1.22] spherical associated Legendre functions:
- double sph_legendre(unsigned l, unsigned m, double theta);
- float sph_legendref(unsigned l, unsigned m, float theta);
- long double sph_legendrel(unsigned l, unsigned m, long double theta);
-
- // [5.2.1.23] spherical Neumann functions;
- // spherical Bessel functions (of the second kind):
- double sph_neumann(unsigned n, double x);
- float sph_neumannf(unsigned n, float x);
- long double sph_neumannl(unsigned n, long double x);
-
- }}}} // namespaces
-
-In addition sufficient additional overloads of the `double` versions of the
-above functions are provided, so that calling the function with any mixture
-of `float`, `double`, `long double`, or /integer/ arguments is supported, with the
-return type determined by the __arg_pomotion_rules.
-
-For example:
-
- expintf(2.0f); // float version, returns float.
- expint(2.0f); // also calls the float version and returns float.
- expint(2.0); // double version, returns double.
- expintl(2.0L); // long double version, returns a long double.
- expint(2.0L); // also calls the long double version.
- expint(2); // integer argument is treated as a double, returns double.
-
-[h4 Quick Reference]
-
- // [5.2.1.1] associated Laguerre polynomials:
- double assoc_laguerre(unsigned n, unsigned m, double x);
- float assoc_laguerref(unsigned n, unsigned m, float x);
- long double assoc_laguerrel(unsigned n, unsigned m, long double x);
-
-The assoc_laguerre functions return:
-
-[equation laguerre_1]
-
-See also __laguerre for the full template (header only) version of this function.
-
- // [5.2.1.2] associated Legendre functions:
- double assoc_legendre(unsigned l, unsigned m, double x);
- float assoc_legendref(unsigned l, unsigned m, float x);
- long double assoc_legendrel(unsigned l, unsigned m, long double x);
-
-The assoc_legendre functions return:
-
-[equation legendre_1b]
-
-See also __legendre for the full template (header only) version of this function.
-
- // [5.2.1.3] beta function:
- double beta(double x, double y);
- float betaf(float x, float y);
- long double betal(long double x, long double y);
-
-Returns the beta function of /x/ and /y/:
-
-[equation beta1]
-
-See also __beta for the full template (header only) version of this function.
-
- // [5.2.1.4] (complete) elliptic integral of the first kind:
- double comp_ellint_1(double k);
- float comp_ellint_1f(float k);
- long double comp_ellint_1l(long double k);
-
-Returns the complete elliptic integral of the first kind of /k/:
-
-[equation ellint6]
-
-See also __ellint_1 for the full template (header only) version of this function.
-
- // [5.2.1.5] (complete) elliptic integral of the second kind:
- double comp_ellint_2(double k);
- float comp_ellint_2f(float k);
- long double comp_ellint_2l(long double k);
-
-Returns the complete elliptic integral of the second kind of /k/:
-
-[equation ellint7]
-
-See also __ellint_2 for the full template (header only) version of this function.
-
- // [5.2.1.6] (complete) elliptic integral of the third kind:
- double comp_ellint_3(double k, double nu);
- float comp_ellint_3f(float k, float nu);
- long double comp_ellint_3l(long double k, long double nu);
-
-Returns the complete elliptic integral of the third kind of /k/ and /nu/:
-
-[equation ellint8]
-
-See also __ellint_3 for the full template (header only) version of this function.
-
- // [5.2.1.8] regular modified cylindrical Bessel functions:
- double cyl_bessel_i(double nu, double x);
- float cyl_bessel_if(float nu, float x);
- long double cyl_bessel_il(long double nu, long double x);
-
-Returns the modified bessel function of the first kind of /nu/ and /x/:
-
-[equation mbessel2]
-
-See also __cyl_bessel_i for the full template (header only) version of this function.
-
- // [5.2.1.9] cylindrical Bessel functions (of the first kind):
- double cyl_bessel_j(double nu, double x);
- float cyl_bessel_jf(float nu, float x);
- long double cyl_bessel_jl(long double nu, long double x);
-
-Returns the bessel function of the first kind of /nu/ and /x/:
-
-[equation bessel2]
-
-See also __cyl_bessel_j for the full template (header only) version of this function.
-
- // [5.2.1.10] irregular modified cylindrical Bessel functions:
- double cyl_bessel_k(double nu, double x);
- float cyl_bessel_kf(float nu, float x);
- long double cyl_bessel_kl(long double nu, long double x);
-
-Returns the modified bessel function of the second kind of /nu/ and /x/:
-
-[equation mbessel3]
-
-See also __cyl_bessel_k for the full template (header only) version of this function.
-
- // [5.2.1.11] cylindrical Neumann functions;
- // cylindrical Bessel functions (of the second kind):
- double cyl_neumann(double nu, double x);
- float cyl_neumannf(float nu, float x);
- long double cyl_neumannl(long double nu, long double x);
-
-Returns the bessel function of the second kind (Neumann function) of /nu/ and /x/:
-
-[equation bessel3]
-
-See also __cyl_neumann for the full template (header only) version of this function.
-
- // [5.2.1.12] (incomplete) elliptic integral of the first kind:
- double ellint_1(double k, double phi);
- float ellint_1f(float k, float phi);
- long double ellint_1l(long double k, long double phi);
-
-Returns the incomplete elliptic integral of the first kind of /k/ and /phi/:
-
-[equation ellint2]
-
-See also __ellint_1 for the full template (header only) version of this function.
-
- // [5.2.1.13] (incomplete) elliptic integral of the second kind:
- double ellint_2(double k, double phi);
- float ellint_2f(float k, float phi);
- long double ellint_2l(long double k, long double phi);
-
-Returns the incomplete elliptic integral of the second kind of /k/ and /phi/:
-
-[equation ellint3]
-
-See also __ellint_2 for the full template (header only) version of this function.
-
- // [5.2.1.14] (incomplete) elliptic integral of the third kind:
- double ellint_3(double k, double nu, double phi);
- float ellint_3f(float k, float nu, float phi);
- long double ellint_3l(long double k, long double nu, long double phi);
-
-Returns the incomplete elliptic integral of the third kind of /k/, /nu/ and /phi/:
-
-[equation ellint4]
-
-See also __ellint_3 for the full template (header only) version of this function.
-
- // [5.2.1.15] exponential integral:
- double expint(double x);
- float expintf(float x);
- long double expintl(long double x);
-
-Returns the exponential integral Ei of /x/:
-
-[equation expint_i_1]
-
-See also __expint for the full template (header only) version of this function.
-
- // [5.2.1.16] Hermite polynomials:
- double hermite(unsigned n, double x);
- float hermitef(unsigned n, float x);
- long double hermitel(unsigned n, long double x);
-
-Returns the n'th Hermite polynomial of /x/:
-
-[equation hermite_0]
-
-See also __hermite for the full template (header only) version of this function.
-
- // [5.2.1.18] Laguerre polynomials:
- double laguerre(unsigned n, double x);
- float laguerref(unsigned n, float x);
- long double laguerrel(unsigned n, long double x);
-
-Returns the n'th Laguerre polynomial of /x/:
-
-[equation laguerre_0]
-
-See also __laguerre for the full template (header only) version of this function.
-
- // [5.2.1.19] Legendre polynomials:
- double legendre(unsigned l, double x);
- float legendref(unsigned l, float x);
- long double legendrel(unsigned l, long double x);
-
-Returns the l'th Legendre polynomial of /x/:
-
-[equation legendre_0]
-
-See also __legendre for the full template (header only) version of this function.
-
- // [5.2.1.20] Riemann zeta function:
- double riemann_zeta(double);
- float riemann_zetaf(float);
- long double riemann_zetal(long double);
-
-Returns the Riemann Zeta function of /x/:
-
-[equation zeta1]
-
-See also __zeta for the full template (header only) version of this function.
-
- // [5.2.1.21] spherical Bessel functions (of the first kind):
- double sph_bessel(unsigned n, double x);
- float sph_besself(unsigned n, float x);
- long double sph_bessell(unsigned n, long double x);
-
-Returns the spherical Bessel function of the first kind of /x/ j[sub n](x):
-
-[equation sbessel2]
-
-See also __sph_bessel for the full template (header only) version of this function.
-
- // [5.2.1.22] spherical associated Legendre functions:
- double sph_legendre(unsigned l, unsigned m, double theta);
- float sph_legendref(unsigned l, unsigned m, float theta);
- long double sph_legendrel(unsigned l, unsigned m, long double theta);
-
-Returns the spherical associated Legendre function of /l/, /m/ and /theta/:
-
-[equation spherical_3]
-
-See also __spherical_harmonic for the full template (header only) version of this function.
-
- // [5.2.1.23] spherical Neumann functions;
- // spherical Bessel functions (of the second kind):
- double sph_neumann(unsigned n, double x);
- float sph_neumannf(unsigned n, float x);
- long double sph_neumannl(unsigned n, long double x);
-
-Returns the spherical Neumann function of /x/ y[sub n](x):
-
-[equation sbessel2]
-
-See also __sph_bessel for the full template (header only) version of this function.
-
-
-
-[h4 Currently Unsupported TR1 Functions]
-
- // [5.2.1.7] confluent hypergeometric functions:
- double conf_hyperg(double a, double c, double x);
- float conf_hypergf(float a, float c, float x);
- long double conf_hypergl(long double a, long double c, long double x);
-
- // [5.2.1.17] hypergeometric functions:
- double hyperg(double a, double b, double c, double x);
- float hypergf(float a, float b, float c, float x);
- long double hypergl(long double a, long double b, long double c,
- long double x);
-
-[note These two functions are not implemented as they are not believed
-to be numerically stable.]
-
-
-[endsect]
-
-[/
- Copyright 2008, 2009 John Maddock and Paul A. Bristow.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/tuple.qbk
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/tuple.qbk 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,31 +0,0 @@
-[section:tuples Tuples]
-
-[h4 Synopsis]
-
-``
-#include <boost/math/tools/tuple.hpp>
-``
-
-[h4 Description]
-
-This header defines the type `boost::math::tuple`,
-the associated free functions `ignore`, `tie`, `make_tuple`, `get`,
-and associated types `tuple_size` and `tuple_element`.
-
-These types and functions are aliases for:
-
-* std::tuple etc when available, otherwise:
-* std::tr1::tuple etc when available, otherwise:
-* boost::fusion::tuple etc if the compiler supports it, otherwise:
-* boost::tuple.
-
-So this `boost::math::tuple` is strongly recommended for maximum portability.
-
-[endsect][/section:Tuples Tuples]
-[/
- Copyright 2010 John Maddock.
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-

Deleted: /sandbox/math/libs/math/doc/sf_and_dist/win32_nmake.mak
==============================================================================
--- /sandbox/math/libs/math/doc/sf_and_dist/win32_nmake.mak 2013-05-05 08:32:36 EDT (Sun, 05 May 2013)
+++ (empty file)
@@ -1,73 +0,0 @@
-# Copyright 2006 John Maddock, Paul A. Bristow and Xiaogang Zhang.
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt).
-#
-# Example makefile that builds the docs.
-# Note that all the following paths will have to be changed to match
-# your actual installation paths.
-#
-
-# Path to quickbook executable:
-QB="C:/download/open/xml/bin/quickbook.exe"
-
-# Path to xsltproc:
-XSLTPROC="C:/download/open/xml/bin/xsltproc-win32/xsltproc.exe"
-
-# Path to Boost Trunc:
-BOOST=c:/data/boost/boost/trunk
-
-# Path to FO processor (XEP):
-FO=C:/Progra~1/xep/xep.bat
-
-# Configuration options:
-COMMON_XSL_PARAM=--stringparam admon.graphics "1" --stringparam body.start.indent "0pt" --stringparam chunk.first.sections "1" --stringparam chunk.section.depth "10" --stringparam fop.extensions "0" --stringparam generate.section.toc.level "10" --stringparam html.stylesheet "../../../../../../trunk/doc/html/boostbook.css" --stringparam navig.graphics "1" --stringparam page.margin.inner "0.5in" --stringparam page.margin.outer "0.5in" --stringparam paper.type "A4" --stringparam toc.max.depth "4" --stringparam toc.section.depth "10" --stringparam xep.extensions "1"
-PDF_XSL_PARAM=--stringparam admon.graphics.extension ".svg" --stringparam use.role.for.mediaobject 1 --stringparam preferred.mediaobject.role print --stringparam admon.graphics.path "../html/images/"
-HTML_XSL_PARAM=
-PROJECT_NAME=math
-
-all : pdf html
-
-pdf : pdf/$(PROJECT_NAME).pdf
-html : html/index.html
-
-xml/$(PROJECT_NAME).xml :
- -mkdir xml
- $(QB) --output-file=xml\$(PROJECT_NAME).xml $(PROJECT_NAME).qbk
-
-xml/$(PROJECT_NAME).docbook : xml\$(PROJECT_NAME).xml xml/catalog.xml
- set XML_CATALOG_FILES=xml/catalog.xml
- $(XSLTPROC) $(COMMON_XSL_PARAM) --xinclude -o "xml\$(PROJECT_NAME).docbook" "$(BOOST)\tools\boostbook\xsl\docbook.xsl" "xml\$(PROJECT_NAME).xml"
-
-xml/$(PROJECT_NAME).fo : xml\$(PROJECT_NAME).docbook xml/catalog.xml
- set XML_CATALOG_FILES=xml/catalog.xml
- $(XSLTPROC) $(COMMON_XSL_PARAM) $(PDF_XSL_PARAM) --xinclude -o "xml\$(PROJECT_NAME).fo" "$(BOOST)\tools\boostbook\xsl\fo.xsl" "xml\$(PROJECT_NAME).docbook"
-
-pdf/$(PROJECT_NAME).pdf : xml\$(PROJECT_NAME).fo
- -mkdir pdf
- set JAVA_HOME=C:/PROGRA~1/Java/j2re1.4.2_12
- call $(FO) xml\$(PROJECT_NAME).fo pdf\$(PROJECT_NAME).pdf
-
-html/index.html : xml\$(PROJECT_NAME).fo
- -mkdir html
- set XML_CATALOG_FILES=xml/catalog.xml
- $(XSLTPROC) $(COMMON_XSL_PARAM) $(HTML_XSL_PARAM) --xinclude -o "html/" "$(BOOST)\tools\boostbook\xsl\html.xsl" "xml\$(PROJECT_NAME).docbook"
-
-xml/catalog.xml :
- @echo <<xml/catalog.xml
-<?xml version="1.0"?>
-<!DOCTYPE catalog
- PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
- "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
-<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
- <rewriteURI uriStartString="http://www.boost.org/tools/boostbook/dtd/" rewritePrefix="file:///$(BOOST)/tools/boostbook/dtd/"/>
- <rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl/current/" rewritePrefix="file:///C:/download/open/xml/docbook-xsl-snapshot/"/>
- <rewriteURI uriStartString="http://www.oasis-open.org/docbook/xml/4.2/" rewritePrefix="file:///C:/download/open/xml/docbook-xml/"/>
-</catalog>
-<<
-
-
-
-
-
-


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk