From 35a23d5fae0cf4f53be4c18d475caa85654dc503 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Tue, 11 Jan 2011 16:38:53 +0000 Subject: [PATCH 01/82] Added NIST DLMF reference (untested) [SVN r67964] --- doc/sf_and_dist/references.qbk | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/doc/sf_and_dist/references.qbk b/doc/sf_and_dist/references.qbk index 5be6fed07..1db9f2441 100644 --- a/doc/sf_and_dist/references.qbk +++ b/doc/sf_and_dist/references.qbk @@ -5,15 +5,23 @@ (Specific detailed sources for individual functions and distributions are given at the end of each individual section). -[@http://dlmf.nist.gov/about/ DLMF (NIST Digital Library of Mathematical Functions)] -is intended to be a replacement for the legendary -Abramowitz and Stegun's Handbook of Mathematical Functions, -now scheduled to be completed in 2007. +[@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.. +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. + +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] From f11d1c3c2b88375a95d464b5261af4a612765b75 Mon Sep 17 00:00:00 2001 From: Bryce Adelstein-Lelbach Date: Fri, 14 Jan 2011 02:35:58 +0000 Subject: [PATCH 02/82] Replacing the use of with across Boost. On Linux, GNU's libstdc++, which is the default stdlib for icc and clang, cannot parse the header in version 4.5+ (which thankfully neither compiler advises the use of yet), as it's original C++98-friendly implementation has been replaced with a gnu++0x implementation. is a portable implementation of , providing boost::detail::setfill, boost::detail::setbase, boost::detail::setw, boost::detail::setprecision, boost::detail::setiosflags and boost::detail::resetiosflags. [SVN r68140] --- build/Jamfile.v2 | 2 +- example/Jamfile.v2 | 2 + example/binomial_coinflip_example.cpp | 9 +- example/binomial_confidence_limits.cpp | 25 +++--- example/binomial_example_nag.cpp | 13 +-- example/binomial_quiz_example.cpp | 11 +-- example/binomial_sample_sizes.cpp | 17 ++-- example/chi_square_std_dev_test.cpp | 83 ++++++++++--------- example/f_test.cpp | 43 +++++----- example/find_location_example.cpp | 4 +- example/find_mean_and_sd_normal.cpp | 5 +- example/find_root_example.cpp | 5 +- example/find_scale_example.cpp | 4 +- example/geometric_examples.cpp | 5 +- example/inverse_chi_squared_example.cpp | 24 +++--- .../inverse_chi_squared_find_df_example.cpp | 6 +- .../inverse_gamma_distribution_example.cpp | 4 +- example/inverse_gamma_example.cpp | 4 +- example/inverse_gaussian_example.cpp | 9 +- example/laplace_example.cpp | 23 ++--- example/nc_chi_sq_example.cpp | 5 +- example/neg_binom_confidence_limits.cpp | 23 ++--- example/neg_binomial_sample_sizes.cpp | 13 +-- example/negative_binomial_example1.cpp | 7 +- example/negative_binomial_example2.cpp | 18 ++-- example/normal_misc_examples.cpp | 19 +++-- example/policy_eg_10.cpp | 49 +++++------ example/policy_eg_9.cpp | 5 +- example/root_finding_example.cpp | 4 +- example/students_t_example1.cpp | 4 +- example/students_t_example2.cpp | 8 +- example/students_t_example3.cpp | 6 +- example/students_t_single_sample.cpp | 71 ++++++++-------- example/students_t_two_samples.cpp | 65 ++++++++------- .../boost/math/policies/error_handling.hpp | 4 +- .../boost/math/special_functions/gamma.hpp | 2 +- include/boost/math/tools/config.hpp | 2 +- include/boost/math/tools/precision.hpp | 2 +- include/boost/math/tools/test.hpp | 2 +- minimax/Jamfile.v2 | 2 + minimax/main.cpp | 34 ++++---- octonion/octonion_test.cpp | 2 +- performance/main.cpp | 14 ++-- quaternion/quaternion_test.cpp | 2 +- special_functions/acosh_test.hpp | 8 +- special_functions/asinh_test.hpp | 8 +- special_functions/atanh_test.hpp | 14 ++-- special_functions/sinc_test.hpp | 8 +- special_functions/sinhc_test.hpp | 8 +- special_functions/special_functions_test.cpp | 8 +- test/Jamfile.v2 | 10 ++- test/acosh_test.hpp | 12 +-- test/asinh_test.hpp | 12 +-- test/atanh_test.hpp | 22 ++--- test/complex_test.cpp | 4 +- test/handle_test_result.hpp | 9 +- test/sinc_test.hpp | 12 +-- test/sinhc_test.hpp | 12 +-- test/special_functions_test.cpp | 8 +- test/test_bernoulli.cpp | 8 +- test/test_dist_overloads.cpp | 3 +- test/test_exponential_dist.cpp | 3 +- test/test_extreme_value.cpp | 3 +- test/test_find_location.cpp | 6 +- test/test_find_scale.cpp | 6 +- test/test_gamma_dist.cpp | 3 +- test/test_geometric.cpp | 4 +- test/test_hypergeometric_dist.cpp | 5 +- test/test_igamma_inv.cpp | 3 +- test/test_igamma_inva.cpp | 4 +- test/test_inverse_gaussian.cpp | 3 +- test/test_laplace.cpp | 2 +- test/test_logistic_dist.cpp | 3 +- test/test_lognormal.cpp | 3 +- test/test_long_double_support.cpp | 4 +- test/test_nc_beta.cpp | 5 +- test/test_nc_chi_squared.cpp | 5 +- test/test_nc_f.cpp | 5 +- test/test_nc_t.cpp | 5 +- test/test_negative_binomial.cpp | 4 +- test/test_normal.cpp | 3 +- test/test_pareto.cpp | 3 +- test/test_poisson.cpp | 8 +- test/test_rayleigh.cpp | 3 +- test/test_real_concept_neg_bin.cpp | 4 +- test/test_roots.cpp | 3 +- test/test_round.cpp | 19 +++-- test/test_sign.cpp | 3 +- test/test_students_t.cpp | 3 +- test/test_toms748_solve.cpp | 7 +- test/test_triangular.cpp | 16 ++-- test/test_uniform.cpp | 3 +- test/test_weibull.cpp | 3 +- tools/Jamfile.v2 | 2 + tools/bessel_data.cpp | 2 +- tools/generate_rational_code.cpp | 2 +- tools/generate_test_values.cpp | 2 +- tools/igamma_temme_large_coef.cpp | 2 +- tools/lanczos_generator.cpp | 2 +- 99 files changed, 537 insertions(+), 456 deletions(-) diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 14439ad42..3e6db76ab 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -7,7 +7,7 @@ import testing ; import pch ; project - : requirements + : requirements intel-win:-nologo intel-win:-nologo #intel-linux:off diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index 94798e2db..df45aaf82 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -10,6 +10,8 @@ import testing ; project : requirements + pathscale:-Wno-missing-braces + clang:-Wno-missing-braces gcc:-Wno-missing-braces darwin:-Wno-missing-braces acc:+W2068,2461,2236,4070 diff --git a/example/binomial_coinflip_example.cpp b/example/binomial_coinflip_example.cpp index 26410f42e..bd12c7084 100644 --- a/example/binomial_coinflip_example.cpp +++ b/example/binomial_coinflip_example.cpp @@ -46,10 +46,11 @@ First we need some includes and using statements to be able to use the binomial #include using boost::math::binomial; +#include #include using std::cout; using std::endl; using std::left; -#include - using std::setw; +#include + using boost::detail::setw; int main() { @@ -141,7 +142,7 @@ Finally, print two tables of probability for the /exactly/ and /at least/ a numb for (int successes = 0; successes <= flips; successes++) { // Say success means getting a head (or equally success means getting a tail). double probability = pdf(flip, successes); - cout << left << setw(2) << successes << " " << setw(10) + cout << left << boost::detail::setw(2) << successes << " " << boost::detail::setw(10) << probability << " or 1 in " << 1. / probability << ", or " << probability * 100. << "%" << endl; } // for i @@ -153,7 +154,7 @@ Finally, print two tables of probability for the /exactly/ and /at least/ a numb { // Say success means getting a head // (equally success could mean getting a tail). double probability = cdf(flip, successes); // P(X <= heads) - cout << setw(2) << successes << " " << setw(10) << left + cout << boost::detail::setw(2) << successes << " " << boost::detail::setw(10) << left << probability << " or 1 in " << 1. / probability << ", or " << probability * 100. << "%"<< endl; } // for i diff --git a/example/binomial_confidence_limits.cpp b/example/binomial_confidence_limits.cpp index 56ab48c36..abc8112ae 100644 --- a/example/binomial_confidence_limits.cpp +++ b/example/binomial_confidence_limits.cpp @@ -12,11 +12,12 @@ # pragma warning(disable: 4610) // can never be instantiated - user defined constructor required. #endif +#include +#include #include using std::cout; using std::endl; -#include -using std::fixed; using std::left; using std::right; using std::right; using std::setw; -using std::setprecision; +using std::fixed; using std::left; using std::right; using std::right; using boost::detail::setw; +using boost::detail::setprecision; #include @@ -38,10 +39,10 @@ void confidence_limits_on_frequency(unsigned trials, unsigned successes) "___________________________________________\n" "2-Sided Confidence Limits For Success Ratio\n" "___________________________________________\n\n"; - cout << setprecision(7); - cout << setw(40) << left << "Number of Observations" << "= " << trials << "\n"; - cout << setw(40) << left << "Number of successes" << "= " << successes << "\n"; - cout << setw(40) << left << "Sample frequency of occurrence" << "= " << double(successes) / trials << "\n"; + cout << boost::detail::setprecision(7); + cout << boost::detail::setw(40) << left << "Number of Observations" << "= " << trials << "\n"; + cout << boost::detail::setw(40) << left << "Number of successes" << "= " << successes << "\n"; + cout << boost::detail::setw(40) << left << "Sample frequency of occurrence" << "= " << double(successes) / trials << "\n"; // // Define a table of significance levels: // @@ -60,19 +61,19 @@ void confidence_limits_on_frequency(unsigned trials, unsigned successes) for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); // Calculate Clopper Pearson bounds: double l = binomial_distribution<>::find_lower_bound_on_p(trials, successes, alpha[i]/2); double u = binomial_distribution<>::find_upper_bound_on_p(trials, successes, alpha[i]/2); // Print Clopper Pearson Limits: - cout << fixed << setprecision(5) << setw(15) << right << l; - cout << fixed << setprecision(5) << setw(15) << right << u; + cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << l; + cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << u; // Calculate Jeffreys Prior Bounds: l = binomial_distribution<>::find_lower_bound_on_p(trials, successes, alpha[i]/2, binomial_distribution<>::jeffreys_prior_interval); u = binomial_distribution<>::find_upper_bound_on_p(trials, successes, alpha[i]/2, binomial_distribution<>::jeffreys_prior_interval); // Print Jeffreys Prior Limits: - cout << fixed << setprecision(5) << setw(15) << right << l; - cout << fixed << setprecision(5) << setw(15) << right << u << std::endl; + cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << l; + cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << u << std::endl; } cout << endl; } // void confidence_limits_on_frequency() diff --git a/example/binomial_example_nag.cpp b/example/binomial_example_nag.cpp index c1d7ee35e..38b996528 100644 --- a/example/binomial_example_nag.cpp +++ b/example/binomial_example_nag.cpp @@ -16,10 +16,11 @@ #include +#include #include using std::cout; using std::endl; using std::ios; using std::showpoint; -#include - using std::fixed; using std::setw; +#include + using std::fixed; using boost::detail::setw; int main() { @@ -55,21 +56,21 @@ int main() cout << " n p k plek pgtk peqk " << endl; binomial_distribution<>my_dist(4, 0.5); - cout << setw(4) << (int)my_dist.trials() << " " << my_dist.success_fraction() + cout << boost::detail::setw(4) << (int)my_dist.trials() << " " << my_dist.success_fraction() << " " << 2 << " " << cdf(my_dist, 2) << " " << cdf(complement(my_dist, 2)) << " " << pdf(my_dist, 2) << endl; binomial_distribution<>two(19, 0.440); - cout << setw(4) << (int)two.trials() << " " << two.success_fraction() + cout << boost::detail::setw(4) << (int)two.trials() << " " << two.success_fraction() << " " << 13 << " " << cdf(two, 13) << " " << cdf(complement(two, 13)) << " " << pdf(two, 13) << endl; binomial_distribution<>three(100, 0.750); - cout << setw(4) << (int)three.trials() << " " << three.success_fraction() + cout << boost::detail::setw(4) << (int)three.trials() << " " << three.success_fraction() << " " << 67 << " " << cdf(three, 67) << " " << cdf(complement(three, 67)) << " " << pdf(three, 67) << endl; binomial_distribution<>four(2000, 0.330); - cout << setw(4) << (int)four.trials() << " " << four.success_fraction() + cout << boost::detail::setw(4) << (int)four.trials() << " " << four.success_fraction() << " " << 700 << " " << cdf(four, 700) << " " << cdf(complement(four, 700)) << " " << pdf(four, 700) << endl; diff --git a/example/binomial_quiz_example.cpp b/example/binomial_quiz_example.cpp index 2fde414b4..30f30c7f1 100644 --- a/example/binomial_quiz_example.cpp +++ b/example/binomial_quiz_example.cpp @@ -33,11 +33,12 @@ First, we need to be able to use the binomial distribution constructor #include using boost::math::binomial; +#include #include using std::cout; using std::endl; using std::ios; using std::flush; using std::left; using std::right; using std::fixed; -#include - using std::setw; using std::setprecision; +#include + using boost::detail::setw; using boost::detail::setprecision; #include using std::exception; @@ -93,7 +94,7 @@ We can tabulate the 'getting exactly right' ( == ) probabilities thus: for (int successes = 0; successes <= questions; successes++) { double probability = pdf(quiz, successes); - cout << setw(2) << successes << " " << probability << endl; + cout << boost::detail::setw(2) << successes << " " << probability << endl; } cout << endl; /*` @@ -190,7 +191,7 @@ Finally we can tabulate some probabilities: cout << "\n" "At most (<=)""\n""Guessed OK Probability" << right << endl; for (int score = 0; score <= questions; score++) { - cout << setw(2) << score << " " << setprecision(10) + cout << boost::detail::setw(2) << score << " " << boost::detail::setprecision(10) << cdf(quiz, score) << endl; } cout << endl; @@ -220,7 +221,7 @@ Guessed OK Probability cout << "\n" "At least (>)""\n""Guessed OK Probability" << right << endl; for (int score = 0; score <= questions; score++) { - cout << setw(2) << score << " " << setprecision(10) + cout << boost::detail::setw(2) << score << " " << boost::detail::setprecision(10) << cdf(complement(quiz, score)) << endl; } /*` diff --git a/example/binomial_sample_sizes.cpp b/example/binomial_sample_sizes.cpp index db9f85978..d3ff63041 100644 --- a/example/binomial_sample_sizes.cpp +++ b/example/binomial_sample_sizes.cpp @@ -12,11 +12,12 @@ # pragma warning(disable: 4610) // can never be instantiated - user defined constructor required. #endif +#include +#include #include using std::cout; using std::endl; -#include -using std::fixed; using std::left; using std::right; using std::right; using std::setw; -using std::setprecision; +using std::fixed; using std::left; using std::right; using std::right; using boost::detail::setw; +using boost::detail::setprecision; #include @@ -40,9 +41,9 @@ void find_max_sample_size(double p, unsigned successes) "________________________\n" "Maximum Number of Trials\n" "________________________\n\n"; - cout << setprecision(7); - cout << setw(40) << left << "Success ratio" << "= " << p << "\n"; - cout << setw(40) << left << "Maximum Number of \"successes\" permitted" << "= " << successes << "\n"; + cout << boost::detail::setprecision(7); + cout << boost::detail::setw(40) << left << "Success ratio" << "= " << p << "\n"; + cout << boost::detail::setw(40) << left << "Maximum Number of \"successes\" permitted" << "= " << successes << "\n"; // // Define a table of confidence intervals: // @@ -61,12 +62,12 @@ void find_max_sample_size(double p, unsigned successes) for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); // calculate trials: double t = binomial_distribution<>::find_maximum_number_of_trials(successes, p, alpha[i]); t = floor(t); // Print Trials: - cout << fixed << setprecision(0) << setw(15) << right << t << endl; + cout << fixed << boost::detail::setprecision(0) << boost::detail::setw(15) << right << t << endl; } cout << endl; } diff --git a/example/chi_square_std_dev_test.cpp b/example/chi_square_std_dev_test.cpp index e6b195903..4cf6834cc 100644 --- a/example/chi_square_std_dev_test.cpp +++ b/example/chi_square_std_dev_test.cpp @@ -6,12 +6,13 @@ // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) +#include +#include #include using std::cout; using std::endl; using std::left; using std::fixed; using std::right; using std::scientific; -#include -using std::setw; -using std::setprecision; +using boost::detail::setw; +using boost::detail::setprecision; #include @@ -41,9 +42,9 @@ void confidence_limits_on_std_deviation( "________________________________________________\n" "2-Sided Confidence Limits For Standard Deviation\n" "________________________________________________\n\n"; - cout << setprecision(7); - cout << setw(40) << left << "Number of Observations" << "= " << N << "\n"; - cout << setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; + cout << boost::detail::setprecision(7); + cout << boost::detail::setw(40) << left << "Number of Observations" << "= " << N << "\n"; + cout << boost::detail::setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; // // Define a table of significance/risk levels: double alpha[] = { 0.5, 0.25, 0.1, 0.05, 0.01, 0.001, 0.0001, 0.00001 }; @@ -63,13 +64,13 @@ void confidence_limits_on_std_deviation( for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); // Calculate limits: double lower_limit = sqrt((N - 1) * Sd * Sd / quantile(complement(dist, alpha[i] / 2))); double upper_limit = sqrt((N - 1) * Sd * Sd / quantile(dist, alpha[i] / 2)); // Print Limits: - cout << fixed << setprecision(5) << setw(15) << right << lower_limit; - cout << fixed << setprecision(5) << setw(15) << right << upper_limit << endl; + cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << lower_limit; + cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << upper_limit << endl; } cout << endl; } // void confidence_limits_on_std_deviation @@ -97,9 +98,9 @@ void confidence_limits_on_std_deviation_alpha( "________________________________________________\n" "2-Sided Confidence Limits For Standard Deviation\n" "________________________________________________\n\n"; - cout << setprecision(7); - cout << setw(40) << left << "Confidence level (two-sided) " << "= " << alpha << "\n"; - cout << setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; + cout << boost::detail::setprecision(7); + cout << boost::detail::setw(40) << left << "Confidence level (two-sided) " << "= " << alpha << "\n"; + cout << boost::detail::setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; cout << "\n\n" // Print table header: "_____________________________________________\n" @@ -113,13 +114,13 @@ void confidence_limits_on_std_deviation_alpha( chi_squared dist(N - 1); // Now print out the data for the table row. - cout << fixed << setprecision(3) << setw(10) << right << N; + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << N; // Calculate limits: (alpha /2 because it is a two-sided (upper and lower limit) test. double lower_limit = sqrt((N - 1) * Sd * Sd / quantile(complement(dist, alpha / 2))); double upper_limit = sqrt((N - 1) * Sd * Sd / quantile(dist, alpha / 2)); // Print Limits: - cout << fixed << setprecision(4) << setw(15) << right << lower_limit; - cout << fixed << setprecision(4) << setw(15) << right << upper_limit << endl; + cout << fixed << boost::detail::setprecision(4) << boost::detail::setw(15) << right << lower_limit; + cout << fixed << boost::detail::setprecision(4) << boost::detail::setw(15) << right << upper_limit << endl; } cout << endl; }// void confidence_limits_on_std_deviation_alpha @@ -149,53 +150,53 @@ void chi_squared_test( "______________________________________________\n" "Chi Squared test for sample standard deviation\n" "______________________________________________\n\n"; - cout << setprecision(5); - cout << setw(55) << left << "Number of Observations" << "= " << N << "\n"; - cout << setw(55) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; - cout << setw(55) << left << "Expected True Standard Deviation" << "= " << D << "\n\n"; + cout << boost::detail::setprecision(5); + cout << boost::detail::setw(55) << left << "Number of Observations" << "= " << N << "\n"; + cout << boost::detail::setw(55) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; + cout << boost::detail::setw(55) << left << "Expected True Standard Deviation" << "= " << D << "\n\n"; // // Now we can calculate and output some stats: // // test-statistic: double t_stat = (N - 1) * (Sd / D) * (Sd / D); - cout << setw(55) << left << "Test Statistic" << "= " << t_stat << "\n"; + cout << boost::detail::setw(55) << left << "Test Statistic" << "= " << t_stat << "\n"; // // Finally define our distribution, and get the probability: // chi_squared dist(N - 1); double p = cdf(dist, t_stat); - cout << setw(55) << left << "CDF of test statistic: " << "= " - << setprecision(3) << scientific << p << "\n"; + cout << boost::detail::setw(55) << left << "CDF of test statistic: " << "= " + << boost::detail::setprecision(3) << scientific << p << "\n"; double ucv = quantile(complement(dist, alpha)); double ucv2 = quantile(complement(dist, alpha / 2)); double lcv = quantile(dist, alpha); double lcv2 = quantile(dist, alpha / 2); - cout << setw(55) << left << "Upper Critical Value at alpha: " << "= " - << setprecision(3) << scientific << ucv << "\n"; - cout << setw(55) << left << "Upper Critical Value at alpha/2: " << "= " - << setprecision(3) << scientific << ucv2 << "\n"; - cout << setw(55) << left << "Lower Critical Value at alpha: " << "= " - << setprecision(3) << scientific << lcv << "\n"; - cout << setw(55) << left << "Lower Critical Value at alpha/2: " << "= " - << setprecision(3) << scientific << lcv2 << "\n\n"; + cout << boost::detail::setw(55) << left << "Upper Critical Value at alpha: " << "= " + << boost::detail::setprecision(3) << scientific << ucv << "\n"; + cout << boost::detail::setw(55) << left << "Upper Critical Value at alpha/2: " << "= " + << boost::detail::setprecision(3) << scientific << ucv2 << "\n"; + cout << boost::detail::setw(55) << left << "Lower Critical Value at alpha: " << "= " + << boost::detail::setprecision(3) << scientific << lcv << "\n"; + cout << boost::detail::setw(55) << left << "Lower Critical Value at alpha/2: " << "= " + << boost::detail::setprecision(3) << scientific << lcv2 << "\n\n"; // // Finally print out results of alternative hypothesis: // - cout << setw(55) << left << + cout << boost::detail::setw(55) << left << "Results for Alternative Hypothesis and alpha" << "= " - << setprecision(4) << fixed << alpha << "\n\n"; + << boost::detail::setprecision(4) << fixed << alpha << "\n\n"; cout << "Alternative Hypothesis Conclusion\n"; - cout << "Standard Deviation != " << setprecision(3) << fixed << D << " "; + cout << "Standard Deviation != " << boost::detail::setprecision(3) << fixed << D << " "; if((ucv2 < t_stat) || (lcv2 > t_stat)) cout << "NOT REJECTED\n"; else cout << "REJECTED\n"; - cout << "Standard Deviation < " << setprecision(3) << fixed << D << " "; + cout << "Standard Deviation < " << boost::detail::setprecision(3) << fixed << D << " "; if(lcv > t_stat) cout << "NOT REJECTED\n"; else cout << "REJECTED\n"; - cout << "Standard Deviation > " << setprecision(3) << fixed << D << " "; + cout << "Standard Deviation > " << boost::detail::setprecision(3) << fixed << D << " "; if(ucv < t_stat) cout << "NOT REJECTED\n"; else @@ -220,9 +221,9 @@ void chi_squared_sample_sized( "_____________________________________________________________\n" "Estimated sample sizes required for various confidence levels\n" "_____________________________________________________________\n\n"; - cout << setprecision(5); - cout << setw(40) << left << "True Variance" << "= " << variance << "\n"; - cout << setw(40) << left << "Difference to detect" << "= " << diff << "\n"; + cout << boost::detail::setprecision(5); + cout << boost::detail::setw(40) << left << "True Variance" << "= " << variance << "\n"; + cout << boost::detail::setw(40) << left << "Difference to detect" << "= " << diff << "\n"; // // Define a table of significance levels: // @@ -243,21 +244,21 @@ void chi_squared_sample_sized( for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); // Calculate df for a lower single-sided test: double df = chi_squared::find_degrees_of_freedom( -diff, alpha[i], alpha[i], variance); // Convert to integral sample size (df is a floating point value in this implementation): double size = ceil(df) + 1; // Print size: - cout << fixed << setprecision(0) << setw(16) << right << size; + cout << fixed << boost::detail::setprecision(0) << boost::detail::setw(16) << right << size; // Calculate df for an upper single-sided test: df = chi_squared::find_degrees_of_freedom( diff, alpha[i], alpha[i], variance); // Convert to integral sample size: size = ceil(df) + 1; // Print size: - cout << fixed << setprecision(0) << setw(16) << right << size << endl; + cout << fixed << boost::detail::setprecision(0) << boost::detail::setw(16) << right << size << endl; } cout << endl; } diff --git a/example/f_test.cpp b/example/f_test.cpp index f7fabdee3..0c5aaf551 100644 --- a/example/f_test.cpp +++ b/example/f_test.cpp @@ -13,12 +13,13 @@ # pragma warning(disable: 4180) // qualifier has no effect (in Fusion). #endif +#include +#include #include using std::cout; using std::endl; using std::left; using std::fixed; using std::right; using std::scientific; -#include -using std::setw; -using std::setprecision; +using boost::detail::setw; +using boost::detail::setprecision; #include @@ -46,45 +47,45 @@ void f_test( "____________________________________\n" "F test for equal standard deviations\n" "____________________________________\n\n"; - cout << setprecision(5); + cout << boost::detail::setprecision(5); cout << "Sample 1:\n"; - cout << setw(55) << left << "Number of Observations" << "= " << N1 << "\n"; - cout << setw(55) << left << "Sample Standard Deviation" << "= " << sd1 << "\n\n"; + cout << boost::detail::setw(55) << left << "Number of Observations" << "= " << N1 << "\n"; + cout << boost::detail::setw(55) << left << "Sample Standard Deviation" << "= " << sd1 << "\n\n"; cout << "Sample 2:\n"; - cout << setw(55) << left << "Number of Observations" << "= " << N2 << "\n"; - cout << setw(55) << left << "Sample Standard Deviation" << "= " << sd2 << "\n\n"; + cout << boost::detail::setw(55) << left << "Number of Observations" << "= " << N2 << "\n"; + cout << boost::detail::setw(55) << left << "Sample Standard Deviation" << "= " << sd2 << "\n\n"; // // Now we can calculate and output some stats: // // F-statistic: double F = (sd1 / sd2); F *= F; - cout << setw(55) << left << "Test Statistic" << "= " << F << "\n\n"; + cout << boost::detail::setw(55) << left << "Test Statistic" << "= " << F << "\n\n"; // // Finally define our distribution, and get the probability: // fisher_f dist(N1 - 1, N2 - 1); double p = cdf(dist, F); - cout << setw(55) << left << "CDF of test statistic: " << "= " - << setprecision(3) << scientific << p << "\n"; + cout << boost::detail::setw(55) << left << "CDF of test statistic: " << "= " + << boost::detail::setprecision(3) << scientific << p << "\n"; double ucv = quantile(complement(dist, alpha)); double ucv2 = quantile(complement(dist, alpha / 2)); double lcv = quantile(dist, alpha); double lcv2 = quantile(dist, alpha / 2); - cout << setw(55) << left << "Upper Critical Value at alpha: " << "= " - << setprecision(3) << scientific << ucv << "\n"; - cout << setw(55) << left << "Upper Critical Value at alpha/2: " << "= " - << setprecision(3) << scientific << ucv2 << "\n"; - cout << setw(55) << left << "Lower Critical Value at alpha: " << "= " - << setprecision(3) << scientific << lcv << "\n"; - cout << setw(55) << left << "Lower Critical Value at alpha/2: " << "= " - << setprecision(3) << scientific << lcv2 << "\n\n"; + cout << boost::detail::setw(55) << left << "Upper Critical Value at alpha: " << "= " + << boost::detail::setprecision(3) << scientific << ucv << "\n"; + cout << boost::detail::setw(55) << left << "Upper Critical Value at alpha/2: " << "= " + << boost::detail::setprecision(3) << scientific << ucv2 << "\n"; + cout << boost::detail::setw(55) << left << "Lower Critical Value at alpha: " << "= " + << boost::detail::setprecision(3) << scientific << lcv << "\n"; + cout << boost::detail::setw(55) << left << "Lower Critical Value at alpha/2: " << "= " + << boost::detail::setprecision(3) << scientific << lcv2 << "\n\n"; // // Finally print out results of null and alternative hypothesis: // - cout << setw(55) << left << + cout << boost::detail::setw(55) << left << "Results for Alternative Hypothesis and alpha" << "= " - << setprecision(4) << fixed << alpha << "\n\n"; + << boost::detail::setprecision(4) << fixed << alpha << "\n\n"; cout << "Alternative Hypothesis Conclusion\n"; cout << "Standard deviations are unequal (two sided test) "; if((ucv2 < F) || (lcv2 > F)) diff --git a/example/find_location_example.cpp b/example/find_location_example.cpp index 97c5302a5..9f9208a5d 100644 --- a/example/find_location_example.cpp +++ b/example/find_location_example.cpp @@ -36,8 +36,8 @@ the algorithms to find location (and some std output of course). #include using std::cout; using std::endl; -#include - using std::setw; using std::setprecision; +#include + using boost::detail::setw; using boost::detail::setprecision; #include using std::numeric_limits; diff --git a/example/find_mean_and_sd_normal.cpp b/example/find_mean_and_sd_normal.cpp index 9a09c7a8c..c4f0ecc5b 100644 --- a/example/find_mean_and_sd_normal.cpp +++ b/example/find_mean_and_sd_normal.cpp @@ -30,10 +30,11 @@ the algorithms to find location and scale using boost::math::complement; using boost::math::policies::policy; +#include #include using std::cout; using std::endl; using std::left; using std::showpoint; using std::noshowpoint; -#include - using std::setw; using std::setprecision; +#include + using boost::detail::setw; using boost::detail::setprecision; #include using std::numeric_limits; #include diff --git a/example/find_root_example.cpp b/example/find_root_example.cpp index 65b2f3b97..ade2b80b3 100644 --- a/example/find_root_example.cpp +++ b/example/find_root_example.cpp @@ -23,10 +23,11 @@ First we need some includes to access the normal distribution #include // for normal_distribution using boost::math::normal; // typedef provides default type is double. +#include #include using std::cout; using std::endl; using std::left; using std::showpoint; using std::noshowpoint; -#include - using std::setw; using std::setprecision; +#include + using boost::detail::setw; using boost::detail::setprecision; #include using std::numeric_limits; #include diff --git a/example/find_scale_example.cpp b/example/find_scale_example.cpp index b3b42b468..53d2f576a 100644 --- a/example/find_scale_example.cpp +++ b/example/find_scale_example.cpp @@ -27,8 +27,8 @@ the algorithms to find scale (and some std output of course). #include using std::cout; using std::endl; -#include - using std::setw; using std::setprecision; +#include + using boost::detail::setw; using boost::detail::setprecision; #include using std::numeric_limits; //] [/find_scale1] diff --git a/example/geometric_examples.cpp b/example/geometric_examples.cpp index 410b4d980..9b0ee2523 100644 --- a/example/geometric_examples.cpp +++ b/example/geometric_examples.cpp @@ -48,11 +48,12 @@ and we need some std library iostream, of course. // for negative_binomial_distribution using boost::math::normal; // typedef provides default type is double. +#include #include using std::cout; using std::endl; using std::noshowpoint; using std::fixed; using std::right; using std::left; -#include - using std::setprecision; using std::setw; +#include + using boost::detail::setprecision; using boost::detail::setw; #include using std::numeric_limits; diff --git a/example/inverse_chi_squared_example.cpp b/example/inverse_chi_squared_example.cpp index 717046022..83eee6d3a 100644 --- a/example/inverse_chi_squared_example.cpp +++ b/example/inverse_chi_squared_example.cpp @@ -15,9 +15,9 @@ using boost::math::inverse_chi_squared; //typedef for nverse_chi_squared_distrib #include using std::cout; using std::endl; -#include -using std::setprecision; -using std::setw; +#include +using boost::detail::setprecision; +using boost::detail::setw; #include using std::sqrt; @@ -120,15 +120,15 @@ int main() for (double x = 0.0; x < 1.; x += 0.1) { cout - << setw(width) << x - << ' ' << setw(width) << pdf(ichsq, x) // unscaled - << ' ' << setw(width) << naive_pdf1(nu, x) // Wiki def 1 unscaled matches graph - << ' ' << setw(width) << naive_pdf2(nu, x) // scale = 1 - 2nd definition. - << ' ' << setw(width) << naive_pdf3(nu, 1/nu, x) // scaled - << ' ' << setw(width) << naive_pdf4(nu, 1/nu, x) // scaled - << ' ' << setw(width) << pdf(sichsq, x) // scaled - << ' ' << setw(width) << cdf(sichsq, x) // scaled - << ' ' << setw(width) << cdf(ichsq, x) // unscaled + << boost::detail::setw(width) << x + << ' ' << boost::detail::setw(width) << pdf(ichsq, x) // unscaled + << ' ' << boost::detail::setw(width) << naive_pdf1(nu, x) // Wiki def 1 unscaled matches graph + << ' ' << boost::detail::setw(width) << naive_pdf2(nu, x) // scale = 1 - 2nd definition. + << ' ' << boost::detail::setw(width) << naive_pdf3(nu, 1/nu, x) // scaled + << ' ' << boost::detail::setw(width) << naive_pdf4(nu, 1/nu, x) // scaled + << ' ' << boost::detail::setw(width) << pdf(sichsq, x) // scaled + << ' ' << boost::detail::setw(width) << cdf(sichsq, x) // scaled + << ' ' << boost::detail::setw(width) << cdf(ichsq, x) // unscaled << endl; } } diff --git a/example/inverse_chi_squared_find_df_example.cpp b/example/inverse_chi_squared_find_df_example.cpp index ea0f932dc..ac3ad1ab9 100644 --- a/example/inverse_chi_squared_find_df_example.cpp +++ b/example/inverse_chi_squared_find_df_example.cpp @@ -17,9 +17,9 @@ using boost::math::inverse_chi_squared; //typedef for nverse_chi_squared_distrib #include using std::cout; using std::endl; -#include -using std::setprecision; -using std::setw; +#include +using boost::detail::setprecision; +using boost::detail::setw; #include using std::sqrt; diff --git a/example/inverse_gamma_distribution_example.cpp b/example/inverse_gamma_distribution_example.cpp index 147c8084c..16d1e266f 100644 --- a/example/inverse_gamma_distribution_example.cpp +++ b/example/inverse_gamma_distribution_example.cpp @@ -21,8 +21,8 @@ using boost::math::inverse_gamma_distribution; #include using std::cout; using std::endl; -#include -using std::setprecision; +#include +using boost::detail::setprecision; #include using std::sqrt; diff --git a/example/inverse_gamma_example.cpp b/example/inverse_gamma_example.cpp index 91495e794..1952f2646 100644 --- a/example/inverse_gamma_example.cpp +++ b/example/inverse_gamma_example.cpp @@ -18,8 +18,8 @@ using boost::math::gamma_p_inv; // Compute x given a #include using std::cout; using std::endl; -#include - using std::setprecision; +#include + using boost::detail::setprecision; #include using std::sqrt; #include diff --git a/example/inverse_gaussian_example.cpp b/example/inverse_gaussian_example.cpp index 155b531b7..2c48d55f8 100644 --- a/example/inverse_gaussian_example.cpp +++ b/example/inverse_gaussian_example.cpp @@ -45,16 +45,17 @@ using boost::math::normal; // typedef provides default type is double. #include using boost::array; +#include #include using std::cout; using std::endl; using std::left; using std::showpoint; using std::noshowpoint; -#include - using std::setw; using std::setprecision; +#include + using boost::detail::setw; using boost::detail::setprecision; #include using std::numeric_limits; #include - using std::string; -#include using std::stringstream; +#include + using std::string; // const double tol = 3 * numeric_limits::epsilon(); diff --git a/example/laplace_example.cpp b/example/laplace_example.cpp index ed99dba21..47111e9b7 100644 --- a/example/laplace_example.cpp +++ b/example/laplace_example.cpp @@ -23,10 +23,11 @@ First we need some includes to access the laplace & normal distributions #include // for normal_distribution using boost::math::normal; // typedef provides default type is double. +#include #include using std::cout; using std::endl; using std::left; using std::showpoint; using std::noshowpoint; -#include - using std::setw; using std::setprecision; +#include + using boost::detail::setw; using boost::detail::setprecision; #include using std::numeric_limits; @@ -43,7 +44,7 @@ int main() double range = 4; // min and max z = -range to +range. //int precision = 17; // traditional tables are only computed to much lower precision. int precision = 4; // traditional table at much lower precision. - int width = 10; // for use with setw. + int width = 10; // for use with boost::detail::setw. // Construct standard laplace & normal distributions l & s normal s; // (default location or mean = zero, and scale or standard deviation = unity) @@ -60,10 +61,10 @@ int main() cout.precision(5); for (double z = -range; z < range + step; z += step) { - cout << left << setprecision(3) << setw(6) << z << " " - << setprecision(precision) << setw(width) << pdf(s, z) << " " - << setprecision(precision) << setw(width) << pdf(l, z)<< " (" - << setprecision(precision) << setw(width) << pdf(l, z) - pdf(s, z) // difference. + cout << left << boost::detail::setprecision(3) << boost::detail::setw(6) << z << " " + << boost::detail::setprecision(precision) << boost::detail::setw(width) << pdf(s, z) << " " + << boost::detail::setprecision(precision) << boost::detail::setw(width) << pdf(l, z)<< " (" + << boost::detail::setprecision(precision) << boost::detail::setw(width) << pdf(l, z) - pdf(s, z) // difference. << ")" << endl; } cout.precision(6); // default @@ -79,10 +80,10 @@ int main() cout << " z CDF normal laplace (difference)" << endl; for (double z = -range; z < range + step; z += step) { - cout << left << setprecision(3) << setw(6) << z << " " - << setprecision(precision) << setw(width) << cdf(s, z) << " " - << setprecision(precision) << setw(width) << cdf(l, z) << " (" - << setprecision(precision) << setw(width) << cdf(l, z) - cdf(s, z) // difference. + cout << left << boost::detail::setprecision(3) << boost::detail::setw(6) << z << " " + << boost::detail::setprecision(precision) << boost::detail::setw(width) << cdf(s, z) << " " + << boost::detail::setprecision(precision) << boost::detail::setw(width) << cdf(l, z) << " (" + << boost::detail::setprecision(precision) << boost::detail::setw(width) << cdf(l, z) - cdf(s, z) // difference. << ")" << endl; } cout.precision(6); // default diff --git a/example/nc_chi_sq_example.cpp b/example/nc_chi_sq_example.cpp index 189badd01..99372f0d2 100644 --- a/example/nc_chi_sq_example.cpp +++ b/example/nc_chi_sq_example.cpp @@ -30,7 +30,8 @@ using boost::math::non_central_chi_squared; #include using std::cout; using std::endl; -using std::setprecision; +#include +using boost::detail::setprecision; int main() { @@ -69,7 +70,7 @@ int main() /*` Then output the cell value: */ - cout << "[" << setprecision(3) << beta << "]"; + cout << "[" << boost::detail::setprecision(3) << beta << "]"; } cout << "]" << endl; } diff --git a/example/neg_binom_confidence_limits.cpp b/example/neg_binom_confidence_limits.cpp index 4cb11a3d7..67b855320 100644 --- a/example/neg_binom_confidence_limits.cpp +++ b/example/neg_binom_confidence_limits.cpp @@ -22,11 +22,12 @@ First we need some includes to access the negative binomial distribution #include using boost::math::negative_binomial; +#include #include using std::cout; using std::endl; -#include -using std::setprecision; -using std::setw; using std::left; using std::fixed; using std::right; +#include +using boost::detail::setprecision; +using boost::detail::setw; using std::left; using std::fixed; using std::right; /*` First define a table of significance levels: these are the @@ -57,11 +58,11 @@ void confidence_limits_on_frequency(unsigned trials, unsigned successes) "______________________________________________\n" "2-Sided Confidence Limits For Success Fraction\n" "______________________________________________\n\n"; - cout << setprecision(7); - cout << setw(40) << left << "Number of trials" << " = " << trials << "\n"; - cout << setw(40) << left << "Number of successes" << " = " << successes << "\n"; - cout << setw(40) << left << "Number of failures" << " = " << trials - successes << "\n"; - cout << setw(40) << left << "Observed frequency of occurrence" << " = " << double(successes) / trials << "\n"; + cout << boost::detail::setprecision(7); + cout << boost::detail::setw(40) << left << "Number of trials" << " = " << trials << "\n"; + cout << boost::detail::setw(40) << left << "Number of successes" << " = " << successes << "\n"; + cout << boost::detail::setw(40) << left << "Number of failures" << " = " << trials - successes << "\n"; + cout << boost::detail::setw(40) << left << "Observed frequency of occurrence" << " = " << double(successes) / trials << "\n"; // Print table header: cout << "\n\n" @@ -86,13 +87,13 @@ then we would *not* have divided by two. for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); // Calculate bounds: double lower = negative_binomial::find_lower_bound_on_p(trials, successes, alpha[i]/2); double upper = negative_binomial::find_upper_bound_on_p(trials, successes, alpha[i]/2); // Print limits: - cout << fixed << setprecision(5) << setw(15) << right << lower; - cout << fixed << setprecision(5) << setw(15) << right << upper << endl; + cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << lower; + cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << upper << endl; } cout << endl; } // void confidence_limits_on_frequency(unsigned trials, unsigned successes) diff --git a/example/neg_binomial_sample_sizes.cpp b/example/neg_binomial_sample_sizes.cpp index d01089e9d..c64157f70 100644 --- a/example/neg_binomial_sample_sizes.cpp +++ b/example/neg_binomial_sample_sizes.cpp @@ -17,14 +17,15 @@ double k, // number of failures (events), k >= 0. double p, // fraction of trails for which event occurs, 0 <= p <= 1. double probability); // probability threshold, 0 <= probability <= 1. +#include #include using std::cout; using std::endl; using std::fixed; using std::right; -#include -using std::setprecision; -using std::setw; +#include +using boost::detail::setprecision; +using boost::detail::setw; //[neg_binomial_sample_sizes @@ -64,7 +65,7 @@ void find_number_of_trials(double failures, double p) // required number of failures DOES exceed "failures". cout << "\n""Target number of failures = " << (int)failures; - cout << ", Success fraction = " << fixed << setprecision(1) << 100 * p << "%" << endl; + cout << ", Success fraction = " << fixed << boost::detail::setprecision(1) << 100 * p << "%" << endl; // Print table header: cout << "____________________________\n" "Confidence Min Number\n" @@ -73,9 +74,9 @@ void find_number_of_trials(double failures, double p) // Now print out the data for the alpha table values. for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence values %: - cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]) << " " + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]) << " " // find_minimum_number_of_trials - << setw(6) << right + << boost::detail::setw(6) << right << (int)ceil(negative_binomial::find_minimum_number_of_trials(failures, p, alpha[i])) << endl; } diff --git a/example/negative_binomial_example1.cpp b/example/negative_binomial_example1.cpp index 928811d09..f02554591 100644 --- a/example/negative_binomial_example1.cpp +++ b/example/negative_binomial_example1.cpp @@ -59,11 +59,12 @@ and we need some std library iostream, of course. using ::boost::math::cdf; // Cumulative density function. using ::boost::math::quantile; +#include #include using std::cout; using std::endl; using std::noshowpoint; using std::fixed; using std::right; using std::left; -#include - using std::setprecision; using std::setw; +#include + using boost::detail::setprecision; using boost::detail::setw; #include using std::numeric_limits; @@ -375,7 +376,7 @@ Finally, we can tabulate the probability for the last sale being exactly on each cout.precision(5); for (int i = (int)sales_quota; i < all_houses+1; i++) { - cout << left << setw(3) << i << " " << setw(8) << cdf(nb, i - sales_quota) << endl; + cout << left << boost::detail::setw(3) << i << " " << boost::detail::setw(8) << cdf(nb, i - sales_quota) << endl; } cout << endl; /*` diff --git a/example/negative_binomial_example2.cpp b/example/negative_binomial_example2.cpp index 601180c34..155c0029a 100644 --- a/example/negative_binomial_example2.cpp +++ b/example/negative_binomial_example2.cpp @@ -19,12 +19,14 @@ // negative_binomial is the probability that k or fewer failures // preceed the r th trial's success. +#include #include +#include using std::cout; using std::endl; -using std::setprecision; +using boost::detail::setprecision; using std::showpoint; -using std::setw; +using boost::detail::setw; using std::left; using std::right; #include @@ -63,10 +65,10 @@ int main() // Compare with the cdf double cdf8 = cdf(mynbdist, static_cast(k)); double diff = sum - cdf8; // Expect the diference to be very small. - cout << setprecision(17) << "Sum pdfs = " << sum << ' ' // sum = 0.40025683281803698 + cout << boost::detail::setprecision(17) << "Sum pdfs = " << sum << ' ' // sum = 0.40025683281803698 << ", cdf = " << cdf(mynbdist, static_cast(k)) // cdf = 0.40025683281803687 << ", difference = " // difference = 0.50000000000000000 - << setprecision(1) << diff/ (std::numeric_limits::epsilon() * sum) + << boost::detail::setprecision(1) << diff/ (std::numeric_limits::epsilon() * sum) << " in epsilon units." << endl; // Note: Use boost::math::tools::epsilon rather than std::numeric_limits @@ -85,10 +87,10 @@ int main() cout << "\n"" k pdf cdf""\n" << endl; for (int k = 0; k < maxk; k++) { - cout << right << setprecision(17) << showpoint - << right << setw(3) << k << ", " - << left << setw(25) << pdf(mynbdist, static_cast(k)) - << left << setw(25) << cdf(mynbdist, static_cast(k)) + cout << right << boost::detail::setprecision(17) << showpoint + << right << boost::detail::setw(3) << k << ", " + << left << boost::detail::setw(25) << pdf(mynbdist, static_cast(k)) + << left << boost::detail::setw(25) << cdf(mynbdist, static_cast(k)) << endl; } cout << endl; diff --git a/example/normal_misc_examples.cpp b/example/normal_misc_examples.cpp index 4503847dd..531d2d097 100644 --- a/example/normal_misc_examples.cpp +++ b/example/normal_misc_examples.cpp @@ -21,10 +21,11 @@ First we need some includes to access the normal distribution #include // for normal_distribution using boost::math::normal; // typedef provides default type is double. +#include #include using std::cout; using std::endl; using std::left; using std::showpoint; using std::noshowpoint; -#include - using std::setw; using std::setprecision; +#include + using boost::detail::setw; using boost::detail::setprecision; #include using std::numeric_limits; @@ -57,8 +58,8 @@ int main() cout.precision(5); for (double z = -range; z < range + step; z += step) { - cout << left << setprecision(3) << setw(6) << z << " " - << setprecision(precision) << setw(12) << pdf(s, z) << endl; + cout << left << boost::detail::setprecision(3) << boost::detail::setw(6) << z << " " + << boost::detail::setprecision(precision) << boost::detail::setw(12) << pdf(s, z) << endl; } cout.precision(6); // default /*`And the area under the normal curve from -[infin] up to z, @@ -71,8 +72,8 @@ int main() cout << " z " " cdf " << endl; for (double z = -range; z < range + step; z += step) { - cout << left << setprecision(3) << setw(6) << z << " " - << setprecision(precision) << setw(12) << cdf(s, z) << endl; + cout << left << boost::detail::setprecision(3) << boost::detail::setw(6) << z << " " + << boost::detail::setprecision(precision) << boost::detail::setw(12) << cdf(s, z) << endl; } cout.precision(6); // default @@ -110,7 +111,7 @@ It is convenient to have an alpha level for the probability that z lies outside This will not be some nice neat number like 0.05, but we can easily calculate it, */ double alpha1 = cdf(s, -1) * 2; // 0.3173105078629142 - cout << setprecision(17) << "Significance level for z == 1 is " << alpha1 << endl; + cout << boost::detail::setprecision(17) << "Significance level for z == 1 is " << alpha1 << endl; /*` and place in our array of favorite alpha values. */ @@ -122,11 +123,11 @@ Confidence value as % is (1 - alpha) * 100 (so alpha 0.05 == 95% confidence) that the true occurrence frequency lies *inside* the calculated interval. */ - cout << "level of significance (alpha)" << setprecision(4) << endl; + cout << "level of significance (alpha)" << boost::detail::setprecision(4) << endl; cout << "2-sided 1 -sided z(alpha) " << endl; for (int i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { - cout << setw(15) << alpha[i] << setw(15) << alpha[i] /2 << setw(10) << quantile(complement(s, alpha[i]/2)) << endl; + cout << boost::detail::setw(15) << alpha[i] << boost::detail::setw(15) << alpha[i] /2 << boost::detail::setw(10) << quantile(complement(s, alpha[i]/2)) << endl; // Use quantile(complement(s, alpha[i]/2)) to avoid potential loss of accuracy from quantile(s, 1 - alpha[i]/2) } cout << endl; diff --git a/example/policy_eg_10.cpp b/example/policy_eg_10.cpp index 87f84c090..22f96f7ae 100644 --- a/example/policy_eg_10.cpp +++ b/example/policy_eg_10.cpp @@ -20,12 +20,13 @@ all the possible quantiles at 0.05 and 0.95. Begin by including the needed headers (and some using statements for conciseness): */ +#include #include using std::cout; using std::endl; using std::left; using std::fixed; using std::right; using std::scientific; -#include -using std::setw; -using std::setprecision; +#include +using boost::detail::setw; +using boost::detail::setprecision; #include /*` @@ -96,62 +97,62 @@ int main() "Lower quantiles are calculated at p = 0.05\n\n" "Upper quantiles at p = 0.95.\n\n"; - cout << setw(25) << right - << "Policy"<< setw(18) << right - << "Lower Quantile" << setw(18) << right + cout << boost::detail::setw(25) << right + << "Policy"<< boost::detail::setw(18) << right + << "Lower Quantile" << boost::detail::setw(18) << right << "Upper Quantile" << endl; // Test integer_round_outwards: - cout << setw(25) << right + cout << boost::detail::setw(25) << right << "integer_round_outwards" - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_round_outwards(50, 0.5), 0.05) - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_round_outwards(50, 0.5), 0.95) << endl; // Test integer_round_inwards: - cout << setw(25) << right + cout << boost::detail::setw(25) << right << "integer_round_inwards" - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_round_inwards(50, 0.5), 0.05) - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_round_inwards(50, 0.5), 0.95) << endl; // Test integer_round_down: - cout << setw(25) << right + cout << boost::detail::setw(25) << right << "integer_round_down" - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_round_down(50, 0.5), 0.05) - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_round_down(50, 0.5), 0.95) << endl; // Test integer_round_up: - cout << setw(25) << right + cout << boost::detail::setw(25) << right << "integer_round_up" - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_round_up(50, 0.5), 0.05) - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_round_up(50, 0.5), 0.95) << endl; // Test integer_round_nearest: - cout << setw(25) << right + cout << boost::detail::setw(25) << right << "integer_round_nearest" - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_round_nearest(50, 0.5), 0.05) - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_round_nearest(50, 0.5), 0.95) << endl; // Test real: - cout << setw(25) << right + cout << boost::detail::setw(25) << right << "real" - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_real_quantile(50, 0.5), 0.05) - << setw(18) << right + << boost::detail::setw(18) << right << quantile(binom_real_quantile(50, 0.5), 0.95) << endl; } // int main() diff --git a/example/policy_eg_9.cpp b/example/policy_eg_9.cpp index 98234c29e..2a558d4a6 100644 --- a/example/policy_eg_9.cpp +++ b/example/policy_eg_9.cpp @@ -7,6 +7,7 @@ // Note that this file contains quickbook mark-up as well as code // and comments, don't change any of the special comment mark-ups! +#include #include using std::cout; using std::endl; using std::cerr; @@ -83,7 +84,7 @@ T user_domain_error(const char* function, const char* message, const T& val) msg += ": \n"; int prec = 2 + (std::numeric_limits::digits * 30103UL) / 100000UL; // int prec = std::numeric_limits::max_digits10; // For C++0X Standard Library - msg += (boost::format(message) % boost::io::group(std::setprecision(prec), val)).str(); + msg += (boost::format(message) % boost::io::group(boost::detail::setprecision(prec), val)).str(); /*` 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 @@ -201,7 +202,7 @@ T user_evaluation_error(const char* function, const char* message, const T& val) msg += ": \n"; int prec = 2 + (std::numeric_limits::digits * 30103UL) / 100000UL; // int prec = std::numeric_limits::max_digits10; // For C++0X Standard Library - msg += (boost::format(message) % boost::io::group(std::setprecision(prec), val)).str(); + msg += (boost::format(message) % boost::io::group(boost::detail::setprecision(prec), val)).str(); std::cerr << msg << std::endl; diff --git a/example/root_finding_example.cpp b/example/root_finding_example.cpp index 5829d981c..a1f862e46 100644 --- a/example/root_finding_example.cpp +++ b/example/root_finding_example.cpp @@ -51,8 +51,8 @@ using boost::math::tools::toms748_solve; #include using std::cout; using std::endl; -#include -using std::setw; using std::setprecision; +#include +using boost::detail::setw; using boost::detail::setprecision; #include using std::numeric_limits; diff --git a/example/students_t_example1.cpp b/example/students_t_example1.cpp index c86b89d5d..94c857de3 100644 --- a/example/students_t_example1.cpp +++ b/example/students_t_example1.cpp @@ -47,8 +47,8 @@ double value[values] = {38.9, 37.4, 37.1}; #include using std::cout; using std::endl; -#include - using std::setprecision; +#include + using boost::detail::setprecision; #include using std::sqrt; diff --git a/example/students_t_example2.cpp b/example/students_t_example2.cpp index bbd423162..9b1109246 100644 --- a/example/students_t_example2.cpp +++ b/example/students_t_example2.cpp @@ -35,9 +35,9 @@ #include using std::cout; using std::endl; -#include - using std::setprecision; - using std::setw; +#include + using boost::detail::setprecision; + using boost::detail::setw; #include using std::sqrt; @@ -68,7 +68,7 @@ int main() for (int value = 0; value < values; value++) { // Echo data and calculate mean. sum += data[value]; - cout << setw(4) << value << ' ' << setw(14) << data[value] << endl; + cout << boost::detail::setw(4) << value << ' ' << boost::detail::setw(14) << data[value] << endl; } double mean = sum /static_cast(values); cout << "Mean = " << mean << endl; // 25.2283 diff --git a/example/students_t_example3.cpp b/example/students_t_example3.cpp index 289daec09..0572ef481 100644 --- a/example/students_t_example3.cpp +++ b/example/students_t_example3.cpp @@ -34,8 +34,8 @@ #include using std::cout; using std::endl; -#include - using std::setprecision; using std::setw; +#include + using boost::detail::setprecision; using boost::detail::setw; #include using std::sqrt; @@ -71,7 +71,7 @@ int main() { // Echo data and differences. diffs[portion] = data[portion][0] - data[portion][1]; mean_diff += diffs[portion]; - cout << setw(4) << portion << ' ' << setw(14) << data[portion][0] << ' ' << setw(18)<< data[portion][1] << ' ' << setw(9) << diffs[portion] << endl; + cout << boost::detail::setw(4) << portion << ' ' << boost::detail::setw(14) << data[portion][0] << ' ' << boost::detail::setw(18)<< data[portion][1] << ' ' << boost::detail::setw(9) << diffs[portion] << endl; } mean_diff /= portions; cout << "Mean difference = " << mean_diff << endl; // -1.75 diff --git a/example/students_t_single_sample.cpp b/example/students_t_single_sample.cpp index 84138b9a0..ac8473966 100644 --- a/example/students_t_single_sample.cpp +++ b/example/students_t_single_sample.cpp @@ -16,12 +16,13 @@ // avoid "using namespace std;" and "using namespace boost::math;" // to avoid potential ambiguity with names in std random. +#include #include using std::cout; using std::endl; using std::left; using std::fixed; using std::right; using std::scientific; -#include -using std::setw; -using std::setprecision; +#include +using boost::detail::setw; +using boost::detail::setprecision; void confidence_limits_on_mean(double Sm, double Sd, unsigned Sn) { @@ -49,10 +50,10 @@ void confidence_limits_on_mean(double Sm, double Sd, unsigned Sn) "__________________________________\n" "2-Sided Confidence Limits For Mean\n" "__________________________________\n\n"; - cout << setprecision(7); - cout << setw(40) << left << "Number of Observations" << "= " << Sn << "\n"; - cout << setw(40) << left << "Mean" << "= " << Sm << "\n"; - cout << setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; + cout << boost::detail::setprecision(7); + cout << boost::detail::setw(40) << left << "Number of Observations" << "= " << Sn << "\n"; + cout << boost::detail::setw(40) << left << "Mean" << "= " << Sm << "\n"; + cout << boost::detail::setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; // // Define a table of significance/risk levels: // @@ -75,21 +76,21 @@ void confidence_limits_on_mean(double Sm, double Sd, unsigned Sn) for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); // calculate T: double T = quantile(complement(dist, alpha[i] / 2)); // Print T: - cout << fixed << setprecision(3) << setw(10) << right << T; + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << T; // Calculate width of interval (one sided): double w = T * Sd / sqrt(double(Sn)); // Print width: if(w < 0.01) - cout << scientific << setprecision(3) << setw(17) << right << w; + cout << scientific << boost::detail::setprecision(3) << boost::detail::setw(17) << right << w; else - cout << fixed << setprecision(3) << setw(17) << right << w; + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(17) << right << w; // Print Limits: - cout << fixed << setprecision(5) << setw(15) << right << Sm - w; - cout << fixed << setprecision(5) << setw(15) << right << Sm + w << endl; + cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << Sm - w; + cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << Sm + w << endl; } cout << endl; } // void confidence_limits_on_mean @@ -117,48 +118,48 @@ void single_sample_t_test(double M, double Sm, double Sd, unsigned Sn, double al "__________________________________\n" "Student t test for a single sample\n" "__________________________________\n\n"; - cout << setprecision(5); - cout << setw(55) << left << "Number of Observations" << "= " << Sn << "\n"; - cout << setw(55) << left << "Sample Mean" << "= " << Sm << "\n"; - cout << setw(55) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; - cout << setw(55) << left << "Expected True Mean" << "= " << M << "\n\n"; + cout << boost::detail::setprecision(5); + cout << boost::detail::setw(55) << left << "Number of Observations" << "= " << Sn << "\n"; + cout << boost::detail::setw(55) << left << "Sample Mean" << "= " << Sm << "\n"; + cout << boost::detail::setw(55) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; + cout << boost::detail::setw(55) << left << "Expected True Mean" << "= " << M << "\n\n"; // // Now we can calculate and output some stats: // // Difference in means: double diff = Sm - M; - cout << setw(55) << left << "Sample Mean - Expected Test Mean" << "= " << diff << "\n"; + cout << boost::detail::setw(55) << left << "Sample Mean - Expected Test Mean" << "= " << diff << "\n"; // Degrees of freedom: unsigned v = Sn - 1; - cout << setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; + cout << boost::detail::setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; // t-statistic: double t_stat = diff * sqrt(double(Sn)) / Sd; - cout << setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; + cout << boost::detail::setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; // // Finally define our distribution, and get the probability: // students_t dist(v); double q = cdf(complement(dist, fabs(t_stat))); - cout << setw(55) << left << "Probability that difference is due to chance" << "= " - << setprecision(3) << scientific << 2 * q << "\n\n"; + cout << boost::detail::setw(55) << left << "Probability that difference is due to chance" << "= " + << boost::detail::setprecision(3) << scientific << 2 * q << "\n\n"; // // Finally print out results of alternative hypothesis: // - cout << setw(55) << left << + cout << boost::detail::setw(55) << left << "Results for Alternative Hypothesis and alpha" << "= " - << setprecision(4) << fixed << alpha << "\n\n"; + << boost::detail::setprecision(4) << fixed << alpha << "\n\n"; cout << "Alternative Hypothesis Conclusion\n"; - cout << "Mean != " << setprecision(3) << fixed << M << " "; + cout << "Mean != " << boost::detail::setprecision(3) << fixed << M << " "; if(q < alpha / 2) cout << "NOT REJECTED\n"; else cout << "REJECTED\n"; - cout << "Mean < " << setprecision(3) << fixed << M << " "; + cout << "Mean < " << boost::detail::setprecision(3) << fixed << M << " "; if(cdf(dist, t_stat) < alpha) cout << "NOT REJECTED\n"; else cout << "REJECTED\n"; - cout << "Mean > " << setprecision(3) << fixed << M << " "; + cout << "Mean > " << boost::detail::setprecision(3) << fixed << M << " "; if(cdf(complement(dist, t_stat)) < alpha) cout << "NOT REJECTED\n"; else @@ -181,10 +182,10 @@ void single_sample_find_df(double M, double Sm, double Sd) "_____________________________________________________________\n" "Estimated sample sizes required for various confidence levels\n" "_____________________________________________________________\n\n"; - cout << setprecision(5); - cout << setw(40) << left << "True Mean" << "= " << M << "\n"; - cout << setw(40) << left << "Sample Mean" << "= " << Sm << "\n"; - cout << setw(40) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; + cout << boost::detail::setprecision(5); + cout << boost::detail::setw(40) << left << "True Mean" << "= " << M << "\n"; + cout << boost::detail::setw(40) << left << "Sample Mean" << "= " << Sm << "\n"; + cout << boost::detail::setw(40) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; // // Define a table of significance intervals: // @@ -204,21 +205,21 @@ void single_sample_find_df(double M, double Sm, double Sd) for(unsigned i = 1; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); // calculate df for single sided test: double df = students_t::find_degrees_of_freedom( fabs(M - Sm), alpha[i], alpha[i], Sd); // convert to sample size, always one more than the degrees of freedom: double size = ceil(df) + 1; // Print size: - cout << fixed << setprecision(0) << setw(16) << right << size; + cout << fixed << boost::detail::setprecision(0) << boost::detail::setw(16) << right << size; // calculate df for two sided test: df = students_t::find_degrees_of_freedom( fabs(M - Sm), alpha[i]/2, alpha[i], Sd); // convert to sample size: size = ceil(df) + 1; // Print size: - cout << fixed << setprecision(0) << setw(16) << right << size << endl; + cout << fixed << boost::detail::setprecision(0) << boost::detail::setw(16) << right << size << endl; } cout << endl; } // void single_sample_find_df diff --git a/example/students_t_two_samples.cpp b/example/students_t_two_samples.cpp index 7bf86eead..ea4278608 100644 --- a/example/students_t_two_samples.cpp +++ b/example/students_t_two_samples.cpp @@ -12,12 +12,13 @@ # pragma warning(disable: 4610) // can never be instantiated - user defined constructor required. #endif +#include #include using std::cout; using std::endl; using std::left; using std::fixed; using std::right; using std::scientific; -#include -using std::setw; -using std::setprecision; +#include +using boost::detail::setw; +using boost::detail::setprecision; #include using boost::math::students_t; @@ -38,7 +39,7 @@ void two_samples_t_test_equal_sd( // if due to chance. // See http://www.itl.nist.gov/div898/handbook/eda/section3/eda353.htm // - using namespace std; + // using namespace std; // using namespace boost::math; using boost::math::students_t; @@ -48,38 +49,38 @@ void two_samples_t_test_equal_sd( "_______________________________________________\n" "Student t test for two samples (equal variances)\n" "_______________________________________________\n\n"; - cout << setprecision(5); - cout << setw(55) << left << "Number of Observations (Sample 1)" << "= " << Sn1 << "\n"; - cout << setw(55) << left << "Sample 1 Mean" << "= " << Sm1 << "\n"; - cout << setw(55) << left << "Sample 1 Standard Deviation" << "= " << Sd1 << "\n"; - cout << setw(55) << left << "Number of Observations (Sample 2)" << "= " << Sn2 << "\n"; - cout << setw(55) << left << "Sample 2 Mean" << "= " << Sm2 << "\n"; - cout << setw(55) << left << "Sample 2 Standard Deviation" << "= " << Sd2 << "\n"; + cout << boost::detail::setprecision(5); + cout << boost::detail::setw(55) << left << "Number of Observations (Sample 1)" << "= " << Sn1 << "\n"; + cout << boost::detail::setw(55) << left << "Sample 1 Mean" << "= " << Sm1 << "\n"; + cout << boost::detail::setw(55) << left << "Sample 1 Standard Deviation" << "= " << Sd1 << "\n"; + cout << boost::detail::setw(55) << left << "Number of Observations (Sample 2)" << "= " << Sn2 << "\n"; + cout << boost::detail::setw(55) << left << "Sample 2 Mean" << "= " << Sm2 << "\n"; + cout << boost::detail::setw(55) << left << "Sample 2 Standard Deviation" << "= " << Sd2 << "\n"; // // Now we can calculate and output some stats: // // Degrees of freedom: double v = Sn1 + Sn2 - 2; - cout << setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; + cout << boost::detail::setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; // Pooled variance: double sp = sqrt(((Sn1-1) * Sd1 * Sd1 + (Sn2-1) * Sd2 * Sd2) / v); - cout << setw(55) << left << "Pooled Standard Deviation" << "= " << v << "\n"; + cout << boost::detail::setw(55) << left << "Pooled Standard Deviation" << "= " << v << "\n"; // t-statistic: double t_stat = (Sm1 - Sm2) / (sp * sqrt(1.0 / Sn1 + 1.0 / Sn2)); - cout << setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; + cout << boost::detail::setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; // // Define our distribution, and get the probability: // students_t dist(v); double q = cdf(complement(dist, fabs(t_stat))); - cout << setw(55) << left << "Probability that difference is due to chance" << "= " - << setprecision(3) << scientific << 2 * q << "\n\n"; + cout << boost::detail::setw(55) << left << "Probability that difference is due to chance" << "= " + << boost::detail::setprecision(3) << scientific << 2 * q << "\n\n"; // // Finally print out results of alternative hypothesis: // - cout << setw(55) << left << + cout << boost::detail::setw(55) << left << "Results for Alternative Hypothesis and alpha" << "= " - << setprecision(4) << fixed << alpha << "\n\n"; + << boost::detail::setprecision(4) << fixed << alpha << "\n\n"; cout << "Alternative Hypothesis Conclusion\n"; cout << "Sample 1 Mean != Sample 2 Mean " ; if(q < alpha / 2) @@ -114,7 +115,7 @@ void two_samples_t_test_unequal_sd( // that any difference is due to chance. // See http://www.itl.nist.gov/div898/handbook/eda/section3/eda353.htm // - using namespace std; + //using namespace std; using boost::math::students_t; // Print header: @@ -122,13 +123,13 @@ void two_samples_t_test_unequal_sd( "_________________________________________________\n" "Student t test for two samples (unequal variances)\n" "_________________________________________________\n\n"; - cout << setprecision(5); - cout << setw(55) << left << "Number of Observations (Sample 1)" << "= " << Sn1 << "\n"; - cout << setw(55) << left << "Sample 1 Mean" << "= " << Sm1 << "\n"; - cout << setw(55) << left << "Sample 1 Standard Deviation" << "= " << Sd1 << "\n"; - cout << setw(55) << left << "Number of Observations (Sample 2)" << "= " << Sn2 << "\n"; - cout << setw(55) << left << "Sample 2 Mean" << "= " << Sm2 << "\n"; - cout << setw(55) << left << "Sample 2 Standard Deviation" << "= " << Sd2 << "\n"; + cout << boost::detail::setprecision(5); + cout << boost::detail::setw(55) << left << "Number of Observations (Sample 1)" << "= " << Sn1 << "\n"; + cout << boost::detail::setw(55) << left << "Sample 1 Mean" << "= " << Sm1 << "\n"; + cout << boost::detail::setw(55) << left << "Sample 1 Standard Deviation" << "= " << Sd1 << "\n"; + cout << boost::detail::setw(55) << left << "Number of Observations (Sample 2)" << "= " << Sn2 << "\n"; + cout << boost::detail::setw(55) << left << "Sample 2 Mean" << "= " << Sm2 << "\n"; + cout << boost::detail::setw(55) << left << "Sample 2 Standard Deviation" << "= " << Sd2 << "\n"; // // Now we can calculate and output some stats: // @@ -142,23 +143,23 @@ void two_samples_t_test_unequal_sd( t2 *= t2; t2 /= (Sn2 - 1); v /= (t1 + t2); - cout << setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; + cout << boost::detail::setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; // t-statistic: double t_stat = (Sm1 - Sm2) / sqrt(Sd1 * Sd1 / Sn1 + Sd2 * Sd2 / Sn2); - cout << setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; + cout << boost::detail::setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; // // Define our distribution, and get the probability: // students_t dist(v); double q = cdf(complement(dist, fabs(t_stat))); - cout << setw(55) << left << "Probability that difference is due to chance" << "= " - << setprecision(3) << scientific << 2 * q << "\n\n"; + cout << boost::detail::setw(55) << left << "Probability that difference is due to chance" << "= " + << boost::detail::setprecision(3) << scientific << 2 * q << "\n\n"; // // Finally print out results of alternative hypothesis: // - cout << setw(55) << left << + cout << boost::detail::setw(55) << left << "Results for Alternative Hypothesis and alpha" << "= " - << setprecision(4) << fixed << alpha << "\n\n"; + << boost::detail::setprecision(4) << fixed << alpha << "\n\n"; cout << "Alternative Hypothesis Conclusion\n"; cout << "Sample 1 Mean != Sample 2 Mean " ; if(q < alpha / 2) diff --git a/include/boost/math/policies/error_handling.hpp b/include/boost/math/policies/error_handling.hpp index 198cd020b..c3d320608 100644 --- a/include/boost/math/policies/error_handling.hpp +++ b/include/boost/math/policies/error_handling.hpp @@ -9,7 +9,7 @@ #define BOOST_MATH_POLICY_ERROR_HANDLING_HPP #include -#include +#include #include #include #include @@ -108,7 +108,7 @@ void raise_error(const char* function, const char* message, const T& val) msg += message; int prec = 2 + (boost::math::policies::digits >() * 30103UL) / 100000UL; - msg = do_format(boost::format(msg), boost::io::group(std::setprecision(prec), val)); + msg = do_format(boost::format(msg), boost::io::group(boost::detail::setprecision(prec), val)); E e(msg); boost::throw_exception(e); diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index 5d414259b..291602326 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -51,7 +51,7 @@ #ifdef BOOST_MATH_INSTRUMENT #include -#include +#include #include #endif diff --git a/include/boost/math/tools/config.hpp b/include/boost/math/tools/config.hpp index e2429133f..3199d7966 100644 --- a/include/boost/math/tools/config.hpp +++ b/include/boost/math/tools/config.hpp @@ -289,7 +289,7 @@ inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d) #ifdef BOOST_MATH_INSTRUMENT #define BOOST_MATH_INSTRUMENT_CODE(x) \ - std::cout << std::setprecision(35) << __FILE__ << ":" << __LINE__ << " " << x << std::endl; + std::cout << boost::detail::setprecision(35) << __FILE__ << ":" << __LINE__ << " " << x << std::endl; #define BOOST_MATH_INSTRUMENT_VARIABLE(name) BOOST_MATH_INSTRUMENT_CODE(BOOST_STRINGIZE(name) << " = " << name) #else #define BOOST_MATH_INSTRUMENT_CODE(x) diff --git a/include/boost/math/tools/precision.hpp b/include/boost/math/tools/precision.hpp index e7695e92a..4920a5f07 100644 --- a/include/boost/math/tools/precision.hpp +++ b/include/boost/math/tools/precision.hpp @@ -19,7 +19,7 @@ #include #include -#include +#include // These two are for LDBL_MAN_DIG: #include #include diff --git a/include/boost/math/tools/test.hpp b/include/boost/math/tools/test.hpp index c54e82727..2f319e301 100644 --- a/include/boost/math/tools/test.hpp +++ b/include/boost/math/tools/test.hpp @@ -156,7 +156,7 @@ void set_output_precision(T) { if(std::numeric_limits::digits10) { - std::cout << std::setprecision(std::numeric_limits::digits10 + 2); + std::cout << boost::detail::setprecision(std::numeric_limits::digits10 + 2); } } diff --git a/minimax/Jamfile.v2 b/minimax/Jamfile.v2 index 212ff5952..969bc5ea9 100644 --- a/minimax/Jamfile.v2 +++ b/minimax/Jamfile.v2 @@ -14,6 +14,8 @@ local ntl-path = [ modules.peek : NTL_PATH ] ; project : requirements + pathscale:-Wno-missing-braces + clang:-Wno-missing-braces gcc:-Wno-missing-braces darwin:-Wno-missing-braces acc:+W2068,2461,2236,4070,4069 diff --git a/minimax/main.cpp b/minimax/main.cpp index ca7a5071e..e00bd0dfe 100644 --- a/minimax/main.cpp +++ b/minimax/main.cpp @@ -18,7 +18,7 @@ using boost::math::ntl::pow; #include #include #include -#include +#include #include #include // for test_main @@ -88,7 +88,7 @@ void step_some(unsigned count) rel_error, skew, working_precision)); - std::cout << "Max error in interpolated form: " << std::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->max_error()) << std::endl; + std::cout << "Max error in interpolated form: " << boost::detail::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->max_error()) << std::endl; // // Signal that we've started: // @@ -102,9 +102,9 @@ void step_some(unsigned count) boost::math::ntl::RR r = p_remez->iterate(); NTL::RR::SetOutputPrecision(3); std::cout - << "Maximum Deviation Found: " << std::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->max_error()) << std::endl - << "Expected Error Term: " << std::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->error_term()) << std::endl - << "Maximum Relative Change in Control Points: " << std::setprecision(3) << std::scientific << boost::math::tools::real_cast(r) << std::endl; + << "Maximum Deviation Found: " << boost::detail::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->max_error()) << std::endl + << "Expected Error Term: " << boost::detail::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->error_term()) << std::endl + << "Maximum Relative Change in Control Points: " << boost::detail::setprecision(3) << std::scientific << boost::math::tools::real_cast(r) << std::endl; } } catch(const std::exception& e) @@ -128,7 +128,7 @@ void show(const char*, const char*) std::vector cn = n.chebyshev(); std::vector cd = d.chebyshev(); int prec = 2 + (target_precision * 3010LL)/10000; - std::cout << std::scientific << std::setprecision(prec); + std::cout << std::scientific << boost::detail::setprecision(prec); NTL::RR::SetOutputPrecision(prec); boost::numeric::ublas::vector v = p_remez->zero_points(); @@ -196,12 +196,12 @@ void do_graph(unsigned points) while(points > 1) { NTL::RR::SetOutputPrecision(10); - std::cout << std::setprecision(10) << std::setw(30) << std::left + std::cout << boost::detail::setprecision(10) << boost::detail::setw(30) << std::left << boost::lexical_cast(x) << the_function(x) << std::endl; --points; x += step; } - std::cout << std::setprecision(10) << std::setw(30) << std::left + std::cout << boost::detail::setprecision(10) << boost::detail::setw(30) << std::left << boost::lexical_cast(b) << the_function(b) << std::endl; } @@ -277,8 +277,8 @@ void do_test(T, const char* name) max_error = err; if(cheb_err > cheb_max_error) cheb_max_error = cheb_err; - std::cout << std::setprecision(6) << std::setw(15) << std::left << absissa - << std::setw(15) << std::left << boost::math::tools::real_cast(err) << boost::math::tools::real_cast(cheb_err) << std::endl; + std::cout << boost::detail::setprecision(6) << boost::detail::setw(15) << std::left << absissa + << boost::detail::setw(15) << std::left << boost::math::tools::real_cast(err) << boost::math::tools::real_cast(cheb_err) << std::endl; } // // Do the tests at the Chebeshev control points: @@ -302,15 +302,15 @@ void do_test(T, const char* name) } if(err > max_error) max_error = err; - std::cout << std::setprecision(6) << std::setw(15) << std::left << absissa - << std::setw(15) << std::left << boost::math::tools::real_cast(err) << + std::cout << boost::detail::setprecision(6) << boost::detail::setw(15) << std::left << absissa + << boost::detail::setw(15) << std::left << boost::math::tools::real_cast(err) << boost::math::tools::real_cast(cheb_err) << std::endl; } std::string msg = "Max Error found at "; msg += name; msg += " precision = "; msg.append(62 - 17 - msg.size(), ' '); - std::cout << msg << std::setprecision(6) << "Poly: " << std::setw(20) << std::left + std::cout << msg << boost::detail::setprecision(6) << "Poly: " << boost::detail::setw(20) << std::left << boost::math::tools::real_cast(max_error) << "Cheb: " << boost::math::tools::real_cast(cheb_max_error) << std::endl; } else @@ -401,8 +401,8 @@ void do_test_n(T, const char* name, unsigned count) max_error = err; if(cheb_err > max_cheb_error) max_cheb_error = cheb_err; - std::cout << std::setprecision(6) << std::setw(15) << std::left << boost::math::tools::real_cast(absissa) - << (test_result < true_result ? "-" : "") << std::setw(20) << std::left + std::cout << boost::detail::setprecision(6) << boost::detail::setw(15) << std::left << boost::math::tools::real_cast(absissa) + << (test_result < true_result ? "-" : "") << boost::detail::setw(20) << std::left << boost::math::tools::real_cast(err) << boost::math::tools::real_cast(cheb_err) << std::endl; } @@ -410,8 +410,8 @@ void do_test_n(T, const char* name, unsigned count) msg += name; msg += " precision = "; //msg.append(62 - 17 - msg.size(), ' '); - std::cout << msg << "Poly: " << std::setprecision(6) - //<< std::setw(15) << std::left + std::cout << msg << "Poly: " << boost::detail::setprecision(6) + //<< boost::detail::setw(15) << std::left << boost::math::tools::real_cast(max_error) << " Cheb: " << boost::math::tools::real_cast(max_cheb_error) << std::endl; } diff --git a/octonion/octonion_test.cpp b/octonion/octonion_test.cpp index 848e4de38..09d22a49b 100644 --- a/octonion/octonion_test.cpp +++ b/octonion/octonion_test.cpp @@ -6,7 +6,7 @@ // http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include diff --git a/performance/main.cpp b/performance/main.cpp index 6052c4e27..7c1801ab5 100644 --- a/performance/main.cpp +++ b/performance/main.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include @@ -77,20 +77,24 @@ void run_tests() name = "msvc-"; #elif defined(BOOST_MSVC) && defined(_DEBUG) && !defined(__ICL) name = "msvc-debug-"; -#elif defined(__GNUC__) - name = "gcc-"; +#elif defined(BOOST_CLANG) + name = "clang-" +#elif defined(__PATHSCALE__) + name = "pathscale-" #elif defined(__ICL) name = "intel-"; #elif defined(__ICC) name = "intel-linux-"; +#elif defined(__GNUC__) + name = "gcc-"; #endif } name += i->name; set_call_count(1); - std::cout << "Testing " << std::left << std::setw(50) << name << std::flush; + std::cout << "Testing " << std::left << boost::detail::setw(50) << name << std::flush; double time = performance_measure(i->proc) - reference_time; time /= call_count; - std::cout << std::setprecision(3) << std::scientific << time << std::endl; + std::cout << boost::detail::setprecision(3) << std::scientific << time << std::endl; } } diff --git a/quaternion/quaternion_test.cpp b/quaternion/quaternion_test.cpp index 6da75db40..819ea441d 100644 --- a/quaternion/quaternion_test.cpp +++ b/quaternion/quaternion_test.cpp @@ -6,7 +6,7 @@ // http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include diff --git a/special_functions/acosh_test.hpp b/special_functions/acosh_test.hpp index 162f2809a..3a439f767 100644 --- a/special_functions/acosh_test.hpp +++ b/special_functions/acosh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include @@ -70,11 +70,11 @@ void acosh_manual_check() long double xl = static_cast(i-50)/static_cast(5); - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << acosh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << acosh_error_evaluator(xd) - << ::std::setw(15) + << ::boost::detail::setw(15) << acosh_error_evaluator(xl)); } diff --git a/special_functions/asinh_test.hpp b/special_functions/asinh_test.hpp index dfe6124dc..9096af1f9 100644 --- a/special_functions/asinh_test.hpp +++ b/special_functions/asinh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include @@ -70,11 +70,11 @@ void asinh_manual_check() long double xl = static_cast(i-50)/static_cast(5); - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << asinh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << asinh_error_evaluator(xd) - << ::std::setw(15) + << ::boost::detail::setw(15) << asinh_error_evaluator(xl)); } diff --git a/special_functions/atanh_test.hpp b/special_functions/atanh_test.hpp index 32cb7310d..5034ada9d 100644 --- a/special_functions/atanh_test.hpp +++ b/special_functions/atanh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include //#include @@ -116,11 +116,11 @@ void atanh_manual_check() std::numeric_limits::has_infinity ) { - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << atanh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << atanh_error_evaluator(xd) - << ::std::setw(15) + << ::boost::detail::setw(15) << atanh_error_evaluator(xl)); } else @@ -144,11 +144,11 @@ void atanh_manual_check() } else { - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << atanh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << atanh_error_evaluator(xd) - << ::std::setw(15) + << ::boost::detail::setw(15) << atanh_error_evaluator(xl)); } } diff --git a/special_functions/sinc_test.hpp b/special_functions/sinc_test.hpp index ddd62e506..891b424df 100644 --- a/special_functions/sinc_test.hpp +++ b/special_functions/sinc_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -66,13 +66,13 @@ void sinc_pi_manual_check() for (int i = 0; i <= 100; i++) { - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50)) - << ::std::setw(15) + << ::boost::detail::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50)) - << ::std::setw(15) + << ::boost::detail::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50))); } diff --git a/special_functions/sinhc_test.hpp b/special_functions/sinhc_test.hpp index a6ffea936..525d89da9 100644 --- a/special_functions/sinhc_test.hpp +++ b/special_functions/sinhc_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -66,13 +66,13 @@ void sinhc_pi_manual_check() for (int i = 0; i <= 100; i++) { - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50)) - << ::std::setw(15) + << ::boost::detail::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50)) - << ::std::setw(15) + << ::boost::detail::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50))); } diff --git a/special_functions/special_functions_test.cpp b/special_functions/special_functions_test.cpp index 62a4b7c0c..e7d0aaf95 100644 --- a/special_functions/special_functions_test.cpp +++ b/special_functions/special_functions_test.cpp @@ -6,7 +6,7 @@ // http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include @@ -121,9 +121,9 @@ boost::unit_test_framework::test_suite * init_unit_test_suite(int, char *[]) BOOST_MESSAGE("epsilon"); - BOOST_MESSAGE( ::std::setw(15) << numeric_limits::epsilon() - << ::std::setw(15) << numeric_limits::epsilon() - << ::std::setw(15) << numeric_limits::epsilon()); + BOOST_MESSAGE( ::boost::detail::setw(15) << numeric_limits::epsilon() + << ::boost::detail::setw(15) << numeric_limits::epsilon() + << ::boost::detail::setw(15) << numeric_limits::epsilon()); BOOST_MESSAGE(" "); diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index d8681804e..ee55621a1 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -17,7 +17,13 @@ local ntl-path = [ modules.peek : NTL_PATH ] ; local gmp_path = [ modules.peek : GMP_PATH ] ; project - : requirements + : requirements + pathscale:-fno-fast-math + pathscale:-fno-unsafe-math-optimizations + pathscale:-mieee-fp + pathscale:-fstrict-overflow + pathscale:-Wno-missing-braces + clang:-Wno-missing-braces gcc:-Wno-missing-braces darwin:-Wno-missing-braces acc:+W2068,2461,2236,4070,4069 @@ -433,7 +439,7 @@ run test_laguerre.cpp pch ../../test/build//boost_test_exec_monitor ; run test_legendre.cpp pch ../../test/build//boost_test_exec_monitor ; run test_logistic_dist.cpp ../../test/build//boost_test_exec_monitor ; run test_lognormal.cpp ../../test/build//boost_test_exec_monitor ; -run test_minima.cpp pch ../../test/build//boost_test_exec_monitor ; +#run test_minima.cpp pch ../../test/build//boost_test_exec_monitor ; run test_negative_binomial.cpp ../../test/build//boost_test_exec_monitor : # command line : # input files diff --git a/test/acosh_test.hpp b/test/acosh_test.hpp index fa3f8c6ae..5788f2ac9 100644 --- a/test/acosh_test.hpp +++ b/test/acosh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include @@ -71,16 +71,16 @@ void acosh_manual_check() static_cast(i-50)/static_cast(5); #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << acosh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << acosh_error_evaluator(xd) - << ::std::setw(15) + << ::boost::detail::setw(15) << acosh_error_evaluator(xl)); #else - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << acosh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << acosh_error_evaluator(xd)); #endif } diff --git a/test/asinh_test.hpp b/test/asinh_test.hpp index 0cb4b2315..5cecae5f3 100644 --- a/test/asinh_test.hpp +++ b/test/asinh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include @@ -71,16 +71,16 @@ void asinh_manual_check() static_cast(i-40)/static_cast(4); #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << asinh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << asinh_error_evaluator(xd) - << ::std::setw(15) + << ::boost::detail::setw(15) << asinh_error_evaluator(xl)); #else - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << asinh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << asinh_error_evaluator(xd)); #endif } diff --git a/test/atanh_test.hpp b/test/atanh_test.hpp index 32a628e2f..26cb270a8 100644 --- a/test/atanh_test.hpp +++ b/test/atanh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include //#include @@ -117,16 +117,16 @@ void atanh_manual_check() ) { #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << atanh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << atanh_error_evaluator(xd) - << ::std::setw(15) + << ::boost::detail::setw(15) << atanh_error_evaluator(xl)); #else - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << atanh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << atanh_error_evaluator(xd)); #endif } @@ -152,16 +152,16 @@ void atanh_manual_check() else { #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << atanh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << atanh_error_evaluator(xd) - << ::std::setw(15) + << ::boost::detail::setw(15) << atanh_error_evaluator(xl)); #else - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << atanh_error_evaluator(xf) - << ::std::setw(15) + << ::boost::detail::setw(15) << atanh_error_evaluator(xd)); #endif } diff --git a/test/complex_test.cpp b/test/complex_test.cpp index 8c619d535..d4b60d8d6 100644 --- a/test/complex_test.cpp +++ b/test/complex_test.cpp @@ -13,7 +13,7 @@ #include #include -#include +#include #include #include @@ -116,7 +116,7 @@ void test_inverse_trig(T) T x, y; - std::cout << std::setprecision(std::numeric_limits::digits10+2); + std::cout << boost::detail::setprecision(std::numeric_limits::digits10+2); for(x = -1; x <= 1; x += interval) { diff --git a/test/handle_test_result.hpp b/test/handle_test_result.hpp index 9f6eb10dd..e89cc6958 100644 --- a/test/handle_test_result.hpp +++ b/test/handle_test_result.hpp @@ -11,6 +11,7 @@ #include #include #include +#include #if defined(BOOST_INTEL) # pragma warning(disable:239) @@ -118,7 +119,7 @@ void handle_test_result(const boost::math::tools::test_result& result, { using namespace std; // To aid selection of the right pow. T eps = boost::math::tools::epsilon(); - std::cout << std::setprecision(4); + std::cout << boost::detail::setprecision(4); T max_error_found = (result.max)()/eps; T mean_error_found = result.rms()/eps; @@ -137,11 +138,11 @@ void handle_test_result(const boost::math::tools::test_result& result, << row << "\n { "; if(std::numeric_limits::digits10) { - std::cout << std::setprecision(std::numeric_limits::digits10 + 2); + std::cout << boost::detail::setprecision(std::numeric_limits::digits10 + 2); } else { - std::cout << std::setprecision(std::numeric_limits::digits10 + 2); + std::cout << boost::detail::setprecision(std::numeric_limits::digits10 + 2); } for(unsigned i = 0; i < worst.size(); ++i) { @@ -179,7 +180,7 @@ void print_test_result(const boost::math::tools::test_result& result, { using namespace std; // To aid selection of the right pow. T eps = boost::math::tools::epsilon(); - std::cout << std::setprecision(4); + std::cout << boost::detail::setprecision(4); T max_error_found = (result.max)()/eps; T mean_error_found = result.rms()/eps; diff --git a/test/sinc_test.hpp b/test/sinc_test.hpp index e2f32c0e6..31ca41296 100644 --- a/test/sinc_test.hpp +++ b/test/sinc_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -67,20 +67,20 @@ void sinc_pi_manual_check() for (int i = 0; i <= 100; i++) { #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50)) - << ::std::setw(15) + << ::boost::detail::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50)) - << ::std::setw(15) + << ::boost::detail::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50))); #else - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50)) - << ::std::setw(15) + << ::boost::detail::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50))); #endif diff --git a/test/sinhc_test.hpp b/test/sinhc_test.hpp index 7b7e62ed5..3d8e9da98 100644 --- a/test/sinhc_test.hpp +++ b/test/sinhc_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -67,20 +67,20 @@ void sinhc_pi_manual_check() for (int i = 0; i <= 100; i++) { #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50)) - << ::std::setw(15) + << ::boost::detail::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50)) - << ::std::setw(15) + << ::boost::detail::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50))); #else - BOOST_MESSAGE( ::std::setw(15) + BOOST_MESSAGE( ::boost::detail::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50)) - << ::std::setw(15) + << ::boost::detail::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50))); #endif diff --git a/test/special_functions_test.cpp b/test/special_functions_test.cpp index b6f08edbb..cfd564285 100644 --- a/test/special_functions_test.cpp +++ b/test/special_functions_test.cpp @@ -6,7 +6,7 @@ // http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include @@ -128,9 +128,9 @@ boost::unit_test_framework::test_suite * init_unit_test_suite(int, char *[]) BOOST_MESSAGE("epsilon"); - BOOST_MESSAGE( ::std::setw(15) << numeric_limits::epsilon() - << ::std::setw(15) << numeric_limits::epsilon() - << ::std::setw(15) << numeric_limits::epsilon()); + BOOST_MESSAGE( ::boost::detail::setw(15) << numeric_limits::epsilon() + << ::boost::detail::setw(15) << numeric_limits::epsilon() + << ::boost::detail::setw(15) << numeric_limits::epsilon()); BOOST_MESSAGE(" "); diff --git a/test/test_bernoulli.cpp b/test/test_bernoulli.cpp index 23b0ad4f8..7f72b9ae0 100644 --- a/test/test_bernoulli.cpp +++ b/test/test_bernoulli.cpp @@ -28,6 +28,8 @@ using boost::math::bernoulli_distribution; #include // for test_main #include // for BOOST_CHECK_CLOSE_FRACTION, BOOST_CHECK_EQUAL... +#include +#include #include using std::cout; using std::endl; @@ -36,8 +38,8 @@ using std::right; using std::left; using std::showpoint; using std::showpos; -using std::setw; -using std::setprecision; +using boost::detail::setw; +using boost::detail::setprecision; #include using std::numeric_limits; @@ -57,7 +59,7 @@ void test_spots(RealType) tolerance *= 100; cout << "Tolerance for type " << typeid(RealType).name() << " is " - << setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; + << boost::detail::setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; // Sources of spot test values - calculator, // or Steve Moshier's command interpreter V1.3 100 decimal digit calculator, diff --git a/test/test_dist_overloads.cpp b/test/test_dist_overloads.cpp index e75d7f0ef..0fca0c2ba 100644 --- a/test/test_dist_overloads.cpp +++ b/test/test_dist_overloads.cpp @@ -15,10 +15,11 @@ #include // Boost.Test #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; template void test_spots(RealType) diff --git a/test/test_exponential_dist.cpp b/test/test_exponential_dist.cpp index c11611662..431dbe06c 100644 --- a/test/test_exponential_dist.cpp +++ b/test/test_exponential_dist.cpp @@ -15,10 +15,11 @@ #include // Boost.Test #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; template void test_spot(RealType l, RealType x, RealType p, RealType q, RealType tolerance) diff --git a/test/test_extreme_value.cpp b/test/test_extreme_value.cpp index a1b4f4804..3fb465470 100644 --- a/test/test_extreme_value.cpp +++ b/test/test_extreme_value.cpp @@ -14,10 +14,11 @@ #include // Boost.Test #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; template void test_spot(RealType a, RealType b, RealType x, RealType p, RealType q, RealType tolerance) diff --git a/test/test_find_location.cpp b/test/test_find_location.cpp index 3453c35d5..2efcf89e2 100644 --- a/test/test_find_location.cpp +++ b/test/test_find_location.cpp @@ -32,10 +32,12 @@ #include // for test_main #include // for BOOST_CHECK_CLOSE_FRACTION, BOOST_CHECK_EQUAL... +#include +#include #include using std::cout; using std::endl; using std::fixed; using std::right; using std::left; using std::showpoint; - using std::showpos; using std::setw; using std::setprecision; + using std::showpos; using boost::detail::setw; using boost::detail::setprecision; #include using std::numeric_limits; @@ -55,7 +57,7 @@ void test_spots(RealType) tolerance *= 100; // 100 eps as a fraction. cout << "Tolerance for type " << typeid(RealType).name() << " is " - << setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; + << boost::detail::setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; BOOST_CHECK_THROW( // Probability outside 0 to 1. find_location >( diff --git a/test/test_find_scale.cpp b/test/test_find_scale.cpp index 678e2c053..e0f24a9ef 100644 --- a/test/test_find_scale.cpp +++ b/test/test_find_scale.cpp @@ -32,10 +32,12 @@ #include // for test_main #include // for BOOST_CHECK_CLOSE_FRACTION, BOOST_CHECK_EQUAL... +#include +#include #include using std::cout; using std::endl; using std::fixed; using std::right; using std::left; using std::showpoint; - using std::showpos; using std::setw; using std::setprecision; + using std::showpos; using boost::detail::setw; using boost::detail::setprecision; #include using std::numeric_limits; @@ -55,7 +57,7 @@ void test_spots(RealType) tolerance *= 100; // 100 eps as a fraction. cout << "Tolerance for type " << typeid(RealType).name() << " is " - << setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; + << boost::detail::setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; BOOST_CHECK_THROW( // Probability outside 0 to 1. find_scale >( diff --git a/test/test_gamma_dist.cpp b/test/test_gamma_dist.cpp index 451dc263d..e186884cb 100644 --- a/test/test_gamma_dist.cpp +++ b/test/test_gamma_dist.cpp @@ -25,10 +25,11 @@ using boost::math::gamma_distribution; #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; #include using std::numeric_limits; diff --git a/test/test_geometric.cpp b/test/test_geometric.cpp index 6958b6253..ba91cc267 100644 --- a/test/test_geometric.cpp +++ b/test/test_geometric.cpp @@ -38,10 +38,12 @@ using boost::math::geometric; // using typedef for geometric_distribution // for test_main #include // for BOOST_CHECK_CLOSE_FRACTION +#include +#include #include using std::cout; using std::endl; -using std::setprecision; +using boost::detail::setprecision; using std::showpoint; #include using std::numeric_limits; diff --git a/test/test_hypergeometric_dist.cpp b/test/test_hypergeometric_dist.cpp index 4f3b50e61..8b72370d8 100644 --- a/test/test_hypergeometric_dist.cpp +++ b/test/test_hypergeometric_dist.cpp @@ -16,10 +16,11 @@ #include #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; #include #include "functor.hpp" @@ -32,7 +33,7 @@ if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was with data ";\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "x = " << x << ", r = " << r << ", n = " << n\ << ", N = " << N << ", p = " << cp << ", q = " << ccp << std::endl;\ }\ diff --git a/test/test_igamma_inv.cpp b/test/test_igamma_inv.cpp index 74c63c50c..e2b484de3 100644 --- a/test/test_igamma_inv.cpp +++ b/test/test_igamma_inv.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include "functor.hpp" @@ -196,7 +197,7 @@ void expected_results() if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " , " << data[i][5] << " } " << std::endl;\ }\ diff --git a/test/test_igamma_inva.cpp b/test/test_igamma_inva.cpp index b6c13366b..152aa098a 100644 --- a/test/test_igamma_inva.cpp +++ b/test/test_igamma_inva.cpp @@ -17,9 +17,11 @@ #include #include #include +#include #include #include "functor.hpp" + #include "handle_test_result.hpp" #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT) @@ -124,7 +126,7 @@ void expected_results() if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " , " << data[i][5] << " } " << std::endl;\ }\ diff --git a/test/test_inverse_gaussian.cpp b/test/test_inverse_gaussian.cpp index 12b7599bb..cc3a2f327 100644 --- a/test/test_inverse_gaussian.cpp +++ b/test/test_inverse_gaussian.cpp @@ -26,10 +26,11 @@ using boost::math::inverse_gaussian; #include +#include #include using std::cout; using std::endl; -using std::setprecision; +using boost::detail::setprecision; #include using std::numeric_limits; diff --git a/test/test_laplace.cpp b/test/test_laplace.cpp index 3afa1ca2f..82d32cfd7 100644 --- a/test/test_laplace.cpp +++ b/test/test_laplace.cpp @@ -68,7 +68,7 @@ using boost::math::laplace_distribution; #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; #include using std::numeric_limits; diff --git a/test/test_logistic_dist.cpp b/test/test_logistic_dist.cpp index 04d1a47d5..63fe32ee2 100644 --- a/test/test_logistic_dist.cpp +++ b/test/test_logistic_dist.cpp @@ -15,10 +15,11 @@ #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; template diff --git a/test/test_lognormal.cpp b/test/test_lognormal.cpp index 4726032ef..143864bd0 100644 --- a/test/test_lognormal.cpp +++ b/test/test_lognormal.cpp @@ -16,10 +16,11 @@ using boost::math::lognormal_distribution; #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; #include using std::numeric_limits; #include diff --git a/test/test_long_double_support.cpp b/test/test_long_double_support.cpp index f0fd23bf9..792eb7eb9 100644 --- a/test/test_long_double_support.cpp +++ b/test/test_long_double_support.cpp @@ -15,10 +15,10 @@ #include #include -#include +#include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; #include #include "functor.hpp" diff --git a/test/test_nc_beta.cpp b/test/test_nc_beta.cpp index f87eb658d..4a043de0b 100644 --- a/test/test_nc_beta.cpp +++ b/test/test_nc_beta.cpp @@ -35,6 +35,7 @@ #include "handle_test_result.hpp" #include "test_ncbeta_hooks.hpp" +#include #include using std::cout; using std::endl; @@ -48,7 +49,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ @@ -61,7 +62,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ diff --git a/test/test_nc_chi_squared.cpp b/test/test_nc_chi_squared.cpp index 59461a39c..5b71af5aa 100644 --- a/test/test_nc_chi_squared.cpp +++ b/test/test_nc_chi_squared.cpp @@ -32,6 +32,7 @@ #include "handle_test_result.hpp" #include "test_nccs_hooks.hpp" +#include #include using std::cout; using std::endl; @@ -45,7 +46,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ @@ -58,7 +59,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ diff --git a/test/test_nc_f.cpp b/test/test_nc_f.cpp index ffff944c8..a632c127e 100644 --- a/test/test_nc_f.cpp +++ b/test/test_nc_f.cpp @@ -30,6 +30,7 @@ #include "functor.hpp" #include "handle_test_result.hpp" +#include #include using std::cout; using std::endl; @@ -43,7 +44,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ @@ -56,7 +57,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ diff --git a/test/test_nc_t.cpp b/test/test_nc_t.cpp index af7edff6f..563de2578 100644 --- a/test/test_nc_t.cpp +++ b/test/test_nc_t.cpp @@ -30,6 +30,7 @@ #include "functor.hpp" #include "handle_test_result.hpp" +#include #include using std::cout; using std::endl; @@ -43,7 +44,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ @@ -56,7 +57,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ diff --git a/test/test_negative_binomial.cpp b/test/test_negative_binomial.cpp index 984d169a9..2980d0105 100644 --- a/test/test_negative_binomial.cpp +++ b/test/test_negative_binomial.cpp @@ -38,10 +38,12 @@ using boost::math::negative_binomial_distribution; #include // for test_main #include // for BOOST_CHECK_CLOSE +#include +#include #include using std::cout; using std::endl; -using std::setprecision; +using boost::detail::setprecision; using std::showpoint; #include using std::numeric_limits; diff --git a/test/test_normal.cpp b/test/test_normal.cpp index 3dfb943f5..6154639e0 100644 --- a/test/test_normal.cpp +++ b/test/test_normal.cpp @@ -31,10 +31,11 @@ using boost::math::normal_distribution; #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; #include using std::numeric_limits; diff --git a/test/test_pareto.cpp b/test/test_pareto.cpp index 9ffaba714..8c5675d98 100644 --- a/test/test_pareto.cpp +++ b/test/test_pareto.cpp @@ -31,10 +31,11 @@ using boost::math::pareto_distribution; #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; #include using std::numeric_limits; diff --git a/test/test_poisson.cpp b/test/test_poisson.cpp index e4114ece0..09e6e68ce 100644 --- a/test/test_poisson.cpp +++ b/test/test_poisson.cpp @@ -34,10 +34,12 @@ #include // for (incomplete) gamma. // using boost::math::qamma_Q; +#include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; using std::showpoint; using std::ios; #include @@ -556,7 +558,7 @@ int test_main(int, char* []) { cout << boost::math::gamma_q(i+1, mean); // cdf double diff = boost::math::gamma_q(i+1, mean) - sum; // cdf -sum - cout << setprecision (2) << ' ' << diff; // 0 0 to 4, 1 eps 5 to 9, 10 to 20 2 eps, 21 upwards 3 eps + cout << boost::detail::setprecision (2) << ' ' << diff; // 0 0 to 4, 1 eps 5 to 9, 10 to 20 2 eps, 21 upwards 3 eps } BOOST_CHECK_CLOSE( @@ -564,7 +566,7 @@ int test_main(int, char* []) sum, // of pdfs. 4e-14); // Fails at 2e-14 // This call puts the precision etc back to default 6 !!! - cout << setprecision(17) << showpoint; + cout << boost::detail::setprecision(17) << showpoint; cout << endl; diff --git a/test/test_rayleigh.cpp b/test/test_rayleigh.cpp index e9b675a37..828fa9e18 100644 --- a/test/test_rayleigh.cpp +++ b/test/test_rayleigh.cpp @@ -19,10 +19,11 @@ #include // Boost.Test #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; template void test_spot(RealType s, RealType x, RealType p, RealType q, RealType tolerance) diff --git a/test/test_real_concept_neg_bin.cpp b/test/test_real_concept_neg_bin.cpp index 68ddba6c0..1b90a71dd 100644 --- a/test/test_real_concept_neg_bin.cpp +++ b/test/test_real_concept_neg_bin.cpp @@ -20,10 +20,12 @@ using boost::math::geometric; // using typedef for geometric_distribution // for some comparisons. +#include +#include #include using std::cout; using std::endl; -using std::setprecision; +using boost::detail::setprecision; using std::showpoint; #include using std::numeric_limits; diff --git a/test/test_roots.cpp b/test/test_roots.cpp index 858078c62..f3959de23 100644 --- a/test/test_roots.cpp +++ b/test/test_roots.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #define BOOST_CHECK_CLOSE_EX(a, b, prec, i) \ {\ @@ -21,7 +22,7 @@ if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << std::setprecision(35); \ + std::cerr << boost::detail::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " , " << data[i][5] << " } " << std::endl;\ }\ diff --git a/test/test_round.cpp b/test/test_round.cpp index 6f16b3d1e..cdd364ef7 100644 --- a/test/test_round.cpp +++ b/test/test_round.cpp @@ -13,6 +13,7 @@ #include #include #include +#include boost::mt19937 rng; @@ -45,13 +46,13 @@ void check_within_half(T a, U u) if(fabs(a-u) > 0.5f) { BOOST_ERROR("Rounded result differed by more than 0.5 from the original"); - std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) + std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) << std::left << a << u << std::endl; } if((fabs(a - u) == 0.5f) && (fabs(static_cast(u)) < fabs(a))) { BOOST_ERROR("Rounded result was towards zero with boost::round"); - std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) + std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) << std::left << a << u << std::endl; } } @@ -72,19 +73,19 @@ void check_trunc_result(T a, U u) if(fabs(a-u) >= 1) { BOOST_ERROR("Rounded result differed by more than 1 from the original"); - std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) + std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) << std::left << a << u << std::endl; } if(abs(a) < safe_abs(u)) { BOOST_ERROR("Truncated result had larger absolute value than the original"); - std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) + std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) << std::left << a << u << std::endl; } if(fabs(static_cast(u)) > fabs(a)) { BOOST_ERROR("Rounded result was away from zero with boost::trunc"); - std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) + std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) << std::left << a << u << std::endl; } } @@ -96,25 +97,25 @@ void check_modf_result(T a, T fract, U ipart) if(fract + ipart != a) { BOOST_ERROR("Fractional and integer results do not add up to the original value"); - std::cerr << "Values were: " << std::setprecision(35) << " " + std::cerr << "Values were: " << boost::detail::setprecision(35) << " " << std::left << a << ipart << " " << fract << std::endl; } if((boost::math::sign(a) != boost::math::sign(fract)) && boost::math::sign(fract)) { BOOST_ERROR("Original and fractional parts have differing signs"); - std::cerr << "Values were: " << std::setprecision(35) << " " + std::cerr << "Values were: " << boost::detail::setprecision(35) << " " << std::left << a << ipart << " " << fract << std::endl; } if((boost::math::sign(a) != boost::math::sign(ipart)) && boost::math::sign(ipart)) { BOOST_ERROR("Original and integer parts have differing signs"); - std::cerr << "Values were: " << std::setprecision(35) << " " + std::cerr << "Values were: " << boost::detail::setprecision(35) << " " << std::left << a << ipart << " " << ipart << std::endl; } if(fabs(a-ipart) >= 1) { BOOST_ERROR("Rounded result differed by more than 1 from the original"); - std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) + std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) << std::left << a << ipart << std::endl; } } diff --git a/test/test_sign.cpp b/test/test_sign.cpp index c60afbdc2..74022e07a 100644 --- a/test/test_sign.cpp +++ b/test/test_sign.cpp @@ -13,10 +13,11 @@ #include #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; template void test_spots(RealType /*T*/, const char* /*type_name*/) diff --git a/test/test_students_t.cpp b/test/test_students_t.cpp index b3ac8c709..111f9ff45 100644 --- a/test/test_students_t.cpp +++ b/test/test_students_t.cpp @@ -22,10 +22,11 @@ using boost::math::students_t_distribution; #include // for real_concept +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; #include using std::numeric_limits; diff --git a/test/test_toms748_solve.cpp b/test/test_toms748_solve.cpp index 5dc249d15..5a0f9d16b 100644 --- a/test/test_toms748_solve.cpp +++ b/test/test_toms748_solve.cpp @@ -11,6 +11,7 @@ #include #include #include +#include // // Test functor implements the same test cases as used by @@ -163,7 +164,7 @@ void run_test(T a, T b, int id, T p1, T p2) int test_main(int, char* []) { - std::cout << std::setprecision(18); + std::cout << boost::detail::setprecision(18); run_test(3.14/2, 3.14, 1); for(int i = 1; i <= 10; i += 1) @@ -243,7 +244,7 @@ int test_main(int, char* []) BOOST_CHECK(invocations < 3150); - std::cout << std::setprecision(18); + std::cout << boost::detail::setprecision(18); for(int n = 5; n <= 100; n += 10) run_test(sqrt(double(n)), double(n+1), 16, (double)n, 0.4); @@ -261,7 +262,7 @@ int test_main(int, char* []) true, boost::math::tools::eps_tolerance(std::numeric_limits::digits), c); - std::cout << std::setprecision(18); + std::cout << boost::detail::setprecision(18); std::cout << "Function " << 4 << "\n Result={" << r.first << ", " << r.second << "} total calls=" << toms748tester::total_calls() << "\n\n"; toms748tester::reset(); BOOST_CHECK(c < 20); diff --git a/test/test_triangular.cpp b/test/test_triangular.cpp index c9e0073ec..802934681 100644 --- a/test/test_triangular.cpp +++ b/test/test_triangular.cpp @@ -24,6 +24,8 @@ using boost::math::triangular_distribution; #include #include +#include +#include #include using std::cout; using std::endl; @@ -31,8 +33,8 @@ using std::scientific; using std::fixed; using std::left; using std::right; -using std::setw; -using std::setprecision; +using boost::detail::setw; +using boost::detail::setprecision; using std::showpos; #include using std::numeric_limits; @@ -637,10 +639,10 @@ int test_main(int, char* []) BOOST_CHECK_EQUAL(quantile(complement(*dists[i], 1.)), quantile(*dists[i], 0.)); BOOST_CHECK_CLOSE_FRACTION(quantile(*dists[i], 0.5), quantile(complement(*dist, 0.5)), tol5eps); // OK BOOST_CHECK_CLOSE_FRACTION(quantile(*dists[i], 0.98), quantile(complement(*dist, 1. - 0.98)),tol5eps); - // cout << setprecision(17) << median(*dist) << endl; + // cout << boost::detail::setprecision(17) << median(*dist) << endl; } - cout << showpos << setprecision(2) << endl; + cout << showpos << boost::detail::setprecision(2) << endl; //triangular_distribution& dist = trim12; for (unsigned i = 0; i < sizeof(xs) /sizeof(double); i++) @@ -648,13 +650,13 @@ int test_main(int, char* []) double x = xs[i] * (trim12.upper() - trim12.lower()) + trim12.lower(); double dx = cdf(trim12, x); double cx = cdf(complement(trim12, x)); - //cout << fixed << showpos << setprecision(3) + //cout << fixed << showpos << boost::detail::setprecision(3) // << xs[i] << ", " << x << ", " << pdf(trim12, x) << ", " << dx << ", " << cx << ",, " ; BOOST_CHECK_CLOSE_FRACTION(cx, 1 - dx, tol500eps); // cx == 1 - dx - // << setprecision(2) << scientific << cr - x << ", " // difference x - quan(cdf) - // << setprecision(3) << fixed + // << boost::detail::setprecision(2) << scientific << cr - x << ", " // difference x - quan(cdf) + // << boost::detail::setprecision(3) << fixed // << quantile(trim12, dx) << ", " // << quantile(complement(trim12, 1 - dx)) << ", " // << quantile(complement(trim12, cx)) << ", " diff --git a/test/test_uniform.cpp b/test/test_uniform.cpp index b70cc9a58..72d7aeb93 100644 --- a/test/test_uniform.cpp +++ b/test/test_uniform.cpp @@ -23,10 +23,11 @@ using boost::math::uniform_distribution; #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; #include using std::numeric_limits; diff --git a/test/test_weibull.cpp b/test/test_weibull.cpp index 3c4338a59..6a491c910 100644 --- a/test/test_weibull.cpp +++ b/test/test_weibull.cpp @@ -16,10 +16,11 @@ using boost::math::weibull_distribution; #include +#include #include using std::cout; using std::endl; - using std::setprecision; + using boost::detail::setprecision; #include using std::numeric_limits; diff --git a/tools/Jamfile.v2 b/tools/Jamfile.v2 index 0f8836e24..6ec424258 100644 --- a/tools/Jamfile.v2 +++ b/tools/Jamfile.v2 @@ -14,6 +14,8 @@ local ntl-path = [ modules.peek : NTL_PATH ] ; project : requirements + pathscale:-Wno-missing-braces + clang:-Wno-missing-braces gcc:-Wno-missing-braces darwin:-Wno-missing-braces acc:+W2068,2461,2236,4070,4069 diff --git a/tools/bessel_data.cpp b/tools/bessel_data.cpp index d3dfb3d8e..a947ca9b1 100644 --- a/tools/bessel_data.cpp +++ b/tools/bessel_data.cpp @@ -263,7 +263,7 @@ enum int main(int argc, char* argv[]) { - std::cout << std::setprecision(17) << std::scientific; + std::cout << boost::detail::setprecision(17) << std::scientific; std::cout << sph_bessel_j_bare(0., 0.1185395751953125e4) << std::endl; std::cout << sph_bessel_j_bare(22., 0.6540834903717041015625) << std::endl; diff --git a/tools/generate_rational_code.cpp b/tools/generate_rational_code.cpp index 090175f84..76dc784c7 100644 --- a/tools/generate_rational_code.cpp +++ b/tools/generate_rational_code.cpp @@ -4,7 +4,7 @@ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #include -#include +#include #include #include #include diff --git a/tools/generate_test_values.cpp b/tools/generate_test_values.cpp index 78f16df33..1d8e749e1 100644 --- a/tools/generate_test_values.cpp +++ b/tools/generate_test_values.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include int main() { diff --git a/tools/igamma_temme_large_coef.cpp b/tools/igamma_temme_large_coef.cpp index d84663890..e73aeab31 100644 --- a/tools/igamma_temme_large_coef.cpp +++ b/tools/igamma_temme_large_coef.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include using namespace std; using namespace NTL; diff --git a/tools/lanczos_generator.cpp b/tools/lanczos_generator.cpp index f5bf59b63..85708c1ed 100644 --- a/tools/lanczos_generator.cpp +++ b/tools/lanczos_generator.cpp @@ -27,7 +27,7 @@ #include #include -#include +#include #include using boost::numeric::ublas::matrix; From a52fce70a83cecb9b5e9a179cb6b24cc94038865 Mon Sep 17 00:00:00 2001 From: Bryce Adelstein-Lelbach Date: Fri, 14 Jan 2011 02:51:17 +0000 Subject: [PATCH 03/82] Reverting some accident changes to a few jamfiles from my last commit. [SVN r68141] --- test/Jamfile.v2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index ee55621a1..3f19f7c5d 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -439,7 +439,7 @@ run test_laguerre.cpp pch ../../test/build//boost_test_exec_monitor ; run test_legendre.cpp pch ../../test/build//boost_test_exec_monitor ; run test_logistic_dist.cpp ../../test/build//boost_test_exec_monitor ; run test_lognormal.cpp ../../test/build//boost_test_exec_monitor ; -#run test_minima.cpp pch ../../test/build//boost_test_exec_monitor ; +run test_minima.cpp pch ../../test/build//boost_test_exec_monitor ; run test_negative_binomial.cpp ../../test/build//boost_test_exec_monitor : # command line : # input files From 3524499fc099fd66bef2aa315e8b97ae454ae349 Mon Sep 17 00:00:00 2001 From: Steven Watanabe Date: Sat, 15 Jan 2011 08:11:51 +0000 Subject: [PATCH 04/82] Revert [67111] (addition of boost/detail/iomanip.hpp) and all the commits that depend on it. ([68137], [68140], [68141], [68154], and [68165]). [SVN r68168] --- build/Jamfile.v2 | 2 +- example/Jamfile.v2 | 2 - example/binomial_coinflip_example.cpp | 9 +- example/binomial_confidence_limits.cpp | 25 +++--- example/binomial_example_nag.cpp | 13 ++- example/binomial_quiz_example.cpp | 11 ++- example/binomial_sample_sizes.cpp | 17 ++-- example/chi_square_std_dev_test.cpp | 83 +++++++++---------- example/f_test.cpp | 43 +++++----- example/find_location_example.cpp | 4 +- example/find_mean_and_sd_normal.cpp | 5 +- example/find_root_example.cpp | 5 +- example/find_scale_example.cpp | 4 +- example/geometric_examples.cpp | 5 +- example/inverse_chi_squared_example.cpp | 24 +++--- .../inverse_chi_squared_find_df_example.cpp | 6 +- .../inverse_gamma_distribution_example.cpp | 4 +- example/inverse_gamma_example.cpp | 4 +- example/inverse_gaussian_example.cpp | 9 +- example/laplace_example.cpp | 23 +++-- example/nc_chi_sq_example.cpp | 5 +- example/neg_binom_confidence_limits.cpp | 23 +++-- example/neg_binomial_sample_sizes.cpp | 13 ++- example/negative_binomial_example1.cpp | 7 +- example/negative_binomial_example2.cpp | 18 ++-- example/normal_misc_examples.cpp | 19 ++--- example/policy_eg_10.cpp | 49 ++++++----- example/policy_eg_9.cpp | 5 +- example/root_finding_example.cpp | 4 +- example/students_t_example1.cpp | 4 +- example/students_t_example2.cpp | 8 +- example/students_t_example3.cpp | 6 +- example/students_t_single_sample.cpp | 71 ++++++++-------- example/students_t_two_samples.cpp | 65 +++++++-------- .../boost/math/policies/error_handling.hpp | 4 +- .../boost/math/special_functions/gamma.hpp | 2 +- include/boost/math/tools/config.hpp | 2 +- include/boost/math/tools/precision.hpp | 2 +- include/boost/math/tools/test.hpp | 2 +- minimax/Jamfile.v2 | 2 - minimax/main.cpp | 34 ++++---- octonion/octonion_test.cpp | 2 +- performance/main.cpp | 14 ++-- quaternion/quaternion_test.cpp | 2 +- special_functions/acosh_test.hpp | 8 +- special_functions/asinh_test.hpp | 8 +- special_functions/atanh_test.hpp | 14 ++-- special_functions/sinc_test.hpp | 8 +- special_functions/sinhc_test.hpp | 8 +- special_functions/special_functions_test.cpp | 8 +- test/Jamfile.v2 | 8 +- test/acosh_test.hpp | 12 +-- test/asinh_test.hpp | 12 +-- test/atanh_test.hpp | 22 ++--- test/complex_test.cpp | 4 +- test/handle_test_result.hpp | 9 +- test/sinc_test.hpp | 12 +-- test/sinhc_test.hpp | 12 +-- test/special_functions_test.cpp | 8 +- test/test_bernoulli.cpp | 8 +- test/test_dist_overloads.cpp | 3 +- test/test_exponential_dist.cpp | 3 +- test/test_extreme_value.cpp | 3 +- test/test_find_location.cpp | 6 +- test/test_find_scale.cpp | 6 +- test/test_gamma_dist.cpp | 3 +- test/test_geometric.cpp | 4 +- test/test_hypergeometric_dist.cpp | 5 +- test/test_igamma_inv.cpp | 3 +- test/test_igamma_inva.cpp | 4 +- test/test_inverse_gaussian.cpp | 3 +- test/test_laplace.cpp | 2 +- test/test_logistic_dist.cpp | 3 +- test/test_lognormal.cpp | 3 +- test/test_long_double_support.cpp | 4 +- test/test_nc_beta.cpp | 5 +- test/test_nc_chi_squared.cpp | 5 +- test/test_nc_f.cpp | 5 +- test/test_nc_t.cpp | 5 +- test/test_negative_binomial.cpp | 4 +- test/test_normal.cpp | 3 +- test/test_pareto.cpp | 3 +- test/test_poisson.cpp | 8 +- test/test_rayleigh.cpp | 3 +- test/test_real_concept_neg_bin.cpp | 4 +- test/test_roots.cpp | 3 +- test/test_round.cpp | 19 ++--- test/test_sign.cpp | 3 +- test/test_students_t.cpp | 3 +- test/test_toms748_solve.cpp | 7 +- test/test_triangular.cpp | 16 ++-- test/test_uniform.cpp | 3 +- test/test_weibull.cpp | 3 +- tools/Jamfile.v2 | 2 - tools/bessel_data.cpp | 2 +- tools/generate_rational_code.cpp | 2 +- tools/generate_test_values.cpp | 2 +- tools/igamma_temme_large_coef.cpp | 2 +- tools/lanczos_generator.cpp | 2 +- 99 files changed, 455 insertions(+), 536 deletions(-) diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 3e6db76ab..14439ad42 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -7,7 +7,7 @@ import testing ; import pch ; project - : requirements + : requirements intel-win:-nologo intel-win:-nologo #intel-linux:off diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index df45aaf82..94798e2db 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -10,8 +10,6 @@ import testing ; project : requirements - pathscale:-Wno-missing-braces - clang:-Wno-missing-braces gcc:-Wno-missing-braces darwin:-Wno-missing-braces acc:+W2068,2461,2236,4070 diff --git a/example/binomial_coinflip_example.cpp b/example/binomial_coinflip_example.cpp index bd12c7084..26410f42e 100644 --- a/example/binomial_coinflip_example.cpp +++ b/example/binomial_coinflip_example.cpp @@ -46,11 +46,10 @@ First we need some includes and using statements to be able to use the binomial #include using boost::math::binomial; -#include #include using std::cout; using std::endl; using std::left; -#include - using boost::detail::setw; +#include + using std::setw; int main() { @@ -142,7 +141,7 @@ Finally, print two tables of probability for the /exactly/ and /at least/ a numb for (int successes = 0; successes <= flips; successes++) { // Say success means getting a head (or equally success means getting a tail). double probability = pdf(flip, successes); - cout << left << boost::detail::setw(2) << successes << " " << boost::detail::setw(10) + cout << left << setw(2) << successes << " " << setw(10) << probability << " or 1 in " << 1. / probability << ", or " << probability * 100. << "%" << endl; } // for i @@ -154,7 +153,7 @@ Finally, print two tables of probability for the /exactly/ and /at least/ a numb { // Say success means getting a head // (equally success could mean getting a tail). double probability = cdf(flip, successes); // P(X <= heads) - cout << boost::detail::setw(2) << successes << " " << boost::detail::setw(10) << left + cout << setw(2) << successes << " " << setw(10) << left << probability << " or 1 in " << 1. / probability << ", or " << probability * 100. << "%"<< endl; } // for i diff --git a/example/binomial_confidence_limits.cpp b/example/binomial_confidence_limits.cpp index abc8112ae..56ab48c36 100644 --- a/example/binomial_confidence_limits.cpp +++ b/example/binomial_confidence_limits.cpp @@ -12,12 +12,11 @@ # pragma warning(disable: 4610) // can never be instantiated - user defined constructor required. #endif -#include -#include #include using std::cout; using std::endl; -using std::fixed; using std::left; using std::right; using std::right; using boost::detail::setw; -using boost::detail::setprecision; +#include +using std::fixed; using std::left; using std::right; using std::right; using std::setw; +using std::setprecision; #include @@ -39,10 +38,10 @@ void confidence_limits_on_frequency(unsigned trials, unsigned successes) "___________________________________________\n" "2-Sided Confidence Limits For Success Ratio\n" "___________________________________________\n\n"; - cout << boost::detail::setprecision(7); - cout << boost::detail::setw(40) << left << "Number of Observations" << "= " << trials << "\n"; - cout << boost::detail::setw(40) << left << "Number of successes" << "= " << successes << "\n"; - cout << boost::detail::setw(40) << left << "Sample frequency of occurrence" << "= " << double(successes) / trials << "\n"; + cout << setprecision(7); + cout << setw(40) << left << "Number of Observations" << "= " << trials << "\n"; + cout << setw(40) << left << "Number of successes" << "= " << successes << "\n"; + cout << setw(40) << left << "Sample frequency of occurrence" << "= " << double(successes) / trials << "\n"; // // Define a table of significance levels: // @@ -61,19 +60,19 @@ void confidence_limits_on_frequency(unsigned trials, unsigned successes) for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); // Calculate Clopper Pearson bounds: double l = binomial_distribution<>::find_lower_bound_on_p(trials, successes, alpha[i]/2); double u = binomial_distribution<>::find_upper_bound_on_p(trials, successes, alpha[i]/2); // Print Clopper Pearson Limits: - cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << l; - cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << u; + cout << fixed << setprecision(5) << setw(15) << right << l; + cout << fixed << setprecision(5) << setw(15) << right << u; // Calculate Jeffreys Prior Bounds: l = binomial_distribution<>::find_lower_bound_on_p(trials, successes, alpha[i]/2, binomial_distribution<>::jeffreys_prior_interval); u = binomial_distribution<>::find_upper_bound_on_p(trials, successes, alpha[i]/2, binomial_distribution<>::jeffreys_prior_interval); // Print Jeffreys Prior Limits: - cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << l; - cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << u << std::endl; + cout << fixed << setprecision(5) << setw(15) << right << l; + cout << fixed << setprecision(5) << setw(15) << right << u << std::endl; } cout << endl; } // void confidence_limits_on_frequency() diff --git a/example/binomial_example_nag.cpp b/example/binomial_example_nag.cpp index 38b996528..c1d7ee35e 100644 --- a/example/binomial_example_nag.cpp +++ b/example/binomial_example_nag.cpp @@ -16,11 +16,10 @@ #include -#include #include using std::cout; using std::endl; using std::ios; using std::showpoint; -#include - using std::fixed; using boost::detail::setw; +#include + using std::fixed; using std::setw; int main() { @@ -56,21 +55,21 @@ int main() cout << " n p k plek pgtk peqk " << endl; binomial_distribution<>my_dist(4, 0.5); - cout << boost::detail::setw(4) << (int)my_dist.trials() << " " << my_dist.success_fraction() + cout << setw(4) << (int)my_dist.trials() << " " << my_dist.success_fraction() << " " << 2 << " " << cdf(my_dist, 2) << " " << cdf(complement(my_dist, 2)) << " " << pdf(my_dist, 2) << endl; binomial_distribution<>two(19, 0.440); - cout << boost::detail::setw(4) << (int)two.trials() << " " << two.success_fraction() + cout << setw(4) << (int)two.trials() << " " << two.success_fraction() << " " << 13 << " " << cdf(two, 13) << " " << cdf(complement(two, 13)) << " " << pdf(two, 13) << endl; binomial_distribution<>three(100, 0.750); - cout << boost::detail::setw(4) << (int)three.trials() << " " << three.success_fraction() + cout << setw(4) << (int)three.trials() << " " << three.success_fraction() << " " << 67 << " " << cdf(three, 67) << " " << cdf(complement(three, 67)) << " " << pdf(three, 67) << endl; binomial_distribution<>four(2000, 0.330); - cout << boost::detail::setw(4) << (int)four.trials() << " " << four.success_fraction() + cout << setw(4) << (int)four.trials() << " " << four.success_fraction() << " " << 700 << " " << cdf(four, 700) << " " << cdf(complement(four, 700)) << " " << pdf(four, 700) << endl; diff --git a/example/binomial_quiz_example.cpp b/example/binomial_quiz_example.cpp index 30f30c7f1..2fde414b4 100644 --- a/example/binomial_quiz_example.cpp +++ b/example/binomial_quiz_example.cpp @@ -33,12 +33,11 @@ First, we need to be able to use the binomial distribution constructor #include using boost::math::binomial; -#include #include using std::cout; using std::endl; using std::ios; using std::flush; using std::left; using std::right; using std::fixed; -#include - using boost::detail::setw; using boost::detail::setprecision; +#include + using std::setw; using std::setprecision; #include using std::exception; @@ -94,7 +93,7 @@ We can tabulate the 'getting exactly right' ( == ) probabilities thus: for (int successes = 0; successes <= questions; successes++) { double probability = pdf(quiz, successes); - cout << boost::detail::setw(2) << successes << " " << probability << endl; + cout << setw(2) << successes << " " << probability << endl; } cout << endl; /*` @@ -191,7 +190,7 @@ Finally we can tabulate some probabilities: cout << "\n" "At most (<=)""\n""Guessed OK Probability" << right << endl; for (int score = 0; score <= questions; score++) { - cout << boost::detail::setw(2) << score << " " << boost::detail::setprecision(10) + cout << setw(2) << score << " " << setprecision(10) << cdf(quiz, score) << endl; } cout << endl; @@ -221,7 +220,7 @@ Guessed OK Probability cout << "\n" "At least (>)""\n""Guessed OK Probability" << right << endl; for (int score = 0; score <= questions; score++) { - cout << boost::detail::setw(2) << score << " " << boost::detail::setprecision(10) + cout << setw(2) << score << " " << setprecision(10) << cdf(complement(quiz, score)) << endl; } /*` diff --git a/example/binomial_sample_sizes.cpp b/example/binomial_sample_sizes.cpp index d3ff63041..db9f85978 100644 --- a/example/binomial_sample_sizes.cpp +++ b/example/binomial_sample_sizes.cpp @@ -12,12 +12,11 @@ # pragma warning(disable: 4610) // can never be instantiated - user defined constructor required. #endif -#include -#include #include using std::cout; using std::endl; -using std::fixed; using std::left; using std::right; using std::right; using boost::detail::setw; -using boost::detail::setprecision; +#include +using std::fixed; using std::left; using std::right; using std::right; using std::setw; +using std::setprecision; #include @@ -41,9 +40,9 @@ void find_max_sample_size(double p, unsigned successes) "________________________\n" "Maximum Number of Trials\n" "________________________\n\n"; - cout << boost::detail::setprecision(7); - cout << boost::detail::setw(40) << left << "Success ratio" << "= " << p << "\n"; - cout << boost::detail::setw(40) << left << "Maximum Number of \"successes\" permitted" << "= " << successes << "\n"; + cout << setprecision(7); + cout << setw(40) << left << "Success ratio" << "= " << p << "\n"; + cout << setw(40) << left << "Maximum Number of \"successes\" permitted" << "= " << successes << "\n"; // // Define a table of confidence intervals: // @@ -62,12 +61,12 @@ void find_max_sample_size(double p, unsigned successes) for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); // calculate trials: double t = binomial_distribution<>::find_maximum_number_of_trials(successes, p, alpha[i]); t = floor(t); // Print Trials: - cout << fixed << boost::detail::setprecision(0) << boost::detail::setw(15) << right << t << endl; + cout << fixed << setprecision(0) << setw(15) << right << t << endl; } cout << endl; } diff --git a/example/chi_square_std_dev_test.cpp b/example/chi_square_std_dev_test.cpp index 4cf6834cc..e6b195903 100644 --- a/example/chi_square_std_dev_test.cpp +++ b/example/chi_square_std_dev_test.cpp @@ -6,13 +6,12 @@ // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) -#include -#include #include using std::cout; using std::endl; using std::left; using std::fixed; using std::right; using std::scientific; -using boost::detail::setw; -using boost::detail::setprecision; +#include +using std::setw; +using std::setprecision; #include @@ -42,9 +41,9 @@ void confidence_limits_on_std_deviation( "________________________________________________\n" "2-Sided Confidence Limits For Standard Deviation\n" "________________________________________________\n\n"; - cout << boost::detail::setprecision(7); - cout << boost::detail::setw(40) << left << "Number of Observations" << "= " << N << "\n"; - cout << boost::detail::setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; + cout << setprecision(7); + cout << setw(40) << left << "Number of Observations" << "= " << N << "\n"; + cout << setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; // // Define a table of significance/risk levels: double alpha[] = { 0.5, 0.25, 0.1, 0.05, 0.01, 0.001, 0.0001, 0.00001 }; @@ -64,13 +63,13 @@ void confidence_limits_on_std_deviation( for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); // Calculate limits: double lower_limit = sqrt((N - 1) * Sd * Sd / quantile(complement(dist, alpha[i] / 2))); double upper_limit = sqrt((N - 1) * Sd * Sd / quantile(dist, alpha[i] / 2)); // Print Limits: - cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << lower_limit; - cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << upper_limit << endl; + cout << fixed << setprecision(5) << setw(15) << right << lower_limit; + cout << fixed << setprecision(5) << setw(15) << right << upper_limit << endl; } cout << endl; } // void confidence_limits_on_std_deviation @@ -98,9 +97,9 @@ void confidence_limits_on_std_deviation_alpha( "________________________________________________\n" "2-Sided Confidence Limits For Standard Deviation\n" "________________________________________________\n\n"; - cout << boost::detail::setprecision(7); - cout << boost::detail::setw(40) << left << "Confidence level (two-sided) " << "= " << alpha << "\n"; - cout << boost::detail::setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; + cout << setprecision(7); + cout << setw(40) << left << "Confidence level (two-sided) " << "= " << alpha << "\n"; + cout << setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; cout << "\n\n" // Print table header: "_____________________________________________\n" @@ -114,13 +113,13 @@ void confidence_limits_on_std_deviation_alpha( chi_squared dist(N - 1); // Now print out the data for the table row. - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << N; + cout << fixed << setprecision(3) << setw(10) << right << N; // Calculate limits: (alpha /2 because it is a two-sided (upper and lower limit) test. double lower_limit = sqrt((N - 1) * Sd * Sd / quantile(complement(dist, alpha / 2))); double upper_limit = sqrt((N - 1) * Sd * Sd / quantile(dist, alpha / 2)); // Print Limits: - cout << fixed << boost::detail::setprecision(4) << boost::detail::setw(15) << right << lower_limit; - cout << fixed << boost::detail::setprecision(4) << boost::detail::setw(15) << right << upper_limit << endl; + cout << fixed << setprecision(4) << setw(15) << right << lower_limit; + cout << fixed << setprecision(4) << setw(15) << right << upper_limit << endl; } cout << endl; }// void confidence_limits_on_std_deviation_alpha @@ -150,53 +149,53 @@ void chi_squared_test( "______________________________________________\n" "Chi Squared test for sample standard deviation\n" "______________________________________________\n\n"; - cout << boost::detail::setprecision(5); - cout << boost::detail::setw(55) << left << "Number of Observations" << "= " << N << "\n"; - cout << boost::detail::setw(55) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; - cout << boost::detail::setw(55) << left << "Expected True Standard Deviation" << "= " << D << "\n\n"; + cout << setprecision(5); + cout << setw(55) << left << "Number of Observations" << "= " << N << "\n"; + cout << setw(55) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; + cout << setw(55) << left << "Expected True Standard Deviation" << "= " << D << "\n\n"; // // Now we can calculate and output some stats: // // test-statistic: double t_stat = (N - 1) * (Sd / D) * (Sd / D); - cout << boost::detail::setw(55) << left << "Test Statistic" << "= " << t_stat << "\n"; + cout << setw(55) << left << "Test Statistic" << "= " << t_stat << "\n"; // // Finally define our distribution, and get the probability: // chi_squared dist(N - 1); double p = cdf(dist, t_stat); - cout << boost::detail::setw(55) << left << "CDF of test statistic: " << "= " - << boost::detail::setprecision(3) << scientific << p << "\n"; + cout << setw(55) << left << "CDF of test statistic: " << "= " + << setprecision(3) << scientific << p << "\n"; double ucv = quantile(complement(dist, alpha)); double ucv2 = quantile(complement(dist, alpha / 2)); double lcv = quantile(dist, alpha); double lcv2 = quantile(dist, alpha / 2); - cout << boost::detail::setw(55) << left << "Upper Critical Value at alpha: " << "= " - << boost::detail::setprecision(3) << scientific << ucv << "\n"; - cout << boost::detail::setw(55) << left << "Upper Critical Value at alpha/2: " << "= " - << boost::detail::setprecision(3) << scientific << ucv2 << "\n"; - cout << boost::detail::setw(55) << left << "Lower Critical Value at alpha: " << "= " - << boost::detail::setprecision(3) << scientific << lcv << "\n"; - cout << boost::detail::setw(55) << left << "Lower Critical Value at alpha/2: " << "= " - << boost::detail::setprecision(3) << scientific << lcv2 << "\n\n"; + cout << setw(55) << left << "Upper Critical Value at alpha: " << "= " + << setprecision(3) << scientific << ucv << "\n"; + cout << setw(55) << left << "Upper Critical Value at alpha/2: " << "= " + << setprecision(3) << scientific << ucv2 << "\n"; + cout << setw(55) << left << "Lower Critical Value at alpha: " << "= " + << setprecision(3) << scientific << lcv << "\n"; + cout << setw(55) << left << "Lower Critical Value at alpha/2: " << "= " + << setprecision(3) << scientific << lcv2 << "\n\n"; // // Finally print out results of alternative hypothesis: // - cout << boost::detail::setw(55) << left << + cout << setw(55) << left << "Results for Alternative Hypothesis and alpha" << "= " - << boost::detail::setprecision(4) << fixed << alpha << "\n\n"; + << setprecision(4) << fixed << alpha << "\n\n"; cout << "Alternative Hypothesis Conclusion\n"; - cout << "Standard Deviation != " << boost::detail::setprecision(3) << fixed << D << " "; + cout << "Standard Deviation != " << setprecision(3) << fixed << D << " "; if((ucv2 < t_stat) || (lcv2 > t_stat)) cout << "NOT REJECTED\n"; else cout << "REJECTED\n"; - cout << "Standard Deviation < " << boost::detail::setprecision(3) << fixed << D << " "; + cout << "Standard Deviation < " << setprecision(3) << fixed << D << " "; if(lcv > t_stat) cout << "NOT REJECTED\n"; else cout << "REJECTED\n"; - cout << "Standard Deviation > " << boost::detail::setprecision(3) << fixed << D << " "; + cout << "Standard Deviation > " << setprecision(3) << fixed << D << " "; if(ucv < t_stat) cout << "NOT REJECTED\n"; else @@ -221,9 +220,9 @@ void chi_squared_sample_sized( "_____________________________________________________________\n" "Estimated sample sizes required for various confidence levels\n" "_____________________________________________________________\n\n"; - cout << boost::detail::setprecision(5); - cout << boost::detail::setw(40) << left << "True Variance" << "= " << variance << "\n"; - cout << boost::detail::setw(40) << left << "Difference to detect" << "= " << diff << "\n"; + cout << setprecision(5); + cout << setw(40) << left << "True Variance" << "= " << variance << "\n"; + cout << setw(40) << left << "Difference to detect" << "= " << diff << "\n"; // // Define a table of significance levels: // @@ -244,21 +243,21 @@ void chi_squared_sample_sized( for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); // Calculate df for a lower single-sided test: double df = chi_squared::find_degrees_of_freedom( -diff, alpha[i], alpha[i], variance); // Convert to integral sample size (df is a floating point value in this implementation): double size = ceil(df) + 1; // Print size: - cout << fixed << boost::detail::setprecision(0) << boost::detail::setw(16) << right << size; + cout << fixed << setprecision(0) << setw(16) << right << size; // Calculate df for an upper single-sided test: df = chi_squared::find_degrees_of_freedom( diff, alpha[i], alpha[i], variance); // Convert to integral sample size: size = ceil(df) + 1; // Print size: - cout << fixed << boost::detail::setprecision(0) << boost::detail::setw(16) << right << size << endl; + cout << fixed << setprecision(0) << setw(16) << right << size << endl; } cout << endl; } diff --git a/example/f_test.cpp b/example/f_test.cpp index 0c5aaf551..f7fabdee3 100644 --- a/example/f_test.cpp +++ b/example/f_test.cpp @@ -13,13 +13,12 @@ # pragma warning(disable: 4180) // qualifier has no effect (in Fusion). #endif -#include -#include #include using std::cout; using std::endl; using std::left; using std::fixed; using std::right; using std::scientific; -using boost::detail::setw; -using boost::detail::setprecision; +#include +using std::setw; +using std::setprecision; #include @@ -47,45 +46,45 @@ void f_test( "____________________________________\n" "F test for equal standard deviations\n" "____________________________________\n\n"; - cout << boost::detail::setprecision(5); + cout << setprecision(5); cout << "Sample 1:\n"; - cout << boost::detail::setw(55) << left << "Number of Observations" << "= " << N1 << "\n"; - cout << boost::detail::setw(55) << left << "Sample Standard Deviation" << "= " << sd1 << "\n\n"; + cout << setw(55) << left << "Number of Observations" << "= " << N1 << "\n"; + cout << setw(55) << left << "Sample Standard Deviation" << "= " << sd1 << "\n\n"; cout << "Sample 2:\n"; - cout << boost::detail::setw(55) << left << "Number of Observations" << "= " << N2 << "\n"; - cout << boost::detail::setw(55) << left << "Sample Standard Deviation" << "= " << sd2 << "\n\n"; + cout << setw(55) << left << "Number of Observations" << "= " << N2 << "\n"; + cout << setw(55) << left << "Sample Standard Deviation" << "= " << sd2 << "\n\n"; // // Now we can calculate and output some stats: // // F-statistic: double F = (sd1 / sd2); F *= F; - cout << boost::detail::setw(55) << left << "Test Statistic" << "= " << F << "\n\n"; + cout << setw(55) << left << "Test Statistic" << "= " << F << "\n\n"; // // Finally define our distribution, and get the probability: // fisher_f dist(N1 - 1, N2 - 1); double p = cdf(dist, F); - cout << boost::detail::setw(55) << left << "CDF of test statistic: " << "= " - << boost::detail::setprecision(3) << scientific << p << "\n"; + cout << setw(55) << left << "CDF of test statistic: " << "= " + << setprecision(3) << scientific << p << "\n"; double ucv = quantile(complement(dist, alpha)); double ucv2 = quantile(complement(dist, alpha / 2)); double lcv = quantile(dist, alpha); double lcv2 = quantile(dist, alpha / 2); - cout << boost::detail::setw(55) << left << "Upper Critical Value at alpha: " << "= " - << boost::detail::setprecision(3) << scientific << ucv << "\n"; - cout << boost::detail::setw(55) << left << "Upper Critical Value at alpha/2: " << "= " - << boost::detail::setprecision(3) << scientific << ucv2 << "\n"; - cout << boost::detail::setw(55) << left << "Lower Critical Value at alpha: " << "= " - << boost::detail::setprecision(3) << scientific << lcv << "\n"; - cout << boost::detail::setw(55) << left << "Lower Critical Value at alpha/2: " << "= " - << boost::detail::setprecision(3) << scientific << lcv2 << "\n\n"; + cout << setw(55) << left << "Upper Critical Value at alpha: " << "= " + << setprecision(3) << scientific << ucv << "\n"; + cout << setw(55) << left << "Upper Critical Value at alpha/2: " << "= " + << setprecision(3) << scientific << ucv2 << "\n"; + cout << setw(55) << left << "Lower Critical Value at alpha: " << "= " + << setprecision(3) << scientific << lcv << "\n"; + cout << setw(55) << left << "Lower Critical Value at alpha/2: " << "= " + << setprecision(3) << scientific << lcv2 << "\n\n"; // // Finally print out results of null and alternative hypothesis: // - cout << boost::detail::setw(55) << left << + cout << setw(55) << left << "Results for Alternative Hypothesis and alpha" << "= " - << boost::detail::setprecision(4) << fixed << alpha << "\n\n"; + << setprecision(4) << fixed << alpha << "\n\n"; cout << "Alternative Hypothesis Conclusion\n"; cout << "Standard deviations are unequal (two sided test) "; if((ucv2 < F) || (lcv2 > F)) diff --git a/example/find_location_example.cpp b/example/find_location_example.cpp index 9f9208a5d..97c5302a5 100644 --- a/example/find_location_example.cpp +++ b/example/find_location_example.cpp @@ -36,8 +36,8 @@ the algorithms to find location (and some std output of course). #include using std::cout; using std::endl; -#include - using boost::detail::setw; using boost::detail::setprecision; +#include + using std::setw; using std::setprecision; #include using std::numeric_limits; diff --git a/example/find_mean_and_sd_normal.cpp b/example/find_mean_and_sd_normal.cpp index c4f0ecc5b..9a09c7a8c 100644 --- a/example/find_mean_and_sd_normal.cpp +++ b/example/find_mean_and_sd_normal.cpp @@ -30,11 +30,10 @@ the algorithms to find location and scale using boost::math::complement; using boost::math::policies::policy; -#include #include using std::cout; using std::endl; using std::left; using std::showpoint; using std::noshowpoint; -#include - using boost::detail::setw; using boost::detail::setprecision; +#include + using std::setw; using std::setprecision; #include using std::numeric_limits; #include diff --git a/example/find_root_example.cpp b/example/find_root_example.cpp index ade2b80b3..65b2f3b97 100644 --- a/example/find_root_example.cpp +++ b/example/find_root_example.cpp @@ -23,11 +23,10 @@ First we need some includes to access the normal distribution #include // for normal_distribution using boost::math::normal; // typedef provides default type is double. -#include #include using std::cout; using std::endl; using std::left; using std::showpoint; using std::noshowpoint; -#include - using boost::detail::setw; using boost::detail::setprecision; +#include + using std::setw; using std::setprecision; #include using std::numeric_limits; #include diff --git a/example/find_scale_example.cpp b/example/find_scale_example.cpp index 53d2f576a..b3b42b468 100644 --- a/example/find_scale_example.cpp +++ b/example/find_scale_example.cpp @@ -27,8 +27,8 @@ the algorithms to find scale (and some std output of course). #include using std::cout; using std::endl; -#include - using boost::detail::setw; using boost::detail::setprecision; +#include + using std::setw; using std::setprecision; #include using std::numeric_limits; //] [/find_scale1] diff --git a/example/geometric_examples.cpp b/example/geometric_examples.cpp index 9b0ee2523..410b4d980 100644 --- a/example/geometric_examples.cpp +++ b/example/geometric_examples.cpp @@ -48,12 +48,11 @@ and we need some std library iostream, of course. // for negative_binomial_distribution using boost::math::normal; // typedef provides default type is double. -#include #include using std::cout; using std::endl; using std::noshowpoint; using std::fixed; using std::right; using std::left; -#include - using boost::detail::setprecision; using boost::detail::setw; +#include + using std::setprecision; using std::setw; #include using std::numeric_limits; diff --git a/example/inverse_chi_squared_example.cpp b/example/inverse_chi_squared_example.cpp index 83eee6d3a..717046022 100644 --- a/example/inverse_chi_squared_example.cpp +++ b/example/inverse_chi_squared_example.cpp @@ -15,9 +15,9 @@ using boost::math::inverse_chi_squared; //typedef for nverse_chi_squared_distrib #include using std::cout; using std::endl; -#include -using boost::detail::setprecision; -using boost::detail::setw; +#include +using std::setprecision; +using std::setw; #include using std::sqrt; @@ -120,15 +120,15 @@ int main() for (double x = 0.0; x < 1.; x += 0.1) { cout - << boost::detail::setw(width) << x - << ' ' << boost::detail::setw(width) << pdf(ichsq, x) // unscaled - << ' ' << boost::detail::setw(width) << naive_pdf1(nu, x) // Wiki def 1 unscaled matches graph - << ' ' << boost::detail::setw(width) << naive_pdf2(nu, x) // scale = 1 - 2nd definition. - << ' ' << boost::detail::setw(width) << naive_pdf3(nu, 1/nu, x) // scaled - << ' ' << boost::detail::setw(width) << naive_pdf4(nu, 1/nu, x) // scaled - << ' ' << boost::detail::setw(width) << pdf(sichsq, x) // scaled - << ' ' << boost::detail::setw(width) << cdf(sichsq, x) // scaled - << ' ' << boost::detail::setw(width) << cdf(ichsq, x) // unscaled + << setw(width) << x + << ' ' << setw(width) << pdf(ichsq, x) // unscaled + << ' ' << setw(width) << naive_pdf1(nu, x) // Wiki def 1 unscaled matches graph + << ' ' << setw(width) << naive_pdf2(nu, x) // scale = 1 - 2nd definition. + << ' ' << setw(width) << naive_pdf3(nu, 1/nu, x) // scaled + << ' ' << setw(width) << naive_pdf4(nu, 1/nu, x) // scaled + << ' ' << setw(width) << pdf(sichsq, x) // scaled + << ' ' << setw(width) << cdf(sichsq, x) // scaled + << ' ' << setw(width) << cdf(ichsq, x) // unscaled << endl; } } diff --git a/example/inverse_chi_squared_find_df_example.cpp b/example/inverse_chi_squared_find_df_example.cpp index ac3ad1ab9..ea0f932dc 100644 --- a/example/inverse_chi_squared_find_df_example.cpp +++ b/example/inverse_chi_squared_find_df_example.cpp @@ -17,9 +17,9 @@ using boost::math::inverse_chi_squared; //typedef for nverse_chi_squared_distrib #include using std::cout; using std::endl; -#include -using boost::detail::setprecision; -using boost::detail::setw; +#include +using std::setprecision; +using std::setw; #include using std::sqrt; diff --git a/example/inverse_gamma_distribution_example.cpp b/example/inverse_gamma_distribution_example.cpp index 16d1e266f..147c8084c 100644 --- a/example/inverse_gamma_distribution_example.cpp +++ b/example/inverse_gamma_distribution_example.cpp @@ -21,8 +21,8 @@ using boost::math::inverse_gamma_distribution; #include using std::cout; using std::endl; -#include -using boost::detail::setprecision; +#include +using std::setprecision; #include using std::sqrt; diff --git a/example/inverse_gamma_example.cpp b/example/inverse_gamma_example.cpp index 1952f2646..91495e794 100644 --- a/example/inverse_gamma_example.cpp +++ b/example/inverse_gamma_example.cpp @@ -18,8 +18,8 @@ using boost::math::gamma_p_inv; // Compute x given a #include using std::cout; using std::endl; -#include - using boost::detail::setprecision; +#include + using std::setprecision; #include using std::sqrt; #include diff --git a/example/inverse_gaussian_example.cpp b/example/inverse_gaussian_example.cpp index 2c48d55f8..155b531b7 100644 --- a/example/inverse_gaussian_example.cpp +++ b/example/inverse_gaussian_example.cpp @@ -45,17 +45,16 @@ using boost::math::normal; // typedef provides default type is double. #include using boost::array; -#include #include using std::cout; using std::endl; using std::left; using std::showpoint; using std::noshowpoint; -#include - using boost::detail::setw; using boost::detail::setprecision; +#include + using std::setw; using std::setprecision; #include using std::numeric_limits; #include - using std::stringstream; -#include using std::string; +#include + using std::stringstream; // const double tol = 3 * numeric_limits::epsilon(); diff --git a/example/laplace_example.cpp b/example/laplace_example.cpp index 47111e9b7..ed99dba21 100644 --- a/example/laplace_example.cpp +++ b/example/laplace_example.cpp @@ -23,11 +23,10 @@ First we need some includes to access the laplace & normal distributions #include // for normal_distribution using boost::math::normal; // typedef provides default type is double. -#include #include using std::cout; using std::endl; using std::left; using std::showpoint; using std::noshowpoint; -#include - using boost::detail::setw; using boost::detail::setprecision; +#include + using std::setw; using std::setprecision; #include using std::numeric_limits; @@ -44,7 +43,7 @@ int main() double range = 4; // min and max z = -range to +range. //int precision = 17; // traditional tables are only computed to much lower precision. int precision = 4; // traditional table at much lower precision. - int width = 10; // for use with boost::detail::setw. + int width = 10; // for use with setw. // Construct standard laplace & normal distributions l & s normal s; // (default location or mean = zero, and scale or standard deviation = unity) @@ -61,10 +60,10 @@ int main() cout.precision(5); for (double z = -range; z < range + step; z += step) { - cout << left << boost::detail::setprecision(3) << boost::detail::setw(6) << z << " " - << boost::detail::setprecision(precision) << boost::detail::setw(width) << pdf(s, z) << " " - << boost::detail::setprecision(precision) << boost::detail::setw(width) << pdf(l, z)<< " (" - << boost::detail::setprecision(precision) << boost::detail::setw(width) << pdf(l, z) - pdf(s, z) // difference. + cout << left << setprecision(3) << setw(6) << z << " " + << setprecision(precision) << setw(width) << pdf(s, z) << " " + << setprecision(precision) << setw(width) << pdf(l, z)<< " (" + << setprecision(precision) << setw(width) << pdf(l, z) - pdf(s, z) // difference. << ")" << endl; } cout.precision(6); // default @@ -80,10 +79,10 @@ int main() cout << " z CDF normal laplace (difference)" << endl; for (double z = -range; z < range + step; z += step) { - cout << left << boost::detail::setprecision(3) << boost::detail::setw(6) << z << " " - << boost::detail::setprecision(precision) << boost::detail::setw(width) << cdf(s, z) << " " - << boost::detail::setprecision(precision) << boost::detail::setw(width) << cdf(l, z) << " (" - << boost::detail::setprecision(precision) << boost::detail::setw(width) << cdf(l, z) - cdf(s, z) // difference. + cout << left << setprecision(3) << setw(6) << z << " " + << setprecision(precision) << setw(width) << cdf(s, z) << " " + << setprecision(precision) << setw(width) << cdf(l, z) << " (" + << setprecision(precision) << setw(width) << cdf(l, z) - cdf(s, z) // difference. << ")" << endl; } cout.precision(6); // default diff --git a/example/nc_chi_sq_example.cpp b/example/nc_chi_sq_example.cpp index 99372f0d2..189badd01 100644 --- a/example/nc_chi_sq_example.cpp +++ b/example/nc_chi_sq_example.cpp @@ -30,8 +30,7 @@ using boost::math::non_central_chi_squared; #include using std::cout; using std::endl; -#include -using boost::detail::setprecision; +using std::setprecision; int main() { @@ -70,7 +69,7 @@ int main() /*` Then output the cell value: */ - cout << "[" << boost::detail::setprecision(3) << beta << "]"; + cout << "[" << setprecision(3) << beta << "]"; } cout << "]" << endl; } diff --git a/example/neg_binom_confidence_limits.cpp b/example/neg_binom_confidence_limits.cpp index 67b855320..4cb11a3d7 100644 --- a/example/neg_binom_confidence_limits.cpp +++ b/example/neg_binom_confidence_limits.cpp @@ -22,12 +22,11 @@ First we need some includes to access the negative binomial distribution #include using boost::math::negative_binomial; -#include #include using std::cout; using std::endl; -#include -using boost::detail::setprecision; -using boost::detail::setw; using std::left; using std::fixed; using std::right; +#include +using std::setprecision; +using std::setw; using std::left; using std::fixed; using std::right; /*` First define a table of significance levels: these are the @@ -58,11 +57,11 @@ void confidence_limits_on_frequency(unsigned trials, unsigned successes) "______________________________________________\n" "2-Sided Confidence Limits For Success Fraction\n" "______________________________________________\n\n"; - cout << boost::detail::setprecision(7); - cout << boost::detail::setw(40) << left << "Number of trials" << " = " << trials << "\n"; - cout << boost::detail::setw(40) << left << "Number of successes" << " = " << successes << "\n"; - cout << boost::detail::setw(40) << left << "Number of failures" << " = " << trials - successes << "\n"; - cout << boost::detail::setw(40) << left << "Observed frequency of occurrence" << " = " << double(successes) / trials << "\n"; + cout << setprecision(7); + cout << setw(40) << left << "Number of trials" << " = " << trials << "\n"; + cout << setw(40) << left << "Number of successes" << " = " << successes << "\n"; + cout << setw(40) << left << "Number of failures" << " = " << trials - successes << "\n"; + cout << setw(40) << left << "Observed frequency of occurrence" << " = " << double(successes) / trials << "\n"; // Print table header: cout << "\n\n" @@ -87,13 +86,13 @@ then we would *not* have divided by two. for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); // Calculate bounds: double lower = negative_binomial::find_lower_bound_on_p(trials, successes, alpha[i]/2); double upper = negative_binomial::find_upper_bound_on_p(trials, successes, alpha[i]/2); // Print limits: - cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << lower; - cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << upper << endl; + cout << fixed << setprecision(5) << setw(15) << right << lower; + cout << fixed << setprecision(5) << setw(15) << right << upper << endl; } cout << endl; } // void confidence_limits_on_frequency(unsigned trials, unsigned successes) diff --git a/example/neg_binomial_sample_sizes.cpp b/example/neg_binomial_sample_sizes.cpp index c64157f70..d01089e9d 100644 --- a/example/neg_binomial_sample_sizes.cpp +++ b/example/neg_binomial_sample_sizes.cpp @@ -17,15 +17,14 @@ double k, // number of failures (events), k >= 0. double p, // fraction of trails for which event occurs, 0 <= p <= 1. double probability); // probability threshold, 0 <= probability <= 1. -#include #include using std::cout; using std::endl; using std::fixed; using std::right; -#include -using boost::detail::setprecision; -using boost::detail::setw; +#include +using std::setprecision; +using std::setw; //[neg_binomial_sample_sizes @@ -65,7 +64,7 @@ void find_number_of_trials(double failures, double p) // required number of failures DOES exceed "failures". cout << "\n""Target number of failures = " << (int)failures; - cout << ", Success fraction = " << fixed << boost::detail::setprecision(1) << 100 * p << "%" << endl; + cout << ", Success fraction = " << fixed << setprecision(1) << 100 * p << "%" << endl; // Print table header: cout << "____________________________\n" "Confidence Min Number\n" @@ -74,9 +73,9 @@ void find_number_of_trials(double failures, double p) // Now print out the data for the alpha table values. for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence values %: - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]) << " " + cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]) << " " // find_minimum_number_of_trials - << boost::detail::setw(6) << right + << setw(6) << right << (int)ceil(negative_binomial::find_minimum_number_of_trials(failures, p, alpha[i])) << endl; } diff --git a/example/negative_binomial_example1.cpp b/example/negative_binomial_example1.cpp index f02554591..928811d09 100644 --- a/example/negative_binomial_example1.cpp +++ b/example/negative_binomial_example1.cpp @@ -59,12 +59,11 @@ and we need some std library iostream, of course. using ::boost::math::cdf; // Cumulative density function. using ::boost::math::quantile; -#include #include using std::cout; using std::endl; using std::noshowpoint; using std::fixed; using std::right; using std::left; -#include - using boost::detail::setprecision; using boost::detail::setw; +#include + using std::setprecision; using std::setw; #include using std::numeric_limits; @@ -376,7 +375,7 @@ Finally, we can tabulate the probability for the last sale being exactly on each cout.precision(5); for (int i = (int)sales_quota; i < all_houses+1; i++) { - cout << left << boost::detail::setw(3) << i << " " << boost::detail::setw(8) << cdf(nb, i - sales_quota) << endl; + cout << left << setw(3) << i << " " << setw(8) << cdf(nb, i - sales_quota) << endl; } cout << endl; /*` diff --git a/example/negative_binomial_example2.cpp b/example/negative_binomial_example2.cpp index 155c0029a..601180c34 100644 --- a/example/negative_binomial_example2.cpp +++ b/example/negative_binomial_example2.cpp @@ -19,14 +19,12 @@ // negative_binomial is the probability that k or fewer failures // preceed the r th trial's success. -#include #include -#include using std::cout; using std::endl; -using boost::detail::setprecision; +using std::setprecision; using std::showpoint; -using boost::detail::setw; +using std::setw; using std::left; using std::right; #include @@ -65,10 +63,10 @@ int main() // Compare with the cdf double cdf8 = cdf(mynbdist, static_cast(k)); double diff = sum - cdf8; // Expect the diference to be very small. - cout << boost::detail::setprecision(17) << "Sum pdfs = " << sum << ' ' // sum = 0.40025683281803698 + cout << setprecision(17) << "Sum pdfs = " << sum << ' ' // sum = 0.40025683281803698 << ", cdf = " << cdf(mynbdist, static_cast(k)) // cdf = 0.40025683281803687 << ", difference = " // difference = 0.50000000000000000 - << boost::detail::setprecision(1) << diff/ (std::numeric_limits::epsilon() * sum) + << setprecision(1) << diff/ (std::numeric_limits::epsilon() * sum) << " in epsilon units." << endl; // Note: Use boost::math::tools::epsilon rather than std::numeric_limits @@ -87,10 +85,10 @@ int main() cout << "\n"" k pdf cdf""\n" << endl; for (int k = 0; k < maxk; k++) { - cout << right << boost::detail::setprecision(17) << showpoint - << right << boost::detail::setw(3) << k << ", " - << left << boost::detail::setw(25) << pdf(mynbdist, static_cast(k)) - << left << boost::detail::setw(25) << cdf(mynbdist, static_cast(k)) + cout << right << setprecision(17) << showpoint + << right << setw(3) << k << ", " + << left << setw(25) << pdf(mynbdist, static_cast(k)) + << left << setw(25) << cdf(mynbdist, static_cast(k)) << endl; } cout << endl; diff --git a/example/normal_misc_examples.cpp b/example/normal_misc_examples.cpp index 531d2d097..4503847dd 100644 --- a/example/normal_misc_examples.cpp +++ b/example/normal_misc_examples.cpp @@ -21,11 +21,10 @@ First we need some includes to access the normal distribution #include // for normal_distribution using boost::math::normal; // typedef provides default type is double. -#include #include using std::cout; using std::endl; using std::left; using std::showpoint; using std::noshowpoint; -#include - using boost::detail::setw; using boost::detail::setprecision; +#include + using std::setw; using std::setprecision; #include using std::numeric_limits; @@ -58,8 +57,8 @@ int main() cout.precision(5); for (double z = -range; z < range + step; z += step) { - cout << left << boost::detail::setprecision(3) << boost::detail::setw(6) << z << " " - << boost::detail::setprecision(precision) << boost::detail::setw(12) << pdf(s, z) << endl; + cout << left << setprecision(3) << setw(6) << z << " " + << setprecision(precision) << setw(12) << pdf(s, z) << endl; } cout.precision(6); // default /*`And the area under the normal curve from -[infin] up to z, @@ -72,8 +71,8 @@ int main() cout << " z " " cdf " << endl; for (double z = -range; z < range + step; z += step) { - cout << left << boost::detail::setprecision(3) << boost::detail::setw(6) << z << " " - << boost::detail::setprecision(precision) << boost::detail::setw(12) << cdf(s, z) << endl; + cout << left << setprecision(3) << setw(6) << z << " " + << setprecision(precision) << setw(12) << cdf(s, z) << endl; } cout.precision(6); // default @@ -111,7 +110,7 @@ It is convenient to have an alpha level for the probability that z lies outside This will not be some nice neat number like 0.05, but we can easily calculate it, */ double alpha1 = cdf(s, -1) * 2; // 0.3173105078629142 - cout << boost::detail::setprecision(17) << "Significance level for z == 1 is " << alpha1 << endl; + cout << setprecision(17) << "Significance level for z == 1 is " << alpha1 << endl; /*` and place in our array of favorite alpha values. */ @@ -123,11 +122,11 @@ Confidence value as % is (1 - alpha) * 100 (so alpha 0.05 == 95% confidence) that the true occurrence frequency lies *inside* the calculated interval. */ - cout << "level of significance (alpha)" << boost::detail::setprecision(4) << endl; + cout << "level of significance (alpha)" << setprecision(4) << endl; cout << "2-sided 1 -sided z(alpha) " << endl; for (int i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { - cout << boost::detail::setw(15) << alpha[i] << boost::detail::setw(15) << alpha[i] /2 << boost::detail::setw(10) << quantile(complement(s, alpha[i]/2)) << endl; + cout << setw(15) << alpha[i] << setw(15) << alpha[i] /2 << setw(10) << quantile(complement(s, alpha[i]/2)) << endl; // Use quantile(complement(s, alpha[i]/2)) to avoid potential loss of accuracy from quantile(s, 1 - alpha[i]/2) } cout << endl; diff --git a/example/policy_eg_10.cpp b/example/policy_eg_10.cpp index 22f96f7ae..87f84c090 100644 --- a/example/policy_eg_10.cpp +++ b/example/policy_eg_10.cpp @@ -20,13 +20,12 @@ all the possible quantiles at 0.05 and 0.95. Begin by including the needed headers (and some using statements for conciseness): */ -#include #include using std::cout; using std::endl; using std::left; using std::fixed; using std::right; using std::scientific; -#include -using boost::detail::setw; -using boost::detail::setprecision; +#include +using std::setw; +using std::setprecision; #include /*` @@ -97,62 +96,62 @@ int main() "Lower quantiles are calculated at p = 0.05\n\n" "Upper quantiles at p = 0.95.\n\n"; - cout << boost::detail::setw(25) << right - << "Policy"<< boost::detail::setw(18) << right - << "Lower Quantile" << boost::detail::setw(18) << right + cout << setw(25) << right + << "Policy"<< setw(18) << right + << "Lower Quantile" << setw(18) << right << "Upper Quantile" << endl; // Test integer_round_outwards: - cout << boost::detail::setw(25) << right + cout << setw(25) << right << "integer_round_outwards" - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_round_outwards(50, 0.5), 0.05) - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_round_outwards(50, 0.5), 0.95) << endl; // Test integer_round_inwards: - cout << boost::detail::setw(25) << right + cout << setw(25) << right << "integer_round_inwards" - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_round_inwards(50, 0.5), 0.05) - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_round_inwards(50, 0.5), 0.95) << endl; // Test integer_round_down: - cout << boost::detail::setw(25) << right + cout << setw(25) << right << "integer_round_down" - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_round_down(50, 0.5), 0.05) - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_round_down(50, 0.5), 0.95) << endl; // Test integer_round_up: - cout << boost::detail::setw(25) << right + cout << setw(25) << right << "integer_round_up" - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_round_up(50, 0.5), 0.05) - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_round_up(50, 0.5), 0.95) << endl; // Test integer_round_nearest: - cout << boost::detail::setw(25) << right + cout << setw(25) << right << "integer_round_nearest" - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_round_nearest(50, 0.5), 0.05) - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_round_nearest(50, 0.5), 0.95) << endl; // Test real: - cout << boost::detail::setw(25) << right + cout << setw(25) << right << "real" - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_real_quantile(50, 0.5), 0.05) - << boost::detail::setw(18) << right + << setw(18) << right << quantile(binom_real_quantile(50, 0.5), 0.95) << endl; } // int main() diff --git a/example/policy_eg_9.cpp b/example/policy_eg_9.cpp index 2a558d4a6..98234c29e 100644 --- a/example/policy_eg_9.cpp +++ b/example/policy_eg_9.cpp @@ -7,7 +7,6 @@ // Note that this file contains quickbook mark-up as well as code // and comments, don't change any of the special comment mark-ups! -#include #include using std::cout; using std::endl; using std::cerr; @@ -84,7 +83,7 @@ T user_domain_error(const char* function, const char* message, const T& val) msg += ": \n"; int prec = 2 + (std::numeric_limits::digits * 30103UL) / 100000UL; // int prec = std::numeric_limits::max_digits10; // For C++0X Standard Library - msg += (boost::format(message) % boost::io::group(boost::detail::setprecision(prec), val)).str(); + msg += (boost::format(message) % boost::io::group(std::setprecision(prec), val)).str(); /*` 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 @@ -202,7 +201,7 @@ T user_evaluation_error(const char* function, const char* message, const T& val) msg += ": \n"; int prec = 2 + (std::numeric_limits::digits * 30103UL) / 100000UL; // int prec = std::numeric_limits::max_digits10; // For C++0X Standard Library - msg += (boost::format(message) % boost::io::group(boost::detail::setprecision(prec), val)).str(); + msg += (boost::format(message) % boost::io::group(std::setprecision(prec), val)).str(); std::cerr << msg << std::endl; diff --git a/example/root_finding_example.cpp b/example/root_finding_example.cpp index a1f862e46..5829d981c 100644 --- a/example/root_finding_example.cpp +++ b/example/root_finding_example.cpp @@ -51,8 +51,8 @@ using boost::math::tools::toms748_solve; #include using std::cout; using std::endl; -#include -using boost::detail::setw; using boost::detail::setprecision; +#include +using std::setw; using std::setprecision; #include using std::numeric_limits; diff --git a/example/students_t_example1.cpp b/example/students_t_example1.cpp index 94c857de3..c86b89d5d 100644 --- a/example/students_t_example1.cpp +++ b/example/students_t_example1.cpp @@ -47,8 +47,8 @@ double value[values] = {38.9, 37.4, 37.1}; #include using std::cout; using std::endl; -#include - using boost::detail::setprecision; +#include + using std::setprecision; #include using std::sqrt; diff --git a/example/students_t_example2.cpp b/example/students_t_example2.cpp index 9b1109246..bbd423162 100644 --- a/example/students_t_example2.cpp +++ b/example/students_t_example2.cpp @@ -35,9 +35,9 @@ #include using std::cout; using std::endl; -#include - using boost::detail::setprecision; - using boost::detail::setw; +#include + using std::setprecision; + using std::setw; #include using std::sqrt; @@ -68,7 +68,7 @@ int main() for (int value = 0; value < values; value++) { // Echo data and calculate mean. sum += data[value]; - cout << boost::detail::setw(4) << value << ' ' << boost::detail::setw(14) << data[value] << endl; + cout << setw(4) << value << ' ' << setw(14) << data[value] << endl; } double mean = sum /static_cast(values); cout << "Mean = " << mean << endl; // 25.2283 diff --git a/example/students_t_example3.cpp b/example/students_t_example3.cpp index 0572ef481..289daec09 100644 --- a/example/students_t_example3.cpp +++ b/example/students_t_example3.cpp @@ -34,8 +34,8 @@ #include using std::cout; using std::endl; -#include - using boost::detail::setprecision; using boost::detail::setw; +#include + using std::setprecision; using std::setw; #include using std::sqrt; @@ -71,7 +71,7 @@ int main() { // Echo data and differences. diffs[portion] = data[portion][0] - data[portion][1]; mean_diff += diffs[portion]; - cout << boost::detail::setw(4) << portion << ' ' << boost::detail::setw(14) << data[portion][0] << ' ' << boost::detail::setw(18)<< data[portion][1] << ' ' << boost::detail::setw(9) << diffs[portion] << endl; + cout << setw(4) << portion << ' ' << setw(14) << data[portion][0] << ' ' << setw(18)<< data[portion][1] << ' ' << setw(9) << diffs[portion] << endl; } mean_diff /= portions; cout << "Mean difference = " << mean_diff << endl; // -1.75 diff --git a/example/students_t_single_sample.cpp b/example/students_t_single_sample.cpp index ac8473966..84138b9a0 100644 --- a/example/students_t_single_sample.cpp +++ b/example/students_t_single_sample.cpp @@ -16,13 +16,12 @@ // avoid "using namespace std;" and "using namespace boost::math;" // to avoid potential ambiguity with names in std random. -#include #include using std::cout; using std::endl; using std::left; using std::fixed; using std::right; using std::scientific; -#include -using boost::detail::setw; -using boost::detail::setprecision; +#include +using std::setw; +using std::setprecision; void confidence_limits_on_mean(double Sm, double Sd, unsigned Sn) { @@ -50,10 +49,10 @@ void confidence_limits_on_mean(double Sm, double Sd, unsigned Sn) "__________________________________\n" "2-Sided Confidence Limits For Mean\n" "__________________________________\n\n"; - cout << boost::detail::setprecision(7); - cout << boost::detail::setw(40) << left << "Number of Observations" << "= " << Sn << "\n"; - cout << boost::detail::setw(40) << left << "Mean" << "= " << Sm << "\n"; - cout << boost::detail::setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; + cout << setprecision(7); + cout << setw(40) << left << "Number of Observations" << "= " << Sn << "\n"; + cout << setw(40) << left << "Mean" << "= " << Sm << "\n"; + cout << setw(40) << left << "Standard Deviation" << "= " << Sd << "\n"; // // Define a table of significance/risk levels: // @@ -76,21 +75,21 @@ void confidence_limits_on_mean(double Sm, double Sd, unsigned Sn) for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); // calculate T: double T = quantile(complement(dist, alpha[i] / 2)); // Print T: - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << T; + cout << fixed << setprecision(3) << setw(10) << right << T; // Calculate width of interval (one sided): double w = T * Sd / sqrt(double(Sn)); // Print width: if(w < 0.01) - cout << scientific << boost::detail::setprecision(3) << boost::detail::setw(17) << right << w; + cout << scientific << setprecision(3) << setw(17) << right << w; else - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(17) << right << w; + cout << fixed << setprecision(3) << setw(17) << right << w; // Print Limits: - cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << Sm - w; - cout << fixed << boost::detail::setprecision(5) << boost::detail::setw(15) << right << Sm + w << endl; + cout << fixed << setprecision(5) << setw(15) << right << Sm - w; + cout << fixed << setprecision(5) << setw(15) << right << Sm + w << endl; } cout << endl; } // void confidence_limits_on_mean @@ -118,48 +117,48 @@ void single_sample_t_test(double M, double Sm, double Sd, unsigned Sn, double al "__________________________________\n" "Student t test for a single sample\n" "__________________________________\n\n"; - cout << boost::detail::setprecision(5); - cout << boost::detail::setw(55) << left << "Number of Observations" << "= " << Sn << "\n"; - cout << boost::detail::setw(55) << left << "Sample Mean" << "= " << Sm << "\n"; - cout << boost::detail::setw(55) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; - cout << boost::detail::setw(55) << left << "Expected True Mean" << "= " << M << "\n\n"; + cout << setprecision(5); + cout << setw(55) << left << "Number of Observations" << "= " << Sn << "\n"; + cout << setw(55) << left << "Sample Mean" << "= " << Sm << "\n"; + cout << setw(55) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; + cout << setw(55) << left << "Expected True Mean" << "= " << M << "\n\n"; // // Now we can calculate and output some stats: // // Difference in means: double diff = Sm - M; - cout << boost::detail::setw(55) << left << "Sample Mean - Expected Test Mean" << "= " << diff << "\n"; + cout << setw(55) << left << "Sample Mean - Expected Test Mean" << "= " << diff << "\n"; // Degrees of freedom: unsigned v = Sn - 1; - cout << boost::detail::setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; + cout << setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; // t-statistic: double t_stat = diff * sqrt(double(Sn)) / Sd; - cout << boost::detail::setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; + cout << setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; // // Finally define our distribution, and get the probability: // students_t dist(v); double q = cdf(complement(dist, fabs(t_stat))); - cout << boost::detail::setw(55) << left << "Probability that difference is due to chance" << "= " - << boost::detail::setprecision(3) << scientific << 2 * q << "\n\n"; + cout << setw(55) << left << "Probability that difference is due to chance" << "= " + << setprecision(3) << scientific << 2 * q << "\n\n"; // // Finally print out results of alternative hypothesis: // - cout << boost::detail::setw(55) << left << + cout << setw(55) << left << "Results for Alternative Hypothesis and alpha" << "= " - << boost::detail::setprecision(4) << fixed << alpha << "\n\n"; + << setprecision(4) << fixed << alpha << "\n\n"; cout << "Alternative Hypothesis Conclusion\n"; - cout << "Mean != " << boost::detail::setprecision(3) << fixed << M << " "; + cout << "Mean != " << setprecision(3) << fixed << M << " "; if(q < alpha / 2) cout << "NOT REJECTED\n"; else cout << "REJECTED\n"; - cout << "Mean < " << boost::detail::setprecision(3) << fixed << M << " "; + cout << "Mean < " << setprecision(3) << fixed << M << " "; if(cdf(dist, t_stat) < alpha) cout << "NOT REJECTED\n"; else cout << "REJECTED\n"; - cout << "Mean > " << boost::detail::setprecision(3) << fixed << M << " "; + cout << "Mean > " << setprecision(3) << fixed << M << " "; if(cdf(complement(dist, t_stat)) < alpha) cout << "NOT REJECTED\n"; else @@ -182,10 +181,10 @@ void single_sample_find_df(double M, double Sm, double Sd) "_____________________________________________________________\n" "Estimated sample sizes required for various confidence levels\n" "_____________________________________________________________\n\n"; - cout << boost::detail::setprecision(5); - cout << boost::detail::setw(40) << left << "True Mean" << "= " << M << "\n"; - cout << boost::detail::setw(40) << left << "Sample Mean" << "= " << Sm << "\n"; - cout << boost::detail::setw(40) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; + cout << setprecision(5); + cout << setw(40) << left << "True Mean" << "= " << M << "\n"; + cout << setw(40) << left << "Sample Mean" << "= " << Sm << "\n"; + cout << setw(40) << left << "Sample Standard Deviation" << "= " << Sd << "\n"; // // Define a table of significance intervals: // @@ -205,21 +204,21 @@ void single_sample_find_df(double M, double Sm, double Sd) for(unsigned i = 1; i < sizeof(alpha)/sizeof(alpha[0]); ++i) { // Confidence value: - cout << fixed << boost::detail::setprecision(3) << boost::detail::setw(10) << right << 100 * (1-alpha[i]); + cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); // calculate df for single sided test: double df = students_t::find_degrees_of_freedom( fabs(M - Sm), alpha[i], alpha[i], Sd); // convert to sample size, always one more than the degrees of freedom: double size = ceil(df) + 1; // Print size: - cout << fixed << boost::detail::setprecision(0) << boost::detail::setw(16) << right << size; + cout << fixed << setprecision(0) << setw(16) << right << size; // calculate df for two sided test: df = students_t::find_degrees_of_freedom( fabs(M - Sm), alpha[i]/2, alpha[i], Sd); // convert to sample size: size = ceil(df) + 1; // Print size: - cout << fixed << boost::detail::setprecision(0) << boost::detail::setw(16) << right << size << endl; + cout << fixed << setprecision(0) << setw(16) << right << size << endl; } cout << endl; } // void single_sample_find_df diff --git a/example/students_t_two_samples.cpp b/example/students_t_two_samples.cpp index ea4278608..7bf86eead 100644 --- a/example/students_t_two_samples.cpp +++ b/example/students_t_two_samples.cpp @@ -12,13 +12,12 @@ # pragma warning(disable: 4610) // can never be instantiated - user defined constructor required. #endif -#include #include using std::cout; using std::endl; using std::left; using std::fixed; using std::right; using std::scientific; -#include -using boost::detail::setw; -using boost::detail::setprecision; +#include +using std::setw; +using std::setprecision; #include using boost::math::students_t; @@ -39,7 +38,7 @@ void two_samples_t_test_equal_sd( // if due to chance. // See http://www.itl.nist.gov/div898/handbook/eda/section3/eda353.htm // - // using namespace std; + using namespace std; // using namespace boost::math; using boost::math::students_t; @@ -49,38 +48,38 @@ void two_samples_t_test_equal_sd( "_______________________________________________\n" "Student t test for two samples (equal variances)\n" "_______________________________________________\n\n"; - cout << boost::detail::setprecision(5); - cout << boost::detail::setw(55) << left << "Number of Observations (Sample 1)" << "= " << Sn1 << "\n"; - cout << boost::detail::setw(55) << left << "Sample 1 Mean" << "= " << Sm1 << "\n"; - cout << boost::detail::setw(55) << left << "Sample 1 Standard Deviation" << "= " << Sd1 << "\n"; - cout << boost::detail::setw(55) << left << "Number of Observations (Sample 2)" << "= " << Sn2 << "\n"; - cout << boost::detail::setw(55) << left << "Sample 2 Mean" << "= " << Sm2 << "\n"; - cout << boost::detail::setw(55) << left << "Sample 2 Standard Deviation" << "= " << Sd2 << "\n"; + cout << setprecision(5); + cout << setw(55) << left << "Number of Observations (Sample 1)" << "= " << Sn1 << "\n"; + cout << setw(55) << left << "Sample 1 Mean" << "= " << Sm1 << "\n"; + cout << setw(55) << left << "Sample 1 Standard Deviation" << "= " << Sd1 << "\n"; + cout << setw(55) << left << "Number of Observations (Sample 2)" << "= " << Sn2 << "\n"; + cout << setw(55) << left << "Sample 2 Mean" << "= " << Sm2 << "\n"; + cout << setw(55) << left << "Sample 2 Standard Deviation" << "= " << Sd2 << "\n"; // // Now we can calculate and output some stats: // // Degrees of freedom: double v = Sn1 + Sn2 - 2; - cout << boost::detail::setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; + cout << setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; // Pooled variance: double sp = sqrt(((Sn1-1) * Sd1 * Sd1 + (Sn2-1) * Sd2 * Sd2) / v); - cout << boost::detail::setw(55) << left << "Pooled Standard Deviation" << "= " << v << "\n"; + cout << setw(55) << left << "Pooled Standard Deviation" << "= " << v << "\n"; // t-statistic: double t_stat = (Sm1 - Sm2) / (sp * sqrt(1.0 / Sn1 + 1.0 / Sn2)); - cout << boost::detail::setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; + cout << setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; // // Define our distribution, and get the probability: // students_t dist(v); double q = cdf(complement(dist, fabs(t_stat))); - cout << boost::detail::setw(55) << left << "Probability that difference is due to chance" << "= " - << boost::detail::setprecision(3) << scientific << 2 * q << "\n\n"; + cout << setw(55) << left << "Probability that difference is due to chance" << "= " + << setprecision(3) << scientific << 2 * q << "\n\n"; // // Finally print out results of alternative hypothesis: // - cout << boost::detail::setw(55) << left << + cout << setw(55) << left << "Results for Alternative Hypothesis and alpha" << "= " - << boost::detail::setprecision(4) << fixed << alpha << "\n\n"; + << setprecision(4) << fixed << alpha << "\n\n"; cout << "Alternative Hypothesis Conclusion\n"; cout << "Sample 1 Mean != Sample 2 Mean " ; if(q < alpha / 2) @@ -115,7 +114,7 @@ void two_samples_t_test_unequal_sd( // that any difference is due to chance. // See http://www.itl.nist.gov/div898/handbook/eda/section3/eda353.htm // - //using namespace std; + using namespace std; using boost::math::students_t; // Print header: @@ -123,13 +122,13 @@ void two_samples_t_test_unequal_sd( "_________________________________________________\n" "Student t test for two samples (unequal variances)\n" "_________________________________________________\n\n"; - cout << boost::detail::setprecision(5); - cout << boost::detail::setw(55) << left << "Number of Observations (Sample 1)" << "= " << Sn1 << "\n"; - cout << boost::detail::setw(55) << left << "Sample 1 Mean" << "= " << Sm1 << "\n"; - cout << boost::detail::setw(55) << left << "Sample 1 Standard Deviation" << "= " << Sd1 << "\n"; - cout << boost::detail::setw(55) << left << "Number of Observations (Sample 2)" << "= " << Sn2 << "\n"; - cout << boost::detail::setw(55) << left << "Sample 2 Mean" << "= " << Sm2 << "\n"; - cout << boost::detail::setw(55) << left << "Sample 2 Standard Deviation" << "= " << Sd2 << "\n"; + cout << setprecision(5); + cout << setw(55) << left << "Number of Observations (Sample 1)" << "= " << Sn1 << "\n"; + cout << setw(55) << left << "Sample 1 Mean" << "= " << Sm1 << "\n"; + cout << setw(55) << left << "Sample 1 Standard Deviation" << "= " << Sd1 << "\n"; + cout << setw(55) << left << "Number of Observations (Sample 2)" << "= " << Sn2 << "\n"; + cout << setw(55) << left << "Sample 2 Mean" << "= " << Sm2 << "\n"; + cout << setw(55) << left << "Sample 2 Standard Deviation" << "= " << Sd2 << "\n"; // // Now we can calculate and output some stats: // @@ -143,23 +142,23 @@ void two_samples_t_test_unequal_sd( t2 *= t2; t2 /= (Sn2 - 1); v /= (t1 + t2); - cout << boost::detail::setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; + cout << setw(55) << left << "Degrees of Freedom" << "= " << v << "\n"; // t-statistic: double t_stat = (Sm1 - Sm2) / sqrt(Sd1 * Sd1 / Sn1 + Sd2 * Sd2 / Sn2); - cout << boost::detail::setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; + cout << setw(55) << left << "T Statistic" << "= " << t_stat << "\n"; // // Define our distribution, and get the probability: // students_t dist(v); double q = cdf(complement(dist, fabs(t_stat))); - cout << boost::detail::setw(55) << left << "Probability that difference is due to chance" << "= " - << boost::detail::setprecision(3) << scientific << 2 * q << "\n\n"; + cout << setw(55) << left << "Probability that difference is due to chance" << "= " + << setprecision(3) << scientific << 2 * q << "\n\n"; // // Finally print out results of alternative hypothesis: // - cout << boost::detail::setw(55) << left << + cout << setw(55) << left << "Results for Alternative Hypothesis and alpha" << "= " - << boost::detail::setprecision(4) << fixed << alpha << "\n\n"; + << setprecision(4) << fixed << alpha << "\n\n"; cout << "Alternative Hypothesis Conclusion\n"; cout << "Sample 1 Mean != Sample 2 Mean " ; if(q < alpha / 2) diff --git a/include/boost/math/policies/error_handling.hpp b/include/boost/math/policies/error_handling.hpp index c3d320608..198cd020b 100644 --- a/include/boost/math/policies/error_handling.hpp +++ b/include/boost/math/policies/error_handling.hpp @@ -9,7 +9,7 @@ #define BOOST_MATH_POLICY_ERROR_HANDLING_HPP #include -#include +#include #include #include #include @@ -108,7 +108,7 @@ void raise_error(const char* function, const char* message, const T& val) msg += message; int prec = 2 + (boost::math::policies::digits >() * 30103UL) / 100000UL; - msg = do_format(boost::format(msg), boost::io::group(boost::detail::setprecision(prec), val)); + msg = do_format(boost::format(msg), boost::io::group(std::setprecision(prec), val)); E e(msg); boost::throw_exception(e); diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index 291602326..5d414259b 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -51,7 +51,7 @@ #ifdef BOOST_MATH_INSTRUMENT #include -#include +#include #include #endif diff --git a/include/boost/math/tools/config.hpp b/include/boost/math/tools/config.hpp index 3199d7966..e2429133f 100644 --- a/include/boost/math/tools/config.hpp +++ b/include/boost/math/tools/config.hpp @@ -289,7 +289,7 @@ inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d) #ifdef BOOST_MATH_INSTRUMENT #define BOOST_MATH_INSTRUMENT_CODE(x) \ - std::cout << boost::detail::setprecision(35) << __FILE__ << ":" << __LINE__ << " " << x << std::endl; + std::cout << std::setprecision(35) << __FILE__ << ":" << __LINE__ << " " << x << std::endl; #define BOOST_MATH_INSTRUMENT_VARIABLE(name) BOOST_MATH_INSTRUMENT_CODE(BOOST_STRINGIZE(name) << " = " << name) #else #define BOOST_MATH_INSTRUMENT_CODE(x) diff --git a/include/boost/math/tools/precision.hpp b/include/boost/math/tools/precision.hpp index 4920a5f07..e7695e92a 100644 --- a/include/boost/math/tools/precision.hpp +++ b/include/boost/math/tools/precision.hpp @@ -19,7 +19,7 @@ #include #include -#include +#include // These two are for LDBL_MAN_DIG: #include #include diff --git a/include/boost/math/tools/test.hpp b/include/boost/math/tools/test.hpp index 2f319e301..c54e82727 100644 --- a/include/boost/math/tools/test.hpp +++ b/include/boost/math/tools/test.hpp @@ -156,7 +156,7 @@ void set_output_precision(T) { if(std::numeric_limits::digits10) { - std::cout << boost::detail::setprecision(std::numeric_limits::digits10 + 2); + std::cout << std::setprecision(std::numeric_limits::digits10 + 2); } } diff --git a/minimax/Jamfile.v2 b/minimax/Jamfile.v2 index 969bc5ea9..212ff5952 100644 --- a/minimax/Jamfile.v2 +++ b/minimax/Jamfile.v2 @@ -14,8 +14,6 @@ local ntl-path = [ modules.peek : NTL_PATH ] ; project : requirements - pathscale:-Wno-missing-braces - clang:-Wno-missing-braces gcc:-Wno-missing-braces darwin:-Wno-missing-braces acc:+W2068,2461,2236,4070,4069 diff --git a/minimax/main.cpp b/minimax/main.cpp index e00bd0dfe..ca7a5071e 100644 --- a/minimax/main.cpp +++ b/minimax/main.cpp @@ -18,7 +18,7 @@ using boost::math::ntl::pow; #include #include #include -#include +#include #include #include // for test_main @@ -88,7 +88,7 @@ void step_some(unsigned count) rel_error, skew, working_precision)); - std::cout << "Max error in interpolated form: " << boost::detail::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->max_error()) << std::endl; + std::cout << "Max error in interpolated form: " << std::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->max_error()) << std::endl; // // Signal that we've started: // @@ -102,9 +102,9 @@ void step_some(unsigned count) boost::math::ntl::RR r = p_remez->iterate(); NTL::RR::SetOutputPrecision(3); std::cout - << "Maximum Deviation Found: " << boost::detail::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->max_error()) << std::endl - << "Expected Error Term: " << boost::detail::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->error_term()) << std::endl - << "Maximum Relative Change in Control Points: " << boost::detail::setprecision(3) << std::scientific << boost::math::tools::real_cast(r) << std::endl; + << "Maximum Deviation Found: " << std::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->max_error()) << std::endl + << "Expected Error Term: " << std::setprecision(3) << std::scientific << boost::math::tools::real_cast(p_remez->error_term()) << std::endl + << "Maximum Relative Change in Control Points: " << std::setprecision(3) << std::scientific << boost::math::tools::real_cast(r) << std::endl; } } catch(const std::exception& e) @@ -128,7 +128,7 @@ void show(const char*, const char*) std::vector cn = n.chebyshev(); std::vector cd = d.chebyshev(); int prec = 2 + (target_precision * 3010LL)/10000; - std::cout << std::scientific << boost::detail::setprecision(prec); + std::cout << std::scientific << std::setprecision(prec); NTL::RR::SetOutputPrecision(prec); boost::numeric::ublas::vector v = p_remez->zero_points(); @@ -196,12 +196,12 @@ void do_graph(unsigned points) while(points > 1) { NTL::RR::SetOutputPrecision(10); - std::cout << boost::detail::setprecision(10) << boost::detail::setw(30) << std::left + std::cout << std::setprecision(10) << std::setw(30) << std::left << boost::lexical_cast(x) << the_function(x) << std::endl; --points; x += step; } - std::cout << boost::detail::setprecision(10) << boost::detail::setw(30) << std::left + std::cout << std::setprecision(10) << std::setw(30) << std::left << boost::lexical_cast(b) << the_function(b) << std::endl; } @@ -277,8 +277,8 @@ void do_test(T, const char* name) max_error = err; if(cheb_err > cheb_max_error) cheb_max_error = cheb_err; - std::cout << boost::detail::setprecision(6) << boost::detail::setw(15) << std::left << absissa - << boost::detail::setw(15) << std::left << boost::math::tools::real_cast(err) << boost::math::tools::real_cast(cheb_err) << std::endl; + std::cout << std::setprecision(6) << std::setw(15) << std::left << absissa + << std::setw(15) << std::left << boost::math::tools::real_cast(err) << boost::math::tools::real_cast(cheb_err) << std::endl; } // // Do the tests at the Chebeshev control points: @@ -302,15 +302,15 @@ void do_test(T, const char* name) } if(err > max_error) max_error = err; - std::cout << boost::detail::setprecision(6) << boost::detail::setw(15) << std::left << absissa - << boost::detail::setw(15) << std::left << boost::math::tools::real_cast(err) << + std::cout << std::setprecision(6) << std::setw(15) << std::left << absissa + << std::setw(15) << std::left << boost::math::tools::real_cast(err) << boost::math::tools::real_cast(cheb_err) << std::endl; } std::string msg = "Max Error found at "; msg += name; msg += " precision = "; msg.append(62 - 17 - msg.size(), ' '); - std::cout << msg << boost::detail::setprecision(6) << "Poly: " << boost::detail::setw(20) << std::left + std::cout << msg << std::setprecision(6) << "Poly: " << std::setw(20) << std::left << boost::math::tools::real_cast(max_error) << "Cheb: " << boost::math::tools::real_cast(cheb_max_error) << std::endl; } else @@ -401,8 +401,8 @@ void do_test_n(T, const char* name, unsigned count) max_error = err; if(cheb_err > max_cheb_error) max_cheb_error = cheb_err; - std::cout << boost::detail::setprecision(6) << boost::detail::setw(15) << std::left << boost::math::tools::real_cast(absissa) - << (test_result < true_result ? "-" : "") << boost::detail::setw(20) << std::left + std::cout << std::setprecision(6) << std::setw(15) << std::left << boost::math::tools::real_cast(absissa) + << (test_result < true_result ? "-" : "") << std::setw(20) << std::left << boost::math::tools::real_cast(err) << boost::math::tools::real_cast(cheb_err) << std::endl; } @@ -410,8 +410,8 @@ void do_test_n(T, const char* name, unsigned count) msg += name; msg += " precision = "; //msg.append(62 - 17 - msg.size(), ' '); - std::cout << msg << "Poly: " << boost::detail::setprecision(6) - //<< boost::detail::setw(15) << std::left + std::cout << msg << "Poly: " << std::setprecision(6) + //<< std::setw(15) << std::left << boost::math::tools::real_cast(max_error) << " Cheb: " << boost::math::tools::real_cast(max_cheb_error) << std::endl; } diff --git a/octonion/octonion_test.cpp b/octonion/octonion_test.cpp index 09d22a49b..848e4de38 100644 --- a/octonion/octonion_test.cpp +++ b/octonion/octonion_test.cpp @@ -6,7 +6,7 @@ // http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include diff --git a/performance/main.cpp b/performance/main.cpp index 7c1801ab5..6052c4e27 100644 --- a/performance/main.cpp +++ b/performance/main.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include @@ -77,24 +77,20 @@ void run_tests() name = "msvc-"; #elif defined(BOOST_MSVC) && defined(_DEBUG) && !defined(__ICL) name = "msvc-debug-"; -#elif defined(BOOST_CLANG) - name = "clang-" -#elif defined(__PATHSCALE__) - name = "pathscale-" +#elif defined(__GNUC__) + name = "gcc-"; #elif defined(__ICL) name = "intel-"; #elif defined(__ICC) name = "intel-linux-"; -#elif defined(__GNUC__) - name = "gcc-"; #endif } name += i->name; set_call_count(1); - std::cout << "Testing " << std::left << boost::detail::setw(50) << name << std::flush; + std::cout << "Testing " << std::left << std::setw(50) << name << std::flush; double time = performance_measure(i->proc) - reference_time; time /= call_count; - std::cout << boost::detail::setprecision(3) << std::scientific << time << std::endl; + std::cout << std::setprecision(3) << std::scientific << time << std::endl; } } diff --git a/quaternion/quaternion_test.cpp b/quaternion/quaternion_test.cpp index 819ea441d..6da75db40 100644 --- a/quaternion/quaternion_test.cpp +++ b/quaternion/quaternion_test.cpp @@ -6,7 +6,7 @@ // http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include diff --git a/special_functions/acosh_test.hpp b/special_functions/acosh_test.hpp index 3a439f767..162f2809a 100644 --- a/special_functions/acosh_test.hpp +++ b/special_functions/acosh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include @@ -70,11 +70,11 @@ void acosh_manual_check() long double xl = static_cast(i-50)/static_cast(5); - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << acosh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << acosh_error_evaluator(xd) - << ::boost::detail::setw(15) + << ::std::setw(15) << acosh_error_evaluator(xl)); } diff --git a/special_functions/asinh_test.hpp b/special_functions/asinh_test.hpp index 9096af1f9..dfe6124dc 100644 --- a/special_functions/asinh_test.hpp +++ b/special_functions/asinh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include @@ -70,11 +70,11 @@ void asinh_manual_check() long double xl = static_cast(i-50)/static_cast(5); - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << asinh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << asinh_error_evaluator(xd) - << ::boost::detail::setw(15) + << ::std::setw(15) << asinh_error_evaluator(xl)); } diff --git a/special_functions/atanh_test.hpp b/special_functions/atanh_test.hpp index 5034ada9d..32cb7310d 100644 --- a/special_functions/atanh_test.hpp +++ b/special_functions/atanh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include //#include @@ -116,11 +116,11 @@ void atanh_manual_check() std::numeric_limits::has_infinity ) { - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << atanh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << atanh_error_evaluator(xd) - << ::boost::detail::setw(15) + << ::std::setw(15) << atanh_error_evaluator(xl)); } else @@ -144,11 +144,11 @@ void atanh_manual_check() } else { - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << atanh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << atanh_error_evaluator(xd) - << ::boost::detail::setw(15) + << ::std::setw(15) << atanh_error_evaluator(xl)); } } diff --git a/special_functions/sinc_test.hpp b/special_functions/sinc_test.hpp index 891b424df..ddd62e506 100644 --- a/special_functions/sinc_test.hpp +++ b/special_functions/sinc_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -66,13 +66,13 @@ void sinc_pi_manual_check() for (int i = 0; i <= 100; i++) { - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50)) - << ::boost::detail::setw(15) + << ::std::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50)) - << ::boost::detail::setw(15) + << ::std::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50))); } diff --git a/special_functions/sinhc_test.hpp b/special_functions/sinhc_test.hpp index 525d89da9..a6ffea936 100644 --- a/special_functions/sinhc_test.hpp +++ b/special_functions/sinhc_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -66,13 +66,13 @@ void sinhc_pi_manual_check() for (int i = 0; i <= 100; i++) { - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50)) - << ::boost::detail::setw(15) + << ::std::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50)) - << ::boost::detail::setw(15) + << ::std::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50))); } diff --git a/special_functions/special_functions_test.cpp b/special_functions/special_functions_test.cpp index e7d0aaf95..62a4b7c0c 100644 --- a/special_functions/special_functions_test.cpp +++ b/special_functions/special_functions_test.cpp @@ -6,7 +6,7 @@ // http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include @@ -121,9 +121,9 @@ boost::unit_test_framework::test_suite * init_unit_test_suite(int, char *[]) BOOST_MESSAGE("epsilon"); - BOOST_MESSAGE( ::boost::detail::setw(15) << numeric_limits::epsilon() - << ::boost::detail::setw(15) << numeric_limits::epsilon() - << ::boost::detail::setw(15) << numeric_limits::epsilon()); + BOOST_MESSAGE( ::std::setw(15) << numeric_limits::epsilon() + << ::std::setw(15) << numeric_limits::epsilon() + << ::std::setw(15) << numeric_limits::epsilon()); BOOST_MESSAGE(" "); diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 3f19f7c5d..d8681804e 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -17,13 +17,7 @@ local ntl-path = [ modules.peek : NTL_PATH ] ; local gmp_path = [ modules.peek : GMP_PATH ] ; project - : requirements - pathscale:-fno-fast-math - pathscale:-fno-unsafe-math-optimizations - pathscale:-mieee-fp - pathscale:-fstrict-overflow - pathscale:-Wno-missing-braces - clang:-Wno-missing-braces + : requirements gcc:-Wno-missing-braces darwin:-Wno-missing-braces acc:+W2068,2461,2236,4070,4069 diff --git a/test/acosh_test.hpp b/test/acosh_test.hpp index 5788f2ac9..fa3f8c6ae 100644 --- a/test/acosh_test.hpp +++ b/test/acosh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include @@ -71,16 +71,16 @@ void acosh_manual_check() static_cast(i-50)/static_cast(5); #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << acosh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << acosh_error_evaluator(xd) - << ::boost::detail::setw(15) + << ::std::setw(15) << acosh_error_evaluator(xl)); #else - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << acosh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << acosh_error_evaluator(xd)); #endif } diff --git a/test/asinh_test.hpp b/test/asinh_test.hpp index 5cecae5f3..0cb4b2315 100644 --- a/test/asinh_test.hpp +++ b/test/asinh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include @@ -71,16 +71,16 @@ void asinh_manual_check() static_cast(i-40)/static_cast(4); #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << asinh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << asinh_error_evaluator(xd) - << ::boost::detail::setw(15) + << ::std::setw(15) << asinh_error_evaluator(xl)); #else - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << asinh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << asinh_error_evaluator(xd)); #endif } diff --git a/test/atanh_test.hpp b/test/atanh_test.hpp index 26cb270a8..32a628e2f 100644 --- a/test/atanh_test.hpp +++ b/test/atanh_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include //#include @@ -117,16 +117,16 @@ void atanh_manual_check() ) { #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << atanh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << atanh_error_evaluator(xd) - << ::boost::detail::setw(15) + << ::std::setw(15) << atanh_error_evaluator(xl)); #else - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << atanh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << atanh_error_evaluator(xd)); #endif } @@ -152,16 +152,16 @@ void atanh_manual_check() else { #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << atanh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << atanh_error_evaluator(xd) - << ::boost::detail::setw(15) + << ::std::setw(15) << atanh_error_evaluator(xl)); #else - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << atanh_error_evaluator(xf) - << ::boost::detail::setw(15) + << ::std::setw(15) << atanh_error_evaluator(xd)); #endif } diff --git a/test/complex_test.cpp b/test/complex_test.cpp index d4b60d8d6..8c619d535 100644 --- a/test/complex_test.cpp +++ b/test/complex_test.cpp @@ -13,7 +13,7 @@ #include #include -#include +#include #include #include @@ -116,7 +116,7 @@ void test_inverse_trig(T) T x, y; - std::cout << boost::detail::setprecision(std::numeric_limits::digits10+2); + std::cout << std::setprecision(std::numeric_limits::digits10+2); for(x = -1; x <= 1; x += interval) { diff --git a/test/handle_test_result.hpp b/test/handle_test_result.hpp index e89cc6958..9f6eb10dd 100644 --- a/test/handle_test_result.hpp +++ b/test/handle_test_result.hpp @@ -11,7 +11,6 @@ #include #include #include -#include #if defined(BOOST_INTEL) # pragma warning(disable:239) @@ -119,7 +118,7 @@ void handle_test_result(const boost::math::tools::test_result& result, { using namespace std; // To aid selection of the right pow. T eps = boost::math::tools::epsilon(); - std::cout << boost::detail::setprecision(4); + std::cout << std::setprecision(4); T max_error_found = (result.max)()/eps; T mean_error_found = result.rms()/eps; @@ -138,11 +137,11 @@ void handle_test_result(const boost::math::tools::test_result& result, << row << "\n { "; if(std::numeric_limits::digits10) { - std::cout << boost::detail::setprecision(std::numeric_limits::digits10 + 2); + std::cout << std::setprecision(std::numeric_limits::digits10 + 2); } else { - std::cout << boost::detail::setprecision(std::numeric_limits::digits10 + 2); + std::cout << std::setprecision(std::numeric_limits::digits10 + 2); } for(unsigned i = 0; i < worst.size(); ++i) { @@ -180,7 +179,7 @@ void print_test_result(const boost::math::tools::test_result& result, { using namespace std; // To aid selection of the right pow. T eps = boost::math::tools::epsilon(); - std::cout << boost::detail::setprecision(4); + std::cout << std::setprecision(4); T max_error_found = (result.max)()/eps; T mean_error_found = result.rms()/eps; diff --git a/test/sinc_test.hpp b/test/sinc_test.hpp index 31ca41296..e2f32c0e6 100644 --- a/test/sinc_test.hpp +++ b/test/sinc_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -67,20 +67,20 @@ void sinc_pi_manual_check() for (int i = 0; i <= 100; i++) { #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50)) - << ::boost::detail::setw(15) + << ::std::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50)) - << ::boost::detail::setw(15) + << ::std::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50))); #else - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50)) - << ::boost::detail::setw(15) + << ::std::setw(15) << sinc_pi(static_cast(i-50)/ static_cast(50))); #endif diff --git a/test/sinhc_test.hpp b/test/sinhc_test.hpp index 3d8e9da98..7b7e62ed5 100644 --- a/test/sinhc_test.hpp +++ b/test/sinhc_test.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -67,20 +67,20 @@ void sinhc_pi_manual_check() for (int i = 0; i <= 100; i++) { #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50)) - << ::boost::detail::setw(15) + << ::std::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50)) - << ::boost::detail::setw(15) + << ::std::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50))); #else - BOOST_MESSAGE( ::boost::detail::setw(15) + BOOST_MESSAGE( ::std::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50)) - << ::boost::detail::setw(15) + << ::std::setw(15) << sinhc_pi(static_cast(i-50)/ static_cast(50))); #endif diff --git a/test/special_functions_test.cpp b/test/special_functions_test.cpp index cfd564285..b6f08edbb 100644 --- a/test/special_functions_test.cpp +++ b/test/special_functions_test.cpp @@ -6,7 +6,7 @@ // http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include @@ -128,9 +128,9 @@ boost::unit_test_framework::test_suite * init_unit_test_suite(int, char *[]) BOOST_MESSAGE("epsilon"); - BOOST_MESSAGE( ::boost::detail::setw(15) << numeric_limits::epsilon() - << ::boost::detail::setw(15) << numeric_limits::epsilon() - << ::boost::detail::setw(15) << numeric_limits::epsilon()); + BOOST_MESSAGE( ::std::setw(15) << numeric_limits::epsilon() + << ::std::setw(15) << numeric_limits::epsilon() + << ::std::setw(15) << numeric_limits::epsilon()); BOOST_MESSAGE(" "); diff --git a/test/test_bernoulli.cpp b/test/test_bernoulli.cpp index 7f72b9ae0..23b0ad4f8 100644 --- a/test/test_bernoulli.cpp +++ b/test/test_bernoulli.cpp @@ -28,8 +28,6 @@ using boost::math::bernoulli_distribution; #include // for test_main #include // for BOOST_CHECK_CLOSE_FRACTION, BOOST_CHECK_EQUAL... -#include -#include #include using std::cout; using std::endl; @@ -38,8 +36,8 @@ using std::right; using std::left; using std::showpoint; using std::showpos; -using boost::detail::setw; -using boost::detail::setprecision; +using std::setw; +using std::setprecision; #include using std::numeric_limits; @@ -59,7 +57,7 @@ void test_spots(RealType) tolerance *= 100; cout << "Tolerance for type " << typeid(RealType).name() << " is " - << boost::detail::setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; + << setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; // Sources of spot test values - calculator, // or Steve Moshier's command interpreter V1.3 100 decimal digit calculator, diff --git a/test/test_dist_overloads.cpp b/test/test_dist_overloads.cpp index 0fca0c2ba..e75d7f0ef 100644 --- a/test/test_dist_overloads.cpp +++ b/test/test_dist_overloads.cpp @@ -15,11 +15,10 @@ #include // Boost.Test #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; template void test_spots(RealType) diff --git a/test/test_exponential_dist.cpp b/test/test_exponential_dist.cpp index 431dbe06c..c11611662 100644 --- a/test/test_exponential_dist.cpp +++ b/test/test_exponential_dist.cpp @@ -15,11 +15,10 @@ #include // Boost.Test #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; template void test_spot(RealType l, RealType x, RealType p, RealType q, RealType tolerance) diff --git a/test/test_extreme_value.cpp b/test/test_extreme_value.cpp index 3fb465470..a1b4f4804 100644 --- a/test/test_extreme_value.cpp +++ b/test/test_extreme_value.cpp @@ -14,11 +14,10 @@ #include // Boost.Test #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; template void test_spot(RealType a, RealType b, RealType x, RealType p, RealType q, RealType tolerance) diff --git a/test/test_find_location.cpp b/test/test_find_location.cpp index 2efcf89e2..3453c35d5 100644 --- a/test/test_find_location.cpp +++ b/test/test_find_location.cpp @@ -32,12 +32,10 @@ #include // for test_main #include // for BOOST_CHECK_CLOSE_FRACTION, BOOST_CHECK_EQUAL... -#include -#include #include using std::cout; using std::endl; using std::fixed; using std::right; using std::left; using std::showpoint; - using std::showpos; using boost::detail::setw; using boost::detail::setprecision; + using std::showpos; using std::setw; using std::setprecision; #include using std::numeric_limits; @@ -57,7 +55,7 @@ void test_spots(RealType) tolerance *= 100; // 100 eps as a fraction. cout << "Tolerance for type " << typeid(RealType).name() << " is " - << boost::detail::setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; + << setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; BOOST_CHECK_THROW( // Probability outside 0 to 1. find_location >( diff --git a/test/test_find_scale.cpp b/test/test_find_scale.cpp index e0f24a9ef..678e2c053 100644 --- a/test/test_find_scale.cpp +++ b/test/test_find_scale.cpp @@ -32,12 +32,10 @@ #include // for test_main #include // for BOOST_CHECK_CLOSE_FRACTION, BOOST_CHECK_EQUAL... -#include -#include #include using std::cout; using std::endl; using std::fixed; using std::right; using std::left; using std::showpoint; - using std::showpos; using boost::detail::setw; using boost::detail::setprecision; + using std::showpos; using std::setw; using std::setprecision; #include using std::numeric_limits; @@ -57,7 +55,7 @@ void test_spots(RealType) tolerance *= 100; // 100 eps as a fraction. cout << "Tolerance for type " << typeid(RealType).name() << " is " - << boost::detail::setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; + << setprecision(3) << tolerance << " (or " << tolerance * 100 << "%)." << endl; BOOST_CHECK_THROW( // Probability outside 0 to 1. find_scale >( diff --git a/test/test_gamma_dist.cpp b/test/test_gamma_dist.cpp index e186884cb..451dc263d 100644 --- a/test/test_gamma_dist.cpp +++ b/test/test_gamma_dist.cpp @@ -25,11 +25,10 @@ using boost::math::gamma_distribution; #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; #include using std::numeric_limits; diff --git a/test/test_geometric.cpp b/test/test_geometric.cpp index ba91cc267..6958b6253 100644 --- a/test/test_geometric.cpp +++ b/test/test_geometric.cpp @@ -38,12 +38,10 @@ using boost::math::geometric; // using typedef for geometric_distribution // for test_main #include // for BOOST_CHECK_CLOSE_FRACTION -#include -#include #include using std::cout; using std::endl; -using boost::detail::setprecision; +using std::setprecision; using std::showpoint; #include using std::numeric_limits; diff --git a/test/test_hypergeometric_dist.cpp b/test/test_hypergeometric_dist.cpp index 8b72370d8..4f3b50e61 100644 --- a/test/test_hypergeometric_dist.cpp +++ b/test/test_hypergeometric_dist.cpp @@ -16,11 +16,10 @@ #include #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; #include #include "functor.hpp" @@ -33,7 +32,7 @@ if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was with data ";\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "x = " << x << ", r = " << r << ", n = " << n\ << ", N = " << N << ", p = " << cp << ", q = " << ccp << std::endl;\ }\ diff --git a/test/test_igamma_inv.cpp b/test/test_igamma_inv.cpp index e2b484de3..74c63c50c 100644 --- a/test/test_igamma_inv.cpp +++ b/test/test_igamma_inv.cpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include "functor.hpp" @@ -197,7 +196,7 @@ void expected_results() if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " , " << data[i][5] << " } " << std::endl;\ }\ diff --git a/test/test_igamma_inva.cpp b/test/test_igamma_inva.cpp index 152aa098a..b6c13366b 100644 --- a/test/test_igamma_inva.cpp +++ b/test/test_igamma_inva.cpp @@ -17,11 +17,9 @@ #include #include #include -#include #include #include "functor.hpp" - #include "handle_test_result.hpp" #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT) @@ -126,7 +124,7 @@ void expected_results() if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " , " << data[i][5] << " } " << std::endl;\ }\ diff --git a/test/test_inverse_gaussian.cpp b/test/test_inverse_gaussian.cpp index cc3a2f327..12b7599bb 100644 --- a/test/test_inverse_gaussian.cpp +++ b/test/test_inverse_gaussian.cpp @@ -26,11 +26,10 @@ using boost::math::inverse_gaussian; #include -#include #include using std::cout; using std::endl; -using boost::detail::setprecision; +using std::setprecision; #include using std::numeric_limits; diff --git a/test/test_laplace.cpp b/test/test_laplace.cpp index 82d32cfd7..3afa1ca2f 100644 --- a/test/test_laplace.cpp +++ b/test/test_laplace.cpp @@ -68,7 +68,7 @@ using boost::math::laplace_distribution; #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; #include using std::numeric_limits; diff --git a/test/test_logistic_dist.cpp b/test/test_logistic_dist.cpp index 63fe32ee2..04d1a47d5 100644 --- a/test/test_logistic_dist.cpp +++ b/test/test_logistic_dist.cpp @@ -15,11 +15,10 @@ #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; template diff --git a/test/test_lognormal.cpp b/test/test_lognormal.cpp index 143864bd0..4726032ef 100644 --- a/test/test_lognormal.cpp +++ b/test/test_lognormal.cpp @@ -16,11 +16,10 @@ using boost::math::lognormal_distribution; #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; #include using std::numeric_limits; #include diff --git a/test/test_long_double_support.cpp b/test/test_long_double_support.cpp index 792eb7eb9..f0fd23bf9 100644 --- a/test/test_long_double_support.cpp +++ b/test/test_long_double_support.cpp @@ -15,10 +15,10 @@ #include #include -#include +#include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; #include #include "functor.hpp" diff --git a/test/test_nc_beta.cpp b/test/test_nc_beta.cpp index 4a043de0b..f87eb658d 100644 --- a/test/test_nc_beta.cpp +++ b/test/test_nc_beta.cpp @@ -35,7 +35,6 @@ #include "handle_test_result.hpp" #include "test_ncbeta_hooks.hpp" -#include #include using std::cout; using std::endl; @@ -49,7 +48,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ @@ -62,7 +61,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ diff --git a/test/test_nc_chi_squared.cpp b/test/test_nc_chi_squared.cpp index 5b71af5aa..59461a39c 100644 --- a/test/test_nc_chi_squared.cpp +++ b/test/test_nc_chi_squared.cpp @@ -32,7 +32,6 @@ #include "handle_test_result.hpp" #include "test_nccs_hooks.hpp" -#include #include using std::cout; using std::endl; @@ -46,7 +45,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ @@ -59,7 +58,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ diff --git a/test/test_nc_f.cpp b/test/test_nc_f.cpp index a632c127e..ffff944c8 100644 --- a/test/test_nc_f.cpp +++ b/test/test_nc_f.cpp @@ -30,7 +30,6 @@ #include "functor.hpp" #include "handle_test_result.hpp" -#include #include using std::cout; using std::endl; @@ -44,7 +43,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ @@ -57,7 +56,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ diff --git a/test/test_nc_t.cpp b/test/test_nc_t.cpp index 563de2578..af7edff6f 100644 --- a/test/test_nc_t.cpp +++ b/test/test_nc_t.cpp @@ -30,7 +30,6 @@ #include "functor.hpp" #include "handle_test_result.hpp" -#include #include using std::cout; using std::endl; @@ -44,7 +43,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ @@ -57,7 +56,7 @@ using std::numeric_limits; if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " } " << std::endl;\ }\ diff --git a/test/test_negative_binomial.cpp b/test/test_negative_binomial.cpp index 2980d0105..984d169a9 100644 --- a/test/test_negative_binomial.cpp +++ b/test/test_negative_binomial.cpp @@ -38,12 +38,10 @@ using boost::math::negative_binomial_distribution; #include // for test_main #include // for BOOST_CHECK_CLOSE -#include -#include #include using std::cout; using std::endl; -using boost::detail::setprecision; +using std::setprecision; using std::showpoint; #include using std::numeric_limits; diff --git a/test/test_normal.cpp b/test/test_normal.cpp index 6154639e0..3dfb943f5 100644 --- a/test/test_normal.cpp +++ b/test/test_normal.cpp @@ -31,11 +31,10 @@ using boost::math::normal_distribution; #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; #include using std::numeric_limits; diff --git a/test/test_pareto.cpp b/test/test_pareto.cpp index 8c5675d98..9ffaba714 100644 --- a/test/test_pareto.cpp +++ b/test/test_pareto.cpp @@ -31,11 +31,10 @@ using boost::math::pareto_distribution; #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; #include using std::numeric_limits; diff --git a/test/test_poisson.cpp b/test/test_poisson.cpp index 09e6e68ce..e4114ece0 100644 --- a/test/test_poisson.cpp +++ b/test/test_poisson.cpp @@ -34,12 +34,10 @@ #include // for (incomplete) gamma. // using boost::math::qamma_Q; -#include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; using std::showpoint; using std::ios; #include @@ -558,7 +556,7 @@ int test_main(int, char* []) { cout << boost::math::gamma_q(i+1, mean); // cdf double diff = boost::math::gamma_q(i+1, mean) - sum; // cdf -sum - cout << boost::detail::setprecision (2) << ' ' << diff; // 0 0 to 4, 1 eps 5 to 9, 10 to 20 2 eps, 21 upwards 3 eps + cout << setprecision (2) << ' ' << diff; // 0 0 to 4, 1 eps 5 to 9, 10 to 20 2 eps, 21 upwards 3 eps } BOOST_CHECK_CLOSE( @@ -566,7 +564,7 @@ int test_main(int, char* []) sum, // of pdfs. 4e-14); // Fails at 2e-14 // This call puts the precision etc back to default 6 !!! - cout << boost::detail::setprecision(17) << showpoint; + cout << setprecision(17) << showpoint; cout << endl; diff --git a/test/test_rayleigh.cpp b/test/test_rayleigh.cpp index 828fa9e18..e9b675a37 100644 --- a/test/test_rayleigh.cpp +++ b/test/test_rayleigh.cpp @@ -19,11 +19,10 @@ #include // Boost.Test #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; template void test_spot(RealType s, RealType x, RealType p, RealType q, RealType tolerance) diff --git a/test/test_real_concept_neg_bin.cpp b/test/test_real_concept_neg_bin.cpp index 1b90a71dd..68ddba6c0 100644 --- a/test/test_real_concept_neg_bin.cpp +++ b/test/test_real_concept_neg_bin.cpp @@ -20,12 +20,10 @@ using boost::math::geometric; // using typedef for geometric_distribution // for some comparisons. -#include -#include #include using std::cout; using std::endl; -using boost::detail::setprecision; +using std::setprecision; using std::showpoint; #include using std::numeric_limits; diff --git a/test/test_roots.cpp b/test/test_roots.cpp index f3959de23..858078c62 100644 --- a/test/test_roots.cpp +++ b/test/test_roots.cpp @@ -13,7 +13,6 @@ #include #include #include -#include #define BOOST_CHECK_CLOSE_EX(a, b, prec, i) \ {\ @@ -22,7 +21,7 @@ if(failures != boost::unit_test::results_collector.results( boost::unit_test::framework::current_test_case().p_id ).p_assertions_failed)\ {\ std::cerr << "Failure was at row " << i << std::endl;\ - std::cerr << boost::detail::setprecision(35); \ + std::cerr << std::setprecision(35); \ std::cerr << "{ " << data[i][0] << " , " << data[i][1] << " , " << data[i][2];\ std::cerr << " , " << data[i][3] << " , " << data[i][4] << " , " << data[i][5] << " } " << std::endl;\ }\ diff --git a/test/test_round.cpp b/test/test_round.cpp index cdd364ef7..6f16b3d1e 100644 --- a/test/test_round.cpp +++ b/test/test_round.cpp @@ -13,7 +13,6 @@ #include #include #include -#include boost::mt19937 rng; @@ -46,13 +45,13 @@ void check_within_half(T a, U u) if(fabs(a-u) > 0.5f) { BOOST_ERROR("Rounded result differed by more than 0.5 from the original"); - std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) + std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) << std::left << a << u << std::endl; } if((fabs(a - u) == 0.5f) && (fabs(static_cast(u)) < fabs(a))) { BOOST_ERROR("Rounded result was towards zero with boost::round"); - std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) + std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) << std::left << a << u << std::endl; } } @@ -73,19 +72,19 @@ void check_trunc_result(T a, U u) if(fabs(a-u) >= 1) { BOOST_ERROR("Rounded result differed by more than 1 from the original"); - std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) + std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) << std::left << a << u << std::endl; } if(abs(a) < safe_abs(u)) { BOOST_ERROR("Truncated result had larger absolute value than the original"); - std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) + std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) << std::left << a << u << std::endl; } if(fabs(static_cast(u)) > fabs(a)) { BOOST_ERROR("Rounded result was away from zero with boost::trunc"); - std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) + std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) << std::left << a << u << std::endl; } } @@ -97,25 +96,25 @@ void check_modf_result(T a, T fract, U ipart) if(fract + ipart != a) { BOOST_ERROR("Fractional and integer results do not add up to the original value"); - std::cerr << "Values were: " << boost::detail::setprecision(35) << " " + std::cerr << "Values were: " << std::setprecision(35) << " " << std::left << a << ipart << " " << fract << std::endl; } if((boost::math::sign(a) != boost::math::sign(fract)) && boost::math::sign(fract)) { BOOST_ERROR("Original and fractional parts have differing signs"); - std::cerr << "Values were: " << boost::detail::setprecision(35) << " " + std::cerr << "Values were: " << std::setprecision(35) << " " << std::left << a << ipart << " " << fract << std::endl; } if((boost::math::sign(a) != boost::math::sign(ipart)) && boost::math::sign(ipart)) { BOOST_ERROR("Original and integer parts have differing signs"); - std::cerr << "Values were: " << boost::detail::setprecision(35) << " " + std::cerr << "Values were: " << std::setprecision(35) << " " << std::left << a << ipart << " " << ipart << std::endl; } if(fabs(a-ipart) >= 1) { BOOST_ERROR("Rounded result differed by more than 1 from the original"); - std::cerr << "Values were: " << boost::detail::setprecision(35) << boost::detail::setw(40) + std::cerr << "Values were: " << std::setprecision(35) << std::setw(40) << std::left << a << ipart << std::endl; } } diff --git a/test/test_sign.cpp b/test/test_sign.cpp index 74022e07a..c60afbdc2 100644 --- a/test/test_sign.cpp +++ b/test/test_sign.cpp @@ -13,11 +13,10 @@ #include #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; template void test_spots(RealType /*T*/, const char* /*type_name*/) diff --git a/test/test_students_t.cpp b/test/test_students_t.cpp index 111f9ff45..b3ac8c709 100644 --- a/test/test_students_t.cpp +++ b/test/test_students_t.cpp @@ -22,11 +22,10 @@ using boost::math::students_t_distribution; #include // for real_concept -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; #include using std::numeric_limits; diff --git a/test/test_toms748_solve.cpp b/test/test_toms748_solve.cpp index 5a0f9d16b..5dc249d15 100644 --- a/test/test_toms748_solve.cpp +++ b/test/test_toms748_solve.cpp @@ -11,7 +11,6 @@ #include #include #include -#include // // Test functor implements the same test cases as used by @@ -164,7 +163,7 @@ void run_test(T a, T b, int id, T p1, T p2) int test_main(int, char* []) { - std::cout << boost::detail::setprecision(18); + std::cout << std::setprecision(18); run_test(3.14/2, 3.14, 1); for(int i = 1; i <= 10; i += 1) @@ -244,7 +243,7 @@ int test_main(int, char* []) BOOST_CHECK(invocations < 3150); - std::cout << boost::detail::setprecision(18); + std::cout << std::setprecision(18); for(int n = 5; n <= 100; n += 10) run_test(sqrt(double(n)), double(n+1), 16, (double)n, 0.4); @@ -262,7 +261,7 @@ int test_main(int, char* []) true, boost::math::tools::eps_tolerance(std::numeric_limits::digits), c); - std::cout << boost::detail::setprecision(18); + std::cout << std::setprecision(18); std::cout << "Function " << 4 << "\n Result={" << r.first << ", " << r.second << "} total calls=" << toms748tester::total_calls() << "\n\n"; toms748tester::reset(); BOOST_CHECK(c < 20); diff --git a/test/test_triangular.cpp b/test/test_triangular.cpp index 802934681..c9e0073ec 100644 --- a/test/test_triangular.cpp +++ b/test/test_triangular.cpp @@ -24,8 +24,6 @@ using boost::math::triangular_distribution; #include #include -#include -#include #include using std::cout; using std::endl; @@ -33,8 +31,8 @@ using std::scientific; using std::fixed; using std::left; using std::right; -using boost::detail::setw; -using boost::detail::setprecision; +using std::setw; +using std::setprecision; using std::showpos; #include using std::numeric_limits; @@ -639,10 +637,10 @@ int test_main(int, char* []) BOOST_CHECK_EQUAL(quantile(complement(*dists[i], 1.)), quantile(*dists[i], 0.)); BOOST_CHECK_CLOSE_FRACTION(quantile(*dists[i], 0.5), quantile(complement(*dist, 0.5)), tol5eps); // OK BOOST_CHECK_CLOSE_FRACTION(quantile(*dists[i], 0.98), quantile(complement(*dist, 1. - 0.98)),tol5eps); - // cout << boost::detail::setprecision(17) << median(*dist) << endl; + // cout << setprecision(17) << median(*dist) << endl; } - cout << showpos << boost::detail::setprecision(2) << endl; + cout << showpos << setprecision(2) << endl; //triangular_distribution& dist = trim12; for (unsigned i = 0; i < sizeof(xs) /sizeof(double); i++) @@ -650,13 +648,13 @@ int test_main(int, char* []) double x = xs[i] * (trim12.upper() - trim12.lower()) + trim12.lower(); double dx = cdf(trim12, x); double cx = cdf(complement(trim12, x)); - //cout << fixed << showpos << boost::detail::setprecision(3) + //cout << fixed << showpos << setprecision(3) // << xs[i] << ", " << x << ", " << pdf(trim12, x) << ", " << dx << ", " << cx << ",, " ; BOOST_CHECK_CLOSE_FRACTION(cx, 1 - dx, tol500eps); // cx == 1 - dx - // << boost::detail::setprecision(2) << scientific << cr - x << ", " // difference x - quan(cdf) - // << boost::detail::setprecision(3) << fixed + // << setprecision(2) << scientific << cr - x << ", " // difference x - quan(cdf) + // << setprecision(3) << fixed // << quantile(trim12, dx) << ", " // << quantile(complement(trim12, 1 - dx)) << ", " // << quantile(complement(trim12, cx)) << ", " diff --git a/test/test_uniform.cpp b/test/test_uniform.cpp index 72d7aeb93..b70cc9a58 100644 --- a/test/test_uniform.cpp +++ b/test/test_uniform.cpp @@ -23,11 +23,10 @@ using boost::math::uniform_distribution; #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; #include using std::numeric_limits; diff --git a/test/test_weibull.cpp b/test/test_weibull.cpp index 6a491c910..3c4338a59 100644 --- a/test/test_weibull.cpp +++ b/test/test_weibull.cpp @@ -16,11 +16,10 @@ using boost::math::weibull_distribution; #include -#include #include using std::cout; using std::endl; - using boost::detail::setprecision; + using std::setprecision; #include using std::numeric_limits; diff --git a/tools/Jamfile.v2 b/tools/Jamfile.v2 index 6ec424258..0f8836e24 100644 --- a/tools/Jamfile.v2 +++ b/tools/Jamfile.v2 @@ -14,8 +14,6 @@ local ntl-path = [ modules.peek : NTL_PATH ] ; project : requirements - pathscale:-Wno-missing-braces - clang:-Wno-missing-braces gcc:-Wno-missing-braces darwin:-Wno-missing-braces acc:+W2068,2461,2236,4070,4069 diff --git a/tools/bessel_data.cpp b/tools/bessel_data.cpp index a947ca9b1..d3dfb3d8e 100644 --- a/tools/bessel_data.cpp +++ b/tools/bessel_data.cpp @@ -263,7 +263,7 @@ enum int main(int argc, char* argv[]) { - std::cout << boost::detail::setprecision(17) << std::scientific; + std::cout << std::setprecision(17) << std::scientific; std::cout << sph_bessel_j_bare(0., 0.1185395751953125e4) << std::endl; std::cout << sph_bessel_j_bare(22., 0.6540834903717041015625) << std::endl; diff --git a/tools/generate_rational_code.cpp b/tools/generate_rational_code.cpp index 76dc784c7..090175f84 100644 --- a/tools/generate_rational_code.cpp +++ b/tools/generate_rational_code.cpp @@ -4,7 +4,7 @@ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #include -#include +#include #include #include #include diff --git a/tools/generate_test_values.cpp b/tools/generate_test_values.cpp index 1d8e749e1..78f16df33 100644 --- a/tools/generate_test_values.cpp +++ b/tools/generate_test_values.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include int main() { diff --git a/tools/igamma_temme_large_coef.cpp b/tools/igamma_temme_large_coef.cpp index e73aeab31..d84663890 100644 --- a/tools/igamma_temme_large_coef.cpp +++ b/tools/igamma_temme_large_coef.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include using namespace std; using namespace NTL; diff --git a/tools/lanczos_generator.cpp b/tools/lanczos_generator.cpp index 85708c1ed..f5bf59b63 100644 --- a/tools/lanczos_generator.cpp +++ b/tools/lanczos_generator.cpp @@ -27,7 +27,7 @@ #include #include -#include +#include #include using boost::numeric::ublas::matrix; From 9c310af15e1b55b831f13567d77f58ff15a6c920 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Wed, 19 Jan 2011 12:18:35 +0000 Subject: [PATCH 05/82] Get the PDF file name correct. [SVN r68281] --- doc/sf_and_dist/Jamfile.v2 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/sf_and_dist/Jamfile.v2 b/doc/sf_and_dist/Jamfile.v2 index d8fdf4e19..5de8e1a31 100644 --- a/doc/sf_and_dist/Jamfile.v2 +++ b/doc/sf_and_dist/Jamfile.v2 @@ -85,5 +85,6 @@ boostbook standalone pdf:boost.url.prefix=http://www.boost.org/doc/libs/release/libs/math/doc/sf_and_dist/html ; -install pdf-install : standalone : . PDF ; +install pdf-install : standalone : . PDF math.pdf ; + From 3c169bafbe9e1d19fdd07b5a22c59f35a511812d Mon Sep 17 00:00:00 2001 From: John Maddock Date: Wed, 19 Jan 2011 12:57:00 +0000 Subject: [PATCH 06/82] Add needed PDF build property. [SVN r68285] --- doc/sf_and_dist/Jamfile.v2 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/sf_and_dist/Jamfile.v2 b/doc/sf_and_dist/Jamfile.v2 index 5de8e1a31..930ee159c 100644 --- a/doc/sf_and_dist/Jamfile.v2 +++ b/doc/sf_and_dist/Jamfile.v2 @@ -18,7 +18,8 @@ if --enable-index in [ modules.peek : ARGV ] html:on index.idx ../../../.. - enable_index ; + enable_index + pdf:index.on.type=1 ; } else { @@ -88,3 +89,4 @@ boostbook standalone install pdf-install : standalone : . PDF math.pdf ; + From 9635919e5419ac91db9cb65c613910617c66bb8b Mon Sep 17 00:00:00 2001 From: John Maddock Date: Wed, 19 Jan 2011 15:05:18 +0000 Subject: [PATCH 07/82] Fix for IMB C++ on Linux. Fixes #5090. [SVN r68290] --- include/boost/math/tr1.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/boost/math/tr1.hpp b/include/boost/math/tr1.hpp index 684011197..26730f3ba 100644 --- a/include/boost/math/tr1.hpp +++ b/include/boost/math/tr1.hpp @@ -40,7 +40,8 @@ namespace boost{ namespace math{ namespace tr1{ extern "C"{ // Set any throw specifications on the C99 extern "C" functions - these have to be // the same as used in the std lib if any. // -#if defined(__GLIBC__) && defined(__THROW) +#if (defined(__GLIBC__) && defined(__THROW)) \ + || (defined(__IBMCPP__) && defined(__LINUX__) && defined(__THROW)) # define BOOST_MATH_C99_THROW_SPEC __THROW #else # define BOOST_MATH_C99_THROW_SPEC From 9744b02e989216551ae2c1b8ecfcc4aeb5ccfca4 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Fri, 21 Jan 2011 09:42:51 +0000 Subject: [PATCH 08/82] Add more debug/diagnostic info and fix bug that manifests itself on SSE x64 machines only. Fixes #5095 [SVN r68346] --- .../detail/hypergeometric_pdf.hpp | 74 ++++++++++++++++--- 1 file changed, 65 insertions(+), 9 deletions(-) diff --git a/include/boost/math/distributions/detail/hypergeometric_pdf.hpp b/include/boost/math/distributions/detail/hypergeometric_pdf.hpp index 384c3de85..895a2f1c9 100644 --- a/include/boost/math/distributions/detail/hypergeometric_pdf.hpp +++ b/include/boost/math/distributions/detail/hypergeometric_pdf.hpp @@ -16,6 +16,10 @@ #include #include +#ifdef BOOST_MATH_INSTRUMENT +#include +#endif + namespace boost{ namespace math{ namespace detail{ template @@ -49,6 +53,13 @@ T hypergeometric_pdf_lanczos_imp(T /*dummy*/, unsigned x, unsigned r, unsigned n { BOOST_MATH_STD_USING + BOOST_MATH_INSTRUMENT_FPU + BOOST_MATH_INSTRUMENT_VARIABLE(x); + BOOST_MATH_INSTRUMENT_VARIABLE(r); + BOOST_MATH_INSTRUMENT_VARIABLE(n); + BOOST_MATH_INSTRUMENT_VARIABLE(N); + BOOST_MATH_INSTRUMENT_VARIABLE(typeid(Lanczos).name()); + T bases[9] = { T(n) + Lanczos::g() + 0.5f, T(r) + Lanczos::g() + 0.5f, @@ -61,15 +72,15 @@ T hypergeometric_pdf_lanczos_imp(T /*dummy*/, unsigned x, unsigned r, unsigned n 1 / (T(N - n - r + x) + Lanczos::g() + 0.5f) }; T exponents[9] = { - n + 0.5f, - r + 0.5f, - N - n + 0.5f, - N - r + 0.5f, - N + 0.5f, - x + 0.5f, - n - x + 0.5f, - r - x + 0.5f, - N - n - r + x + 0.5f + n + T(0.5f), + r + T(0.5f), + N - n + T(0.5f), + N - r + T(0.5f), + N + T(0.5f), + x + T(0.5f), + n - x + T(0.5f), + r - x + T(0.5f), + N - n - r + x + T(0.5f) }; int base_e_factors[9] = { -1, -1, -1, -1, 1, 1, 1, 1, 1 @@ -77,7 +88,29 @@ T hypergeometric_pdf_lanczos_imp(T /*dummy*/, unsigned x, unsigned r, unsigned n int sorted_indexes[9] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; +#ifdef BOOST_MATH_INSTRUMENT + BOOST_MATH_INSTRUMENT_FPU + for(unsigned i = 0; i < 9; ++i) + { + BOOST_MATH_INSTRUMENT_VARIABLE(i); + BOOST_MATH_INSTRUMENT_VARIABLE(bases[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(exponents[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(base_e_factors[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(sorted_indexes[i]); + } +#endif std::sort(sorted_indexes, sorted_indexes + 9, sort_functor(exponents)); +#ifdef BOOST_MATH_INSTRUMENT + BOOST_MATH_INSTRUMENT_FPU + for(unsigned i = 0; i < 9; ++i) + { + BOOST_MATH_INSTRUMENT_VARIABLE(i); + BOOST_MATH_INSTRUMENT_VARIABLE(bases[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(exponents[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(base_e_factors[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(sorted_indexes[i]); + } +#endif do{ exponents[sorted_indexes[0]] -= exponents[sorted_indexes[1]]; @@ -88,6 +121,17 @@ T hypergeometric_pdf_lanczos_imp(T /*dummy*/, unsigned x, unsigned r, unsigned n } base_e_factors[sorted_indexes[1]] += base_e_factors[sorted_indexes[0]]; bubble_down_one(sorted_indexes, sorted_indexes + 9, sort_functor(exponents)); + +#ifdef BOOST_MATH_INSTRUMENT + for(unsigned i = 0; i < 9; ++i) + { + BOOST_MATH_INSTRUMENT_VARIABLE(i); + BOOST_MATH_INSTRUMENT_VARIABLE(bases[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(exponents[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(base_e_factors[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(sorted_indexes[i]); + } +#endif }while(exponents[sorted_indexes[1]] > 1); // @@ -106,6 +150,18 @@ T hypergeometric_pdf_lanczos_imp(T /*dummy*/, unsigned x, unsigned r, unsigned n --j; } --j; + +#ifdef BOOST_MATH_INSTRUMENT + BOOST_MATH_INSTRUMENT_VARIABLE(j); + for(unsigned i = 0; i < 9; ++i) + { + BOOST_MATH_INSTRUMENT_VARIABLE(i); + BOOST_MATH_INSTRUMENT_VARIABLE(bases[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(exponents[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(base_e_factors[i]); + BOOST_MATH_INSTRUMENT_VARIABLE(sorted_indexes[i]); + } +#endif } #ifdef BOOST_MATH_INSTRUMENT From fb50b7d18fb112e5a242b39762fafa858c0fc639 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Fri, 21 Jan 2011 12:03:47 +0000 Subject: [PATCH 09/82] Added note about fixed bug. Refs #5095. [SVN r68347] --- doc/sf_and_dist/roadmap.qbk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/sf_and_dist/roadmap.qbk b/doc/sf_and_dist/roadmap.qbk index 0a452ce50..0e6b6ee96 100644 --- a/doc/sf_and_dist/roadmap.qbk +++ b/doc/sf_and_dist/roadmap.qbk @@ -1,5 +1,9 @@ [template history[] +[h4 Boost-1.47.0] + +* Fixed issues [@https://svn.boost.org/trac/boost/ticket/5095 #5095]. + [h4 Boost-1.46.0] * Added Wald, Inverse Gaussian and geometric distributions. From 91471146f1f1a196e1b8bc25101788d8dcfee29b Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 24 Jan 2011 19:04:24 +0000 Subject: [PATCH 10/82] Fix acosh bug, and update tests and docs accordingly. Fixes #5113. [SVN r68421] --- doc/sf_and_dist/equations/acosh2.svg | 2 +- doc/sf_and_dist/equations/acosh4.mml | 6 +- doc/sf_and_dist/equations/acosh4.png | Bin 6077 -> 5898 bytes doc/sf_and_dist/equations/acosh4.svg | 2 +- doc/sf_and_dist/html/index.html | 4 +- doc/sf_and_dist/html/index/s12.html | 2 +- doc/sf_and_dist/html/index/s13.html | 2 +- doc/sf_and_dist/html/index/s14.html | 2 +- doc/sf_and_dist/html/index/s15.html | 2 +- doc/sf_and_dist/html/index/s16.html | 2 +- .../backgrounders/implementation.html | 30 +++++----- .../math_toolkit/backgrounders/lanczos.html | 10 ++-- .../html/math_toolkit/backgrounders/refs.html | 29 +++++++--- .../backgrounders/relative_error.html | 2 +- .../math_toolkit/backgrounders/remez.html | 16 +++--- .../dist/dist_ref/dist_algorithms.html | 6 +- .../dist/dist_ref/dists/bernoulli_dist.html | 10 ++-- .../dist/dist_ref/dists/beta_dist.html | 20 +++---- .../dist/dist_ref/dists/binomial_dist.html | 24 ++++---- .../dist/dist_ref/dists/cauchy_dist.html | 10 ++-- .../dist/dist_ref/dists/chi_squared_dist.html | 12 ++-- .../dist/dist_ref/dists/exp_dist.html | 10 ++-- .../dist/dist_ref/dists/extreme_dist.html | 8 +-- .../dist/dist_ref/dists/f_dist.html | 10 ++-- .../dist/dist_ref/dists/gamma_dist.html | 8 +-- .../dist/dist_ref/dists/geometric_dist.html | 22 +++---- .../dist_ref/dists/hypergeometric_dist.html | 10 ++-- .../dists/inverse_chi_squared_dist.html | 10 ++-- .../dist_ref/dists/inverse_gamma_dist.html | 8 +-- .../dist_ref/dists/inverse_gaussian_dist.html | 10 ++-- .../dist/dist_ref/dists/laplace_dist.html | 10 ++-- .../dist/dist_ref/dists/logistic_dist.html | 8 +-- .../dist/dist_ref/dists/lognormal_dist.html | 8 +-- .../dist/dist_ref/dists/nc_beta_dist.html | 10 ++-- .../dist_ref/dists/nc_chi_squared_dist.html | 12 ++-- .../dist/dist_ref/dists/nc_f_dist.html | 10 ++-- .../dist/dist_ref/dists/nc_t_dist.html | 10 ++-- .../dists/negative_binomial_dist.html | 22 +++---- .../dist/dist_ref/dists/normal_dist.html | 8 +-- .../dist/dist_ref/dists/pareto.html | 12 ++-- .../dist/dist_ref/dists/poisson_dist.html | 8 +-- .../dist/dist_ref/dists/rayleigh.html | 12 ++-- .../dist/dist_ref/dists/students_t_dist.html | 10 ++-- .../dist/dist_ref/dists/triangular_dist.html | 10 ++-- .../dist/dist_ref/dists/uniform_dist.html | 10 ++-- .../dist/dist_ref/dists/weibull_dist.html | 12 ++-- .../html/math_toolkit/dist/dist_ref/nmp.html | 54 +++++++++--------- .../html/math_toolkit/dist/future.html | 8 +-- .../weg/binom_eg/binomial_quiz_example.html | 4 +- .../stat_tut/weg/cs_eg/chi_sq_intervals.html | 2 +- .../dist/stat_tut/weg/dist_construct_eg.html | 2 +- .../weg/find_eg/find_location_eg.html | 2 +- .../weg/find_eg/find_mean_and_sd_eg.html | 6 +- .../stat_tut/weg/find_eg/find_scale_eg.html | 2 +- .../dist/stat_tut/weg/geometric_eg.html | 8 +-- .../weg/normal_example/normal_misc.html | 14 ++--- .../html/math_toolkit/extern_c/c99.html | 4 +- .../html/math_toolkit/extern_c/tr1.html | 10 ++-- .../html/math_toolkit/extern_c/tr1_ref.html | 6 +- .../math_toolkit/main_overview/building.html | 6 +- .../main_overview/directories.html | 4 +- .../main_overview/error_handling.html | 24 ++++---- .../math_toolkit/main_overview/history1.html | 34 ++++++----- .../math_toolkit/main_overview/intro.html | 6 +- .../main_overview/navigation.html | 2 +- .../html/math_toolkit/main_overview/tr1.html | 10 ++-- .../html/math_toolkit/perf/comparisons.html | 54 +++++++++--------- .../policy/pol_ref/discrete_quant_ref.html | 12 ++-- .../pol_ref/error_handling_policies.html | 14 ++--- .../policy/pol_ref/internal_promotion.html | 2 +- .../policy/pol_ref/policy_defaults.html | 32 +++++------ .../pol_tutorial/understand_dis_quant.html | 2 +- .../math_toolkit/special/bessel/bessel.html | 10 ++-- .../special/bessel/bessel_over.html | 6 +- .../math_toolkit/special/bessel/mbessel.html | 10 ++-- .../special/bessel/sph_bessel.html | 10 ++-- .../math_toolkit/special/ellint/ellint_1.html | 10 ++-- .../math_toolkit/special/ellint/ellint_2.html | 10 ++-- .../math_toolkit/special/ellint/ellint_3.html | 14 ++--- .../special/ellint/ellint_carlson.html | 10 ++-- .../special/ellint/ellint_intro.html | 12 ++-- .../math_toolkit/special/expint/expint_i.html | 14 ++--- .../math_toolkit/special/expint/expint_n.html | 10 ++-- .../special/factorials/sf_binomial.html | 6 +- .../factorials/sf_double_factorial.html | 6 +- .../special/factorials/sf_factorial.html | 10 ++-- .../factorials/sf_falling_factorial.html | 6 +- .../factorials/sf_rising_factorial.html | 6 +- .../math_toolkit/special/inv_hyper/acosh.html | 6 +- .../math_toolkit/special/inv_hyper/asinh.html | 6 +- .../math_toolkit/special/inv_hyper/atanh.html | 6 +- .../math_toolkit/special/powers/cbrt.html | 4 +- .../math_toolkit/special/powers/ct_pow.html | 14 ++--- .../math_toolkit/special/powers/expm1.html | 4 +- .../math_toolkit/special/powers/hypot.html | 2 +- .../math_toolkit/special/powers/log1p.html | 4 +- .../math_toolkit/special/powers/powm1.html | 4 +- .../math_toolkit/special/powers/sqrt1pm1.html | 4 +- .../special/sf_beta/beta_derivative.html | 8 +-- .../special/sf_beta/beta_function.html | 10 ++-- .../special/sf_beta/ibeta_function.html | 10 ++-- .../special/sf_beta/ibeta_inv_function.html | 10 ++-- .../special/sf_erf/error_function.html | 10 ++-- .../special/sf_erf/error_inv.html | 10 ++-- .../special/sf_gamma/digamma.html | 10 ++-- .../special/sf_gamma/gamma_derivatives.html | 8 +-- .../special/sf_gamma/gamma_ratios.html | 8 +-- .../math_toolkit/special/sf_gamma/igamma.html | 12 ++-- .../special/sf_gamma/igamma_inv.html | 10 ++-- .../math_toolkit/special/sf_gamma/lgamma.html | 10 ++-- .../math_toolkit/special/sf_gamma/tgamma.html | 10 ++-- .../math_toolkit/special/sf_poly/hermite.html | 10 ++-- .../special/sf_poly/laguerre.html | 10 ++-- .../special/sf_poly/legendre.html | 10 ++-- .../special/sf_poly/sph_harm.html | 10 ++-- .../html/math_toolkit/special/zetas/zeta.html | 10 ++-- .../html/math_toolkit/status/history1.html | 34 ++++++----- .../html/math_toolkit/status/issues.html | 16 +++--- .../math_toolkit/toolkit/internals1/cf.html | 8 +-- .../toolkit/internals1/constants.html | 4 +- .../toolkit/internals1/minima.html | 6 +- .../toolkit/internals1/rational.html | 6 +- .../toolkit/internals1/roots.html | 12 ++-- .../toolkit/internals1/roots2.html | 12 ++-- .../toolkit/internals1/series_evaluation.html | 6 +- .../toolkit/internals1/tuples.html | 4 +- .../toolkit/internals2/error_test.html | 6 +- .../toolkit/internals2/polynomials.html | 4 +- .../toolkit/internals2/test_data.html | 12 ++-- .../math_toolkit/using_udt/archetypes.html | 8 +-- .../html/math_toolkit/using_udt/concepts.html | 4 +- .../html/math_toolkit/utils/fpclass.html | 4 +- .../utils/next_float/float_advance.html | 4 +- .../utils/next_float/float_distance.html | 4 +- .../utils/next_float/float_next.html | 4 +- .../utils/next_float/float_prior.html | 4 +- .../utils/next_float/nextafter.html | 6 +- .../math_toolkit/utils/sign_functions.html | 4 +- doc/sf_and_dist/roadmap.qbk | 2 +- .../boost/math/special_functions/acosh.hpp | 2 +- test/acosh_test.hpp | 21 +++++++ test/test_inv_hyp.cpp | 34 ++++++++--- 142 files changed, 731 insertions(+), 665 deletions(-) diff --git a/doc/sf_and_dist/equations/acosh2.svg b/doc/sf_and_dist/equations/acosh2.svg index 7bd99ad61..383661b3c 100644 --- a/doc/sf_and_dist/equations/acosh2.svg +++ b/doc/sf_and_dist/equations/acosh2.svg @@ -1,2 +1,2 @@ -acosh(x)≈ln(2x);x>1ε \ No newline at end of file +acosh(x)≈ln(2x);x>1ε \ No newline at end of file diff --git a/doc/sf_and_dist/equations/acosh4.mml b/doc/sf_and_dist/equations/acosh4.mml index 77103f091..22cbd3409 100644 --- a/doc/sf_and_dist/equations/acosh4.mml +++ b/doc/sf_and_dist/equations/acosh4.mml @@ -25,7 +25,7 @@ 1 - + + - y 12 @@ -48,9 +48,9 @@ y = - 1 + x - x + 1 diff --git a/doc/sf_and_dist/equations/acosh4.png b/doc/sf_and_dist/equations/acosh4.png index 395343d4e1c579ea09810ab62539c8765b446c81..6f59fd0b78c2760e5f622cdcacc41e19ba285973 100644 GIT binary patch delta 5876 zcmdn1-=(M68Q|y6%O%Cdz`(%k>ERN@z`*#Kfq_AbgN=cKVY%lfiHV9n^u}D@%9B3W;B`sC6^3#?* z6Np;yEGMIhIcri|XOvc!{(>1lpG|1^`|EKe`?tI0^B>O3oL?P%|NQfsZ+ElTKeT+l zZf{$N^8+aR5H^h7YD%U!9?ZA8$-LsBIJX9tz z-~A+}aB0_!n;#EURh||sJd-2(KqNu!gGvGKhnYPq?lx%pis%Y;KIu6+vr>iISehqB zFVpGXCKnmw+kzEQmu5fwmzA(#Nv!dsd#rO5GyNtX?Qv1E6i9zIG0BHb?^JZh2``ni zdi5nw8r>WAi+0wf{cus5_@5~$T`seI=32HlOm}8)*O@pehuPr@CE~*7}NmsasQH=%oVm}Pf8yyb#muZc**;~?ZN#6oBGny()NCQo59@> zdp4)u*jiX(V!f!n&g3(!w<34DD@|PI+P{ajV~foEgr{#dUY=lTZMu2hB&$1_*SZg# zv2@LUpuY5pSN-%O-+!=eFe|7~`jzBa?A@`ELE^6AN#%(i>B{HMC}(bCk2@9J;bpM7 zF0E|VOk1`+G9edQ(~mQ8pUwIDM4RKH+F?gqvK8?-LFD^2uscymVC z(~Px>>HqZY3bIeO72MrXFCg$OGG6`V${Lrf!|VrY9&A65@W9Uaww|o#rRW3AD*N0Y z}8mD+IJDlBr&gDftSP^ z4mZ3z!05Wjo|nfjSKXS)K4htsSnKNvNRF_RS(iVp=V}s5edrgV1lfp<=l)ba_+<0+ zl+&fJ2fBBB-=-t>ux%wXW{!(vt6bqm+jx4d>UeInTD zGRwpCZQYwQ(es-d@|oV(n{ViGdcL=8N0>GDnaQpd>_0pc7A_J0ET++&5W8Ra-EX^Y zr*u1x>w0ryy(=f(<7;l>%{r+r)M+x6Z~O0!#`(3sys9>Nrixm9zVj{Z`hlbbo()r% zaDNtKJ8-7&i0rl)rI&Taw|Oj>fAlSJ?^e-XQz*~`UvZ&slZ)9xJLWRn+jiWbD`y}OPvG>hdrSsQJH_M*Qxx40hXi&z7 z>0t`Drfe`UCi+7CLH)qYvvn=n{Iahv7(JaW&p8G{D zbJvo7?^pVn>Ynqbf2o+6;@p_5diC>@=rfh`oP2Qy9TmOU4ALHGt_Gr}& z@y5Rm*{=(%!cLyMbEb^JjM43CgkP-TX3qmt6X%!h{VbQ2)_&FczEUbL+qbDDo^v<% z&8-wy&nWaev^~R4b!BRe>x`SMm8UQGoLO_NTzB=|dVO#2(r28TYNEmqtvnDl>D_9h zzbXlEQ-j)mX`EZS4=)vL8q6^xqT3)!cZdO7Uf)r#<_>kYr2K znM>RX6BAH$a-pV=<=owlR;q@bQhipW0WvjB~?&+Q3{EOGDGTc1x zhv9_nA-<*Szg=DYIS1Qq>L*X9?~vOIxjq6Y7l$BtOiZ^E87a z?b_Kh-^?~!HySs-R(%_uye;(XnQE5CDt5=V2W|m(Kh*BJ9Nfguys!KGgQ~~xH1+-G zF{Gy5W?+A8JnL)2@xs@4>s2519PoY5-flFVdGe*+O*6k9NY`R-(=VU0WWU%?J@-di z%i@>Iw?v)~`%yOky?0Q7PLarm`o1OF!WZ8&>6vcURsCzZTERG4{)f^B%{%YE#vR~I z`zH5+`wsi}z8@Nv!p64+e|TwCbS+sf{9Ss}C0X@JUAp!*{p%(FD~7t&-#Jtr>?y8( zXgkBP$8KRK&n><%bNcP49~@^s=T*J3J&IjV*D+w__2{+pmZ|gJxs{Q&xFPdEd)2Mk;ZAbLAMg9Nn=$`^aM#tt zTcrzHm!#dC-gA6wiEd$8?To4V%zbS03^vEAoIMk%b7qbHKl|Sqmn5#9F+28q7Wb*S z+cMIaKV0VKXMV@tH)YF$rcK)q|DLO&di(E`JM53^&+VPZDmV4ZnJ$iny7tU7)K?bN z^FEx=<#I#sfboH659{h34it7;M7KI!@N+&#?7jnnHt>V63;5EMk7kWNC zJRtJm+z0;G!AkZ0riEYMdOV0;c;>dy`Q6OLT}%C+mNFaYie3|sH>)stve)y`&6SEd zDOzW96>AO~J-y4dC#o}N?%(Eeq2N!`79V@RK_cSPfj{aGm|t!#`jNN#kzbP>S84g_ zBby&P-T3Bu>0Rslr@G%Q_w?|nw-vqP{J#1D^BddQf1+)=Z*xD5dtTpU(=T4fTodrs zf&0W2X89N!fq&_Xh0gDjJ5;7O@t^X6qdVBXp9spWnfPUO_=R`&vnH;yHsGJpRlO^Q z)qYjgf6+pxBkGOuYC>{?T$1ANs#{N0hA8=+pYXG^)1tfKq^2StXXRYsckStWN{(OJ zXI#%1p(|*{Te15H|B|Aqtn!ZafB7tUZ>;l}bJjVo+RLU)YrOHx&i>i^ zap~Tr2d=+TaX$LiF7Lx1wa$ag`*_Qbx-4GcC)<9$hWmH>@zxKAA}=idu=20`VcR0p zBL!if3Tuvh;K}_dTEJ?z+m7}9lKaeZhMR*M=Rc}fp8F;0Vba#Ees#PrveRs@#<6bl z+%awQgFUhq?DCvvHHDTxXw2TLbUs{Qjo4D9=m%%kly6M;RM9oxoc~z%;LZbOA^Y+^ zF+Y&-e0#;Hv8i~{7VGn>lP={&bMtw>Dq`EQM0~~FiX8n@>mP$DQ?0&mvT@KZku_HOR0ymlz1=F*fWyMNrOe7CAB=JW0; z+ukl}SUM?AYtl2Dn(r4>jBj)A2r$)=F4=Imp0mR5((cYLlP3vQwbUO_P5l2s{3BmA z+rDM737-peQw_}3V($C0dHvcxb1zelnAM~5vpMm5F8!Cd?`Ifz$yW7K+f=c4wHf;t z?t5VIG}fzF{+^*ttWMJs^RqdY`^4g=Jh+mkw4rV0S*CR?b+e^1WO%0(2~5%{-!;>g z=Z(O&o?EY_1&^Sn<^{2#^N`59YBT=GrbUu)JXnP$1(-THy-zrGy{qph7D zUvGZIo|up}`!QQY>*xK)ADrfVKKmw5jqNkx9raz?l;_A?n#X*GuU>p|qKtvlrHi6Z zb}zcb_IUgE!)q*kPnSN6oN;s2kM8fmq8l%mZMH3x?mPP9+SdK1{)fsoeL2FLTDO?X z&)#^m-Hk0rV5X5M9q(aH>bdF8Ff&3ElaX^&4Ixj$)(#aze6uOItie^hq&n}CpFeRws$TznSo>;jm7T_(=KI{G31a)WmxRn~ zE#IzsEl4`X{vGH4-*E?iM!t7qK5Zv?|KTO|E#=)AlVlk;sHgI5pY_A~jkDz8*cwlj z?^{1#xMtVjfA8G+EPtyB;rTUAe^?3%r*2Bw_WQ?@@9|r5g+heWy*xTKd$ISo=NN+o!MEt@tkBj^z2HKYEO`&p973?ffmc zaNU~_rTZHfzFAcG>O=iawjYuoKBisooFa4mLG#?n9M)O0Lf+-=n6#`aS)_*O!Hz z7Ps5B*dM>Xy6m|7ro$fvzsmi%cclJ7^nt2}uZ}q}*Xc+aU%Swue>haNzIB8CV{Zmy z4zaEsuR?$P`uU-!M(q*r{{u4GH$@Me>G=@*v9Y78rcZy;ebpVRPu#UNexFP^Jf+G^ z!6an;<6~~@W}7eioG4U1YW+FeqqOZug4+S}qF?p@CR}2^SX#(DeWpm}AK~{;mIpoD z+*s{B#a1x?#qG>3uYUaH+N}_G;_>%--xD7ff7oZ98_>wVfw)s(#i_?-=>S!a6OHj-O{$*=Z`M$;d zp=|xnZIkYKx>Pg9?~aq6Z+hnN_NBV~(jV_1ci;6uc|xdj^7pkaa(^@Ow_1zNFMZE; zN8-@3$9#EtVH>thHMxG~8-tj}?cy8ag`&TuCC|?~nzEgWD$ ze=Q&U(4XP>jGJkv$})Fze&~^Uu-)$9_YViZHKv&v94~*)Tk|_-=i!`JC#`?TWpT{= zR*;+UNj7sz{GY}jLVlkbR@^BIIx#mYH0y))(u0pe4oUwoy6RlXEp#I1yQ=Ms8>wXy z?}DG4DO>qjuJ=l1eah$32j!+qe$xUMSrcT4t{i5mL+_B-rp^p z_X|U{K6GC=@TvX5^0QBa>i(3he7I^IVcKodq z-+}9Y<{NLm*jdqBaQ$%Re%4mW?-P`M@*kE}HSH39FVIm(os5 z=KS|&{?WPL?<{P2|Ill~mo+ob9=^_$ZsKrcSyCGF$I_#PPai!y!uPPsY2mxp$K5|%`&yq+&0(G0ep~8}>dH3{JtqFI zdRG7FpV+%&vHaTUm9M;}zdpmL5}TMNZ@4*hs>Oq)EYc6deoj4-oB3oL`}0TXQuo8n z9L=sjdUen5{>;bf59VH3w7IC@wxEZMw)V@D57s|OxWo0=&$xQ>o2}RD9?tsqj6E;) z--J7xV-K%bIPYrEvNJhc??hM6IlR(?rABR^gJ!x}Y-_#V&6&&|RqL1wjs4wUuklzF zdbh&1cm7$^IS&-`JD0>i)Ai0%9?_C1p(ey_MQ zYnQi@eW9MvN)Augy}L_UcU_rPxy0_o-#zy8qc*<{Vd1ZIR-HR(yH4ti_TP>-G(_VH z_D6kiso-B1|8|lR)1u3iAA3CTP`UKAV{YXViOGfP#%nv4uFI9La{reZ zblc`kPO8s$Sn*UKqZ? zd-W7cq0SPeU2A6921$SV`=k48j<#p<=V|IkXFa?%|H1eD4KsU>&()7%s-N@buk7A} z`FE2W`%QgMO;vfC+q^_FtxUII+DzZ+U-r!`J=}l7X77f3x|#E4#&YTkjw zcIVlfMGpOB5_XoG=<#GfL-2K@7u{DTCOob0STg^qE_cIB-eY^YAJh{+(N4 z$F@WK{hrM;v|i3o>+qV8&U?rFx8aX{Ue}@<bP0l+XkK D+@pbV delta 6056 zcmeCu+pDkG8Q|y6%O%Cdz`(%k>ERN@z`*#4fq_AbgN=cK!K3@8+C)X4dT}dH7srr_ zIdA8dPf2y%+P?q3K)XeQ0SA+^GoKc-&=X!u9oCZx3@RKQERF#IjIM!`7y}$!R60}~ z9aKCf$f$S-umlD;q)05%;GgiNy8exo@pAw9#lOG3-M8@f-2An1+wL)SEw0ePD9Ce9D!d9dB=2+wGV&Yt}l0Ww)7Eyv*!l zel<0&U*V(yKq8Rg7veSPbeEnB92rD@NyuEm$*eftxBoA3O8pY#5DB{ z-=9slnajO|PBmfPp-=ds~iWAF3#>Xj>BG`1?N*G!gv za4nBNX-a|I25|$vA0h>#_(k%;`)&E2=dUy7G30I8o7bJYPyWWWZyR6!l$cSL7PsbiqSFlhgx_bU z#ku(U`koJdeJE#7u&&tYjV>2$RW-zrqKI_2!UA7$ul``FK=Rcnp{w~D2_3i&DBImj0M3nk} zEKNy0u={{{)`8hczydZ3zC9m$EbaHnTOuWYzlIoZs6*_Axz7+cx#B zY}AWynpH1sSFBtqS(kOS%6Fb>LuJGM@@j>%3BNrbtUh3SAZk+D+1P!IGbX$}v%7Q2 zRF%0dE-ANTE-gB0we39PJ|CBy+ZN@STpt)VHEWjKaEPNPqv+uzA-3HU@Zv5N));MRqFUQl$ zMqcez_Ac*AJ*2!<)>Upe`fk2&|NH!i)ytNp9SP$8G|R?&+3|^LCzdZe&dR9Lt6u+T z(*0|D6+=JW{j$UB=+~7lN4E9+ZA@;va9{gn;YYe)rT`r2)C^IyRqx_WtN>wLL2LE$ejv2zW-9P?uqOy zH-<^ymaKpHuHj14p6@q%0))3u_W8TZp-PAM_s#m%D(0)j8$V96xyNt*`<$=T z(*DCY4qi6nsREPAZ~k-M&dxkR=jw5W&(tUWZajGBLUH<&NoiBI^e$;`zj5x^*|fSzTip7izUs05+4`nwiL2^b z&CGp?Z}RzOMX+jRT$NoFYr`Fr{5$-voJXH#OV=Ac&v3@ujJt2_+jY=3_;T&>8+FMN z$0q2WdUfZCtiz>h6Iqd{zCR*61a7Q2T5tAj+85yma~B4!g+nLULTg6_IIeg*1j>FOq9!xdakN#R^O8k-* zQ#s4`r}4(oZ#>)f=T=AFF24P5#oN8P{*n*2xpq9z|NE(DyN8(SImH>QhWI z_;Sl8$has%s-k3r`PV55+y9!^-`*{d-qEb~_P}{oKmTLVXTSYsD=<(zv-(ccu7gHj z{s;Igw!B^5uwK}DM{I_`w_<@aPLC}f$gA>f49nTd>>0i6h|b}rB{Mk~|IID?(c^u~ zDV5swk!N3IEYPt#qM$kZGkg7# z93p}L)0G}_%?N$KU?#SiWShgwYED%@Pq$fM^e7nv|=L6SV zSXLkHkbU}Y+kA~L=Ei~!$=(kf6SlLZ_f!k6GYc2fSGoG4%cbva{rji4{xLmVUhTN< z*VO~&Dz%5dT}g_5c~6v+`(nE7Ba`0BMFKk;EGr{8)%Z+UTH69Ohw)m^* z+z#D$yq~fEcHO!Q$7@n*|c*rYdF1KidAK@OJaO`j)nZ|6LnO8^v?tXKLSPtGN0tU;EwdohS9)Wnb$0 z@wRa_kNhM%jx{bBJ$+mL`km6+Sp+lxToCgkZx|h z=L5k**6FwMb%VFpO5V8ft?T77?gnlZ-NfH3L$)za6wN;U#A~zeLbn;L7Ix+rE;pXs zHs4$8RdmBwmE0Mh-`esR0+a6_zie@O21C8f9G2(BE0R6GR{r_kqGQ|CvFGQ8CHlU% zbC$E7WIiCdZS(VLp^2NW`JYc$EUT@4^6HGwksWr{w(~_RBoK%r^YJozo6EZk_nR^rEcSd)#t) zpUZFDJ;#gVQ)=+dUq`wM7gXE(=x{t+vtwU%mF?-Lr_$K#rtUNOx$C>ot%-)rUw z)CwoxX4tX+gL$ikp2jr)HT4;fZ<_u2yYXOpyv%ibPVXm4KZ`_jZ7wb|H2?fP<79>1 zB)k8@w}1Q;!FT|5@{`Oxk)cRqss|F0BvyG*|1l_14a9>r~W! zHaBeD_0w|6M;|6Rb(5~hn@?T-w5;pX?M?0cV)=Hiws1jA^Zl>;UjF{-%Jn&|zB^gM z`9v(U^s-Hz2ac+imNUh%q@A8Rm!rnMdfwX;*VPZXDP>wZ`LbRPU!%R;@15WI!WE}J zFLVx94tvsnVR~_A=%c;^+dGY4lsD{Fm34X2`!BD`v2tGF{j2A^TXya1(NR3&V0~kC z2mhnb+x~|HKL7c}V!^@aPqy`!%T~VMy5wg49hVlv+v~l4iG6%n(;i{SR}rS(VU6>Y^_WN04&i2q{Z;utHwqI7>U39zO zvub9{HkaGeOm;uMv94z_$Ingj8x}5koEvZ4Vz@{9rS=h}HyNJS18tw%d!D(z{^`5> z>hX!kLVh$YDOGvvvW7`twJAI$Wpbu+bL+{M8~Yz@`rEc7z42(hYH#6+%jW7WzgM=r zzHn|^e$EB6BTmU_p2j!z=GmsVr7=hDj`x4_PkL_o-WhVwv#v~7^0?!}%FkZA+AM;0 zT&umR^jp|X;B0}`#uGP!F1>2`nxuTyrsaaYKIa0he-q`z&rGeIc)?5LB+u((hCEF* z78~vgKh6*fch7k(_Ib(iZJhO=fzY@)jQ+?^?w06JjMh@N05&MOA#9Yd3sj<4t8a?IAjknw_jYrzHE%(rhx|dpS z{g_{{a_Vx$%(z1*bZ+xL3HD6e!?0%x=gu!oVG8Fs%GlOT-qQN^wDkTjUYk_pndiP= z=d@z|b)_qBQd5}r6qV~|8YM;;8%p}G@t)H=U*o0IBimaugbwf4%Gp1)Z1r=&-EYh@ zHz-fv!u+A@?W*EGJ<~a+227L8aemOp#W+(k=S=Ga8a?{Gr~l^E%h_`>7!#V_7SGyw@!Q@5 z>64aUiaQ{$5?jwR=Sd^8ov3BU1-07Q7v#Qv+~uWrd^@ALa9QN}Z`q6zlY3VAF`Uzp zba^&!nydKj-A8&KyngAtQ``3bf+h0{5BO##WP3#2{dRg=xhmh^#0>jYK2y#1t!i4L z+8KND?h)~QU1yG0F6ew;!Ek%M^`F(-)z>J>tExSezbThv_lCQJwf@+x16|v^|87;y zb-W=V6Rh!mda;#n#CbtZ*L%)$7KZB1*d+UNPqR$9dqB&6n=XrXyebur(C?e@A0 zxLfzD=(@X4H1W4Gs${ZQ)A{SMYOK?W_i`$A(|^96%$a*BB57geWVSxH8MV`7x2wH3 zxXEH}S2?w3W30_H=~9nb^CRl7#QHw2Tq~SBlclD?faP_&GW(&$U)th-hCJG>l%)6b zV1o1p+oRtSkJS8U*_drtIU)CsuZvM^Q$>8&{>!zTGq=>M9Z@~I)ak)YL!Wa0NaN6` zj+gmgB0MMO{1^NoyHVLb`jU&Myhqq1|K*Ia-W;EGReaA_P1qumsPp}Ah>5yj{SoDA zMRTU@m(7oTk60FcJ1vE~E9DiAME{VL{eUIOwIbi+z#T_sAmEYR?^yHN< z-vb)oM(2DFetf&`;J3(a{9FG9T>Z;?%k;z4FJJOgOGO%;zcJQnXMX*%eczJ3EBOMg zrdGuM7Jl_ZYtxQ*-FyaDEHiC`ZtVB?CZW5bULjHCiiX@D&lZ9C9yRgxj(-Hs>Hl0a z`=Kb;ao6StdygzJd+^tj`URw8%>p{ltbc>i(bsj!)y?u@MoFmrQ zUtMr+!h|iGm&mW^HavED;<5Tp&O&MT2aEhBA1%zN7P0kAzP#*J!6WN><_%p-3MZ9K zH1R*ocFVbb@!g7J=8eu?W-W8oZclvgnUNPYck+h6ZEr8Qm(r3 zLS#il-Eje}U5B;S^{a$&r?>%r>^=Yx-tF<*VIlk^{gLzkf``6!u$9(Lxc7Z$QEGj1C+C9;Y~N!!?%X_feOhh0PfF$MAHQcypPt+@+wXY& z?jwsnuK8j&hkebJWBaywzWZ7My;RN8!L0BS4Dd4 zV&8GKY;#*|vzqKz9S0qi-P2Y(Oiaw145_nNWhw{H4bIOEr>ZiBv8$;yhE zwhwmZ)f{)Pmzq?jYNps6wsJeO>z#h*-1pH%xk?Ws&6o?Cy)Q*+d;Se zspq86GlZ2+U%OQG?DKzF)531eN6Wl#KDTOIGMmGB!&A03XH2GV zXXbc#|D*n%CHI-U!#O@NcO)-w=H$J8swMT+T)%hLT_;lg1)1tAiyr=4-Rb({%~4jL zUH_OiOn84v?AGJmcYW=gT4dfG4Sl`* z(&JMt*-z9v7O%T)Vp~_A)=>Xb=kk{fEgUN4|ZFdw*b$(mU`#{ojKf}MrF+E>r%@WE} zd$#Q_NAsS*sV*5;mYVtOUN>2FtwLtoD&yl!-2%`4HlN#dt$B~rk+^?z-+Gxa>1~b(MyZ}pV_+VjFgqPT(H`c zaOEcJt-U6SW?UXu^yJh{B*b@H%?$AMJ$ACi?RAlO(#(D~x5s@l47d4BHIHokdpuC- z$i~0R-X=#0KC(QgdM?)8N?qXJpYP?>3Zgdt5tiQzYdwX}u5I~vCCR5h$}HYfx>)$y zsZ_T1*Uahl{MQqzId7l8X}3-6k?Gll-#)je_qr+aEsmIQou^Z}u~qb7lbgzt%PSE-$j@o}rL=Xp7rn z-Bh_#$>H^V7D+2tu9SS*qxF6BtcS|30=tB6th`=UI!R8c#^HA+&m`;X@4jqZAm<%X zdOrL2V_C_R`-XRUb@F!4&$4lq-6Ou^`nTo5k<)AvZEu$^+Z5SpaQwQ(A*V$ii#BKp zGCWxuGh3T+_sx5|_pV=4w`|!m@fECN8&|(c=E`R{34Z=9+>(}@rsVtf=eB(9E79{fw5$0AZ40#@G%T_XEpoS>&(Uf# xtw7g$!Hx@)w%AWRzU%6RO{S)%${qiiJFBXVKA&*C$H2hA;OXk;vd$@?2>?sjln diff --git a/doc/sf_and_dist/equations/acosh4.svg b/doc/sf_and_dist/equations/acosh4.svg index bdb6e538c..293bcf48d 100644 --- a/doc/sf_and_dist/equations/acosh4.svg +++ b/doc/sf_and_dist/equations/acosh4.svg @@ -1,2 +1,2 @@ -acosh(x)≈2y(1+y12+3y2160);y=1−x∧y<ε \ No newline at end of file +acosh(x)≈2y(1−y12+3y2160);y=x−1∧y<ε \ No newline at end of file diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html index a011d20d5..2ab46aaa7 100644 --- a/doc/sf_and_dist/html/index.html +++ b/doc/sf_and_dist/html/index.html @@ -53,7 +53,7 @@ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and Thijs van den Berg

-

+

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

@@ -502,7 +502,7 @@

- +

Last revised: January 06, 2011 at 16:44:39 GMT

Last revised: January 24, 2011 at 18:57:01 GMT


diff --git a/doc/sf_and_dist/html/index/s12.html b/doc/sf_and_dist/html/index/s12.html index 2de46b86b..09f22935f 100644 --- a/doc/sf_and_dist/html/index/s12.html +++ b/doc/sf_and_dist/html/index/s12.html @@ -24,7 +24,7 @@

-Function Index

+Function Index

A B C D E F G H I K L M N P Q R S T U V Z

diff --git a/doc/sf_and_dist/html/index/s13.html b/doc/sf_and_dist/html/index/s13.html index 9f80f4e0d..e1ef31851 100644 --- a/doc/sf_and_dist/html/index/s13.html +++ b/doc/sf_and_dist/html/index/s13.html @@ -24,7 +24,7 @@

-Class Index

+Class Index

B C D E F G H I L M N P R S T U W

diff --git a/doc/sf_and_dist/html/index/s14.html b/doc/sf_and_dist/html/index/s14.html index acf74d73c..d3492b27b 100644 --- a/doc/sf_and_dist/html/index/s14.html +++ b/doc/sf_and_dist/html/index/s14.html @@ -24,7 +24,7 @@

-Typedef Index

+Typedef Index

A B C D E F G H I L N O P R S T U V W

diff --git a/doc/sf_and_dist/html/index/s15.html b/doc/sf_and_dist/html/index/s15.html index 717c4480d..1bc808470 100644 --- a/doc/sf_and_dist/html/index/s15.html +++ b/doc/sf_and_dist/html/index/s15.html @@ -24,7 +24,7 @@

-Macro Index

+Macro Index

B F

diff --git a/doc/sf_and_dist/html/index/s16.html b/doc/sf_and_dist/html/index/s16.html index 1ff0f0afd..c0510249c 100644 --- a/doc/sf_and_dist/html/index/s16.html +++ b/doc/sf_and_dist/html/index/s16.html @@ -23,7 +23,7 @@

-Index

+Index

A B C D E F G H I K L M N O P Q R S T U V W Z

diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index 3ac582309..a76c2e19d 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

- + Implemention philosophy
@@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

- + Accuracy and Representation of Test Values
@@ -130,7 +130,7 @@ binary value).

- + Tolerance of Tests
@@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

- + Handling Unsuitable Arguments
@@ -224,7 +224,7 @@

- + Handling of Functions that are Not Mathematically defined
@@ -258,7 +258,7 @@

- + Median of distributions
@@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

- + Handling of Floating-Point Infinity
@@ -337,7 +337,7 @@ handling policies.

- + Scale, Shape and Location
@@ -364,7 +364,7 @@ functions, they can be added if required.

- + Notes on Implementation of Specific Functions & Distributions
@@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
- + Rational Approximations Used
@@ -419,7 +419,7 @@ to the "true" minimax solution.

- + Representation of Mathematical Constants
@@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
- + Thread safety
@@ -505,7 +505,7 @@ the right thing here at some point.

- + Sources of Test Data
@@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

- + Creating and Managing the Equations
@@ -731,7 +731,7 @@ done HTML: this needs further investigation.

- + Producing Graphs
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index 19ad04395..8320a41e7 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
- + Motivation

@@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

- + The Approximation
@@ -161,7 +161,7 @@

- + Computing the Coefficients
@@ -205,7 +205,7 @@ multiplied by F as the last step.

- + Choosing the Right Parameters
@@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index 706b98cf7..8fc5907cd 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
- + General references
@@ -36,16 +36,29 @@ given at the end of each individual section).

- DLMF (NIST Digital Library of Mathematical - Functions) is intended to be a replacement for the legendary Abramowitz - and Stegun's Handbook of Mathematical Functions, now scheduled to be completed - in 2007. + 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.. + D.C. +

+

+ 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.

NIST/SEMATECH @@ -85,7 +98,7 @@ Library (version 2), Walter E. Brown

- + Calculators

@@ -107,7 +120,7 @@ Binomial Probability Distribution Calculator.

- + Other Libraries

diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index a8a4f6d82..45573e002 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

- + The Impossibility of Zero Error
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index 65ad574df..9e634ebaa 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

- + The Remez Method
@@ -174,7 +174,7 @@
- + Remez Step 1
@@ -205,7 +205,7 @@ to 5.6x10-4.

- + Remez Step 2
@@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

- + Iteration

@@ -250,7 +250,7 @@ remez-4

- + Rational Approximations
@@ -299,7 +299,7 @@ number of terms overall.

- + Practical Considerations
@@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

- + Remez Method Checklist
@@ -461,7 +461,7 @@
- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index 0c9fb1fb4..06003cb16 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms

- + Finding the Location and Scale for Normal and similar distributions
@@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
- + find_location function
@@ -80,7 +80,7 @@ }} // namespaces
- + find_scale function
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index 79f3150ff..8f1c28857 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

- + Member Functions
@@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

- + Non-member Accessors
@@ -128,7 +128,7 @@ exception and make an error message available.

- + Accuracy

@@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

- + Implementation

@@ -327,7 +327,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index 681586f32..bf0fe610c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

    - + Member Functions
    - + Constructor
    beta_distribution(RealType alpha, RealType beta);
    @@ -164,7 +164,7 @@
                 yellow in the graph above).
               

    - + Parameter Accessors
    @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
    - + Parameter Estimators
    @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

    - + Non-member Accessor Functions
    @@ -263,7 +263,7 @@ Mathworld.

    - + Applications

    @@ -276,7 +276,7 @@ statistical inference.

    - + Related distributions
    @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

    - + Accuracy

    @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -594,7 +594,7 @@

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index 96c0bf978..00c24e460 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

- + Member Functions
- + Construct
binomial_distribution(RealType n, RealType p);
@@ -183,7 +183,7 @@
             otherwise calls domain_error.
           

- + Accessors
RealType success_fraction() const;
@@ -199,7 +199,7 @@
             was constructed.
           

- + Lower Bound on the Success Fraction
@@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

- + Upper Bound on the Success Fraction
@@ -383,7 +383,7 @@
- + Estimating the Number of Trials Required for a Certain Number of Successes
@@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

- + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

- + Non-member Accessors
@@ -622,7 +622,7 @@
- + Examples

@@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

- + Accuracy

@@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

- + Implementation

@@ -884,7 +884,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index 1fbea57c0..0e366cd40 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

    - + Member Functions
    @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

    - + Non-member Accessors
    @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

    - + Accuracy

    @@ -157,7 +157,7 @@ have very low error rates.

    - + Implementation

    @@ -273,7 +273,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index 4be5c3627..610bcfbb3 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

    - + Member Functions
    @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

    - + Non-member Accessors
    @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

    - + Examples

    @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

    - + Accuracy

    @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

    - + Implementation

    @@ -379,7 +379,7 @@ independent, normally distributed random

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index 02110d542..dde82d0b6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

    - + Member Functions
    @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

    - + Non-member Accessors
    @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

    - + Accuracy

    @@ -122,7 +122,7 @@ should have very low error rates.

    - + Implementation

    @@ -283,7 +283,7 @@

- + references
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index bd85c1af3..b498201d7 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

    - + Member Functions
    @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

    - + Non-member Accessors
    @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

    - + Accuracy

    @@ -154,7 +154,7 @@ very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index 5e8cdd1ec..d36483090 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

    - + Member Functions
    @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

    - + Non-member Accessors
    @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

    - + Examples

    @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

    - + Accuracy

    @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index 6805af40a..0bde415e0 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

    - + Member Functions
    @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

    - + Accuracy

    @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index 68466a4a6..41617b0d8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

    - + Related Distributions
    @@ -206,12 +206,12 @@
- + Member Functions
- + Constructor
geometric_distribution(RealType p);
@@ -226,7 +226,7 @@
             1.
           

- + Accessors
RealType success_fraction() const; // successes / trials (0 <= p <= 1)
@@ -253,7 +253,7 @@
             Binomial Distribution for more discussion.
           

- + Lower Bound on success_fraction Parameter p
@@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

- + Upper Bound on success_fraction Parameter p
@@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

- + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
@@ -415,7 +415,7 @@ probability of observing k failures or fewer.

- + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
@@ -463,7 +463,7 @@ probability of observing more than k failures.

- + Non-member Accessors
@@ -611,7 +611,7 @@
- + Accuracy

@@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index c80c55019..81d2c9cd3 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

- + Member Functions
@@ -131,7 +131,7 @@ from the population N.

- + Non-member Accessors
@@ -185,7 +185,7 @@
- + Accuracy

@@ -211,7 +211,7 @@ meaningless for N >= 1015.

- + Testing

@@ -223,7 +223,7 @@ this implementation and NTL::RR.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index bb1bd0d98..56c53105f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

- + Member Functions
@@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

- + Non-member Accessors
@@ -255,7 +255,7 @@

- + Accuracy

@@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

- + Implementation

@@ -452,7 +452,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index 7bfce2ed2..d88633c72 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

    - + Member Functions
    @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

    - + Non-member Accessors
    @@ -184,7 +184,7 @@

- + Accuracy

@@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index b22776300..cae119365 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -146,7 +146,7 @@ the __wald_distrib (where mean μ is unity) is also provided.

- + Member Functions
@@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

- + Non-member Accessors
@@ -201,7 +201,7 @@

- + Accuracy

@@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

- + Implementation

@@ -390,7 +390,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index 4a1866622..b0a45f113 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

    - + Member Functions
    @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

    - + Accuracy

    @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

    - + Implementation

    @@ -329,7 +329,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index c31b98bda..8a1362ddc 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

    - + Member Functions
    @@ -98,7 +98,7 @@ Returns the scale of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

    - + Accuracy

    @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

    - + Implementation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index ef9c5fff0..de607a94f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index 6fbb3a01e..e9a445440 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

    - + Member Functions
    @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

    - + Non-member Accessors
    @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

    - + Accuracy

    @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

    - + Tests

    @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index a5e41a568..9f73eba32 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

    - + Member Functions
    @@ -183,7 +183,7 @@ == q.

    - + Non-member Accessors
    @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

    - + Examples

    @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

    - + Accuracy

    @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

    - + Tests

    @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index 943e5ecc8..5f8c26b81 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

    - + Member Functions
    @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

    - + Non-member Accessors
    @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

    - + Accuracy

    @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

    - + Tests

    @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index 687db802e..cd1619fe1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

    - + Member Functions
    @@ -111,7 +111,7 @@ which this object was constructed.

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

    - + Accuracy

    @@ -255,7 +255,7 @@ epsilon.

    - + Tests

    @@ -270,7 +270,7 @@ least 50 decimal places.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index 8c5880247..eb29ef746 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

    - + Related Distributions
    @@ -195,12 +195,12 @@
    - + Member Functions
    - + Construct
    negative_binomial_distribution(RealType r, RealType p);
    @@ -216,7 +216,7 @@
                 <= 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -237,7 +237,7 @@
                 Distribution for more discussion.
               

    - + Lower Bound on Parameter p
    @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on Parameter p
    @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -457,7 +457,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -606,7 +606,7 @@

- + Accuracy

@@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index fab9f33ae..d85f9acc9 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

- + Member Functions
@@ -109,7 +109,7 @@ be used generically).

- + Non-member Accessors
@@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

- + Accuracy

@@ -139,7 +139,7 @@ function, and as such should have very low error rates.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index cb66cba01..0b18708ce 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

- + Related distributions
- + Member Functions
@@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

- + Non-member Accessors
@@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

- + Accuracy

@@ -150,7 +150,7 @@ zero) see also why complements?.

- + Implementation

@@ -318,7 +318,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index 46975e26f..ac60ffe74 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
- + Member Functions
@@ -131,7 +131,7 @@ Returns the mean of this distribution.

- + Non-member Accessors
@@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

- + Accuracy

@@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index a72616438..c66130ea7 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

- + Related distributions
@@ -102,7 +102,7 @@ distribution.

- + Member Functions
@@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

- + Non-member Accessors
@@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

- + Accuracy

@@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

- + Implementation

@@ -320,7 +320,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index 6338a2acd..4f81a29f1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

    - + Member Functions
    @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

    - + Non-member Accessors
    @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

    - + Examples

    @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

    - + Accuracy

    @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index 72fa7bbea..042e2ca06 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

    - + Member Functions
    @@ -163,7 +163,7 @@ (default+1).

    - + Non-member Accessors
    @@ -184,7 +184,7 @@ range is lower <= x <= upper.

    - + Accuracy

    @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

    - + Implementation

    @@ -378,7 +378,7 @@ Calculate and plot probability distributions

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index feafa9f09..635432166 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

      - + Member Functions
      @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

      - + Non-member Accessors
      @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

      - + Accuracy

      @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

      - + Implementation

      @@ -337,7 +337,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index 69cedce23..cde570f97 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

      - + Related distributions
      @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

      - + Member Functions
      @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

      - + Accuracy

      @@ -170,7 +170,7 @@ as such should have very low error rates.

      - + Implementation

      @@ -337,7 +337,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index b1d62268c..7d755a1a9 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

      - + Function Index
        @@ -94,7 +94,7 @@
      - + Conceptual Index
        @@ -180,7 +180,7 @@
      - + Cumulative Distribution Function
      template <class RealType, class Policy>
      @@ -203,7 +203,7 @@
                 cdf
               

      - + Complement of the Cumulative Distribution Function
      template <class Distribution, class RealType>
      @@ -243,7 +243,7 @@
                 complement is useful and when it should be used.
               

      - + Hazard Function
      template <class RealType, class Policy>
      @@ -271,7 +271,7 @@
                 

    - + Cumulative Hazard Function
    template <class RealType, class Policy>
    @@ -298,7 +298,7 @@
               

- + mean
template<class RealType, class Policy>
@@ -313,7 +313,7 @@
           distribution).
         

- + median
template<class RealType, class Policy>
@@ -323,7 +323,7 @@
           Returns the median of the distribution dist.
         

- + mode
template<class RealType, Policy>
@@ -337,7 +337,7 @@
           if the distribution does not have a defined mode.
         

- + Probability Density Function
template <class RealType, class Policy>
@@ -365,7 +365,7 @@
           pdf
         

- + Range
template<class RealType, class Policy>
@@ -375,7 +375,7 @@
           Returns the valid range of the random variable over distribution dist.
         

- + Quantile
template <class RealType, class Policy>
@@ -405,7 +405,7 @@
           quantile
         

- + Quantile from the complement of the probability.

@@ -450,7 +450,7 @@ survival_inv

- + Standard Deviation
template <class RealType, class Policy>
@@ -464,7 +464,7 @@
           if the distribution does not have a defined standard deviation.
         

- + support
template<class RealType, class Policy>
@@ -481,7 +481,7 @@
           where the pdf is zero, and the cdf zero or unity.
         

- + Variance
template <class RealType, class Policy>
@@ -495,7 +495,7 @@
           if the distribution does not have a defined variance.
         

- + Skewness
template <class RealType, class Policy>
@@ -509,7 +509,7 @@
           if the distribution does not have a defined skewness.
         

- + Kurtosis
template <class RealType, class Policy>
@@ -551,7 +551,7 @@
           'Proper' kurtosis can have a value from zero to + infinity.
         

- + Kurtosis excess
template <class RealType, Policy>
@@ -585,7 +585,7 @@
           The kurtosis excess of a normal distribution is zero.
         

- + P and Q

@@ -595,7 +595,7 @@ returned by these functions.

- + Percent Point Function or Percentile

@@ -603,7 +603,7 @@ the Quantile.

- + Inverse CDF Function.

@@ -611,14 +611,14 @@ Quantile.

- + Inverse Survival Function.

The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

- + Probability Mass Function

@@ -631,7 +631,7 @@ applies to continuous distributions.

- + Lower Critical Value.

@@ -640,7 +640,7 @@ the Quantile.

- + Upper Critical Value.

@@ -650,7 +650,7 @@ complement of the probability.

- + Survival Function

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index 02c6cf867..ad607bfdc 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

- + Adding Additional Location and Scale Parameters
@@ -55,7 +55,7 @@ functions.

- + An "any_distribution" class
@@ -91,7 +91,7 @@ investigation.

- + Higher Level Hypothesis Tests
@@ -111,7 +111,7 @@ expected_mean.

- + Integration With Statistical Accumulators
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index 1e330a568..147bcec8e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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
- + Using Binomial distribution moments
@@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
- + Quantiles

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index 822113dfe..48a10063b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

- + Confidence intervals as a function of the number of observations
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index 753bdb452..ba03c669d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
 
- + Default arguments to distribution constructors.
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index 5ade28760..42fad58dc 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
- + Controlling Error Handling from find_location
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index 07776b03e..16cd23207 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

- + Using find_location and find_scale to meet dispensing and measurement specifications
@@ -193,7 +193,7 @@

- + Using Cauchy-Lorentz instead of normal distribution
@@ -305,7 +305,7 @@ of estimating these intervals.

- + Changing the scale or standard deviation
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index 1f1e00e0b..ade006274 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
- + Controlling how Errors from find_scale are handled
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index e050d1546..628fea38f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

- + Throwing a dice
@@ -288,7 +288,7 @@ replicated in C++ if desired.

- + Surveying customers to find one with a faulty product
@@ -333,7 +333,7 @@

- + Basket Ball Shooters
@@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

- + Estimating failures
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index 8cef6546e..96fb688e6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

- + Traditional Tables
@@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

- + Standard deviations either side of the Mean
@@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

- + Some simple examples
- + Life of light bulbs
@@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

- + How many onions?
@@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

- + Packing beef
@@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

- + Length of bolts
diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index 37e8d7df8..b0e8e382b 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
- + Supported C99 Functions
@@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
- + Quick Reference

diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index 6d044edf5..bbb06c425 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

- + Usage Recomendations

@@ -295,7 +295,7 @@ this can be a big win.

- + Supported C99 Functions
@@ -391,7 +391,7 @@ }}}} // namespaces
- + Supported TR1 Functions
@@ -520,7 +520,7 @@ type calculation rules
.

- + Currently Unsupported C99 Functions
@@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index a146b740d..03fedad71 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
- + Supported TR1 Functions
@@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
- + Quick Reference
// [5.2.1.1] associated Laguerre polynomials:
@@ -494,7 +494,7 @@
         for the full template (header only) version of this function.
       

- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index d73ca7958..845a8d29a 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
- + Building a Library (shared, dynamic .dll or static .lib)
@@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

- + Building the Examples
@@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

- + Building the Tests
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index d53dd505d..36e7c949f 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
- + boost/math
@@ -73,7 +73,7 @@
- + boost/libs
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index 849543061..25685c4d0 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
- + Quick Reference
@@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

- + Rationale

@@ -766,7 +766,7 @@

- + Finding More Information
@@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

- + Domain Errors

@@ -859,7 +859,7 @@ for more details.

- + Evaluation at a pole

@@ -897,7 +897,7 @@ for more details.

- + Numeric Overflow

@@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

- + Numeric Underflow

@@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

- + Denormalisation Errors

@@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

- + Evaluation Errors

@@ -1001,7 +1001,7 @@ for more details.

- + Indeterminate Result Errors

@@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

- + Rounding Errors

@@ -1068,7 +1068,7 @@ for more details.

- + Errors from typecasts

diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index 9e47dfc2f..8c215be2e 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -27,8 +27,16 @@ History and What's New +

+ + Boost-1.47.0 +
+
- + Boost-1.46.0
    @@ -43,7 +51,7 @@
- + Boost-1.45.0
    @@ -60,7 +68,7 @@
- + Boost-1.44.0
    @@ -74,7 +82,7 @@
- + Boost-1.41.0
  • @@ -82,7 +90,7 @@ and its inverse.
- + Boost-1.40.0
    @@ -119,7 +127,7 @@
- + Boost-1.38.0
    @@ -131,14 +139,14 @@
- + Boost-1.37.0
  • Improved accuracy and testing of the inverse hypergeometric functions.
- + Boost-1.36.0
    @@ -171,7 +179,7 @@
- + Boost-1.35.0: Post Review First Official Release
@@ -203,7 +211,7 @@
- + Milestone 4: Second Review Candidate (1st March 2007)
@@ -217,7 +225,7 @@
- + Milestone 3: First Review Candidate (31st Dec 2006)
@@ -245,7 +253,7 @@
- + Milestone 2: Released September 10th 2006
@@ -281,7 +289,7 @@
- + Milestone 1: Released March 31st 2006
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index 86594b815..e94cb7319 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

- + Statistical Distributions
@@ -56,7 +56,7 @@ tests.

- + Mathematical Special Functions
@@ -83,7 +83,7 @@ double.

- + Implementation Toolkit
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index 37c4ca8a4..cffd610c5 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

- + Shortcuts
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index fa692b6fa..c9757d99d 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

- + Usage Recomendations
@@ -297,7 +297,7 @@ this can be a big win.

- + Supported C99 Functions
@@ -393,7 +393,7 @@ }}}} // namespaces
- + Supported TR1 Functions
@@ -522,7 +522,7 @@ type calculation rules
.

- + Currently Unsupported C99 Functions
@@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index ecce4593a..93795ba87 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

- + Comparison to GSL-1.13 and Cephes
@@ -344,7 +344,7 @@

- +INF [1] + +INF [1]

@@ -423,7 +423,7 @@

-

17.89[2]

+

17.89[2]

(4.248e-005s)

@@ -548,11 +548,11 @@ -

[1] +

[1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

-

[2] +

[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 @@ -563,7 +563,7 @@

- + Comparison to the R and DCDFLIB Statistical Libraries on Windows
@@ -659,7 +659,7 @@

-

67.66[1]

+

67.66[1]

(3.366e-004s)

@@ -1088,7 +1088,7 @@

-

3.60[2]

+

3.60[2]

(5.987e-007s)

@@ -1317,7 +1317,7 @@

-

43.43[3]

+

43.43[3]

(3.732e-004s)

@@ -1387,7 +1387,7 @@

-

393.90[4]

+

393.90[4]

(2.673e-002s)

@@ -1523,7 +1523,7 @@

-

1.00[5]

+

1.00[5]

(4.411e-004s)

@@ -1809,28 +1809,28 @@ -

[1] +

[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.

-

[2] +

[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 much slower, albeit with much improved precision.

-

[3] +

[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

-

[4] +

[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.

-

[5] +

[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. @@ -1839,7 +1839,7 @@


- + Comparison to the R Statistical Library on Linux
@@ -1934,7 +1934,7 @@

-

30.51[1]

+

30.51[1]

(3.616e-004s)

@@ -2363,7 +2363,7 @@

-

2.20[2]

+

2.20[2]

(3.522e-007s)

@@ -2592,7 +2592,7 @@

-

25.92[3]

+

25.92[3]

(4.407e-004s)

@@ -2662,7 +2662,7 @@

-

144.91[4]

+

144.91[4]

(3.214e-002s)

@@ -2798,7 +2798,7 @@

-

1.00[5]

+

1.00[5]

(5.916e-004s)

@@ -3084,28 +3084,28 @@ -

[1] +

[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.

-

[2] +

[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 much slower, albeit with much improved precision.

-

[3] +

[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

-

[4] +

[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.

-

[5] +

[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. diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index 599d09bcb..83af5da74 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

- + real

@@ -89,7 +89,7 @@ = 68.1584.

- + integer_round_outwards

@@ -143,7 +143,7 @@ in each tail.

- + integer_round_inwards

@@ -202,7 +202,7 @@ in each tail.

- + integer_round_down

@@ -210,7 +210,7 @@ or a lower quantile.

- + integer_round_up

@@ -218,7 +218,7 @@ a lower quantile.

- + integer_round_nearest

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index 1918be868..34c02655d 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

- + Available Actions When an Error is Raised
@@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

- + throw_on_error

@@ -174,7 +174,7 @@

- + errno_on_error

@@ -289,7 +289,7 @@

- + ignore_error

@@ -402,7 +402,7 @@

- + user_error

@@ -451,7 +451,7 @@ here.

- + Kinds of Error Raised
@@ -691,7 +691,7 @@
- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index 0f2999a3f..89edd2071 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index 6c91b0f97..73b5a7971 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

- + BOOST_MATH_DOMAIN_ERROR_POLICY

@@ -71,7 +71,7 @@ ignore_error or user_error.

- + BOOST_MATH_POLE_ERROR_POLICY

@@ -81,7 +81,7 @@ ignore_error or user_error.

- + BOOST_MATH_OVERFLOW_ERROR_POLICY

@@ -91,7 +91,7 @@ ignore_error or user_error.

- + BOOST_MATH_ROUNDING_ERROR_POLICY

@@ -101,7 +101,7 @@ ignore_error or user_error.

- + BOOST_MATH_EVALUATION_ERROR_POLICY

@@ -111,7 +111,7 @@ ignore_error or user_error.

- + BOOST_MATH_UNDERFLOW_ERROR_POLICY

@@ -121,7 +121,7 @@ ignore_error or user_error.

- + BOOST_MATH_DENORM_ERROR_POLICY

@@ -131,7 +131,7 @@ ignore_error or user_error.

- + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

@@ -142,7 +142,7 @@ ignore_error or user_error.

- + BOOST_MATH_DIGITS10_POLICY

@@ -153,7 +153,7 @@ recommended that you change this from the default.

- + BOOST_MATH_PROMOTE_FLOAT_POLICY

@@ -165,7 +165,7 @@ off.

- + BOOST_MATH_PROMOTE_DOUBLE_POLICY

@@ -177,7 +177,7 @@ off.

- + BOOST_MATH_DISCRETE_QUANTILE_POLICY

@@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

- + BOOST_MATH_ASSERT_UNDEFINED_POLICY

@@ -201,7 +201,7 @@ whether or not a particular property is well defined.

- + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

@@ -210,7 +210,7 @@ Defaults to 1000000.

- + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

@@ -219,7 +219,7 @@ Defaults to 200.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index 9cc64c3d7..549b486e9 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

- + Other Rounding Policies are Available
diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index 430e4bc56..872619239 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
 
- + Description

@@ -105,7 +105,7 @@

- + Testing

@@ -114,7 +114,7 @@ (with all the special case handling removed).

- + Accuracy

@@ -489,7 +489,7 @@ were found.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index 1abc08178..a49c8ecbe 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

- + Ordinary Bessel Functions
@@ -103,7 +103,7 @@ and is known as either a Bessel

- + Modified Bessel Functions
@@ -167,7 +167,7 @@ respectively:

- + Spherical Bessel Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index 30ec9a703..60f7d1a03 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
 
- + Description

@@ -104,7 +104,7 @@

- + Testing

@@ -113,7 +113,7 @@ (with all the special case handling removed).

- + Accuracy

@@ -321,7 +321,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index 70be3d01f..00cff5b65 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
 
- + Description

@@ -92,7 +92,7 @@ for small x:

- + Testing

@@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

- + Accuracy

@@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index 88fadde2f..8a48103cc 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -225,7 +225,7 @@

- + Testing

@@ -235,7 +235,7 @@ this implementation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index 97903d67c..d863d68fb 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -225,7 +225,7 @@

- + Testing

@@ -235,7 +235,7 @@ this implementation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index 13a0449ec..9079b7bb7 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -231,7 +231,7 @@

- + Testing

@@ -241,7 +241,7 @@ this implementation.

- + Implementation

@@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

- Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



-

[1] +

[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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index 1fcb6c9bd..844eef19e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

- + Synopsis

@@ -100,7 +100,7 @@ }} // namespaces

- + Description

@@ -216,7 +216,7 @@

- + Testing

@@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

- + Accuracy

@@ -393,7 +393,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index 69a2b98d8..ef3ad091e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

- + Notation

All variables are real numbers unless otherwise noted.

- + Definition

@@ -245,7 +245,7 @@

- + Duplication Theorem

@@ -256,7 +256,7 @@

- + Carlson's Formulas

@@ -273,7 +273,7 @@

- + Numerical Algorithms
@@ -287,7 +287,7 @@ integrals with satisfactory precisions.

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index 6cd1f7c31..403f5bfe3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

- + Synopsis

@@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -78,7 +78,7 @@
           
         

- + Accuracy

@@ -202,7 +202,7 @@ slightly over the range [4,6].

- + Testing

@@ -217,7 +217,7 @@ check.

- + Implementation

@@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



-

[2] +

[2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index 71971f95e..3a9cbe242 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

- + Synopsis

@@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -78,7 +78,7 @@
           
         

- + Accuracy

@@ -220,7 +220,7 @@

- + Testing

@@ -235,7 +235,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index 65a396feb..82dd34913 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

- + Accuracy

@@ -99,14 +99,14 @@ function for larger arguments.

- + Testing

The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index b72a0f3bb..60d82e74f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

- + Accuracy

@@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

- + Testing

The spot tests for the double factorial use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index 8b4c93896..9c3813f28 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description
@@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

- + Accuracy

@@ -166,7 +166,7 @@ will be the same as for tgamma.

- + Testing

@@ -175,7 +175,7 @@ function handle those cases already.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index 69d073268..185f972b5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

- + Accuracy

@@ -79,14 +79,14 @@ function.

- + Testing

The spot tests for the falling factorials use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index c4ae2eebc..2177a6fc6 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

- + Accuracy

@@ -83,14 +83,14 @@ function.

- + Testing

The spot tests for the rising factorials use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index add874f0e..6f258991a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -85,7 +85,7 @@ to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index e785d46f0..ed1c6f0c6 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -80,7 +80,7 @@ to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index 45870f0c5..aea2622c1 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index 476c3d4fc..d8976dedc 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

- + Accuracy

@@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index 54a34fbbe..9ca40eeb8 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

- + Synopsis

@@ -49,7 +49,7 @@ }}

- + Rationale and Usage
@@ -91,7 +91,7 @@ Only 3 different products were actually computed.

- + Return Type

@@ -112,7 +112,7 @@

- + Policies

@@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Error Handling
@@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
- + Acknowledgements

@@ -238,7 +238,7 @@ improving the implementation.

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index 9823e40d8..deccc50ab 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

- + Accuracy

@@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index 55b8f0ba5..e20a5718d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index 253b9bd47..71ae121f7 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

- + Accuracy

@@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index 101757f7a..fea592557 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

- + Accuracy

Should have approximately 2-3 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index 63164b1fb..63f8088e5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

- + Accuracy

@@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index 71f9430f6..ac4bfc663 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

- + Synopsis

@@ -49,7 +49,7 @@ }} // namespaces

- + Description

@@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

Almost identical to the incomplete beta function ibeta.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index e3f4e766e..91e4d2523 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

- + Synopsis

@@ -48,7 +48,7 @@ }} // namespaces

- + Description

@@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

- + Accuracy

@@ -239,7 +239,7 @@ very small.

- + Testing

@@ -248,7 +248,7 @@ at 1000-bit precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index ca0777894..26f619dd1 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -158,7 +158,7 @@

- + Accuracy

@@ -865,7 +865,7 @@


- + Testing

@@ -883,7 +883,7 @@ have test data that is fully independent of the code.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index 13a6b378d..60aaf5e3f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

- + Description

@@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -300,7 +300,7 @@ or 1.

- + Testing

@@ -324,7 +324,7 @@

- + Implementation of ibeta_inv and ibetac_inv
@@ -492,7 +492,7 @@ rapidly converges on the true value.

- + Implementation of inverses on the a and b parameters
diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index 56c30ad35..290bf9ef9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
- + Synopsis

@@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -100,7 +100,7 @@
           
         

- + Accuracy

@@ -525,7 +525,7 @@

- + Testing

@@ -540,7 +540,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index 38e470d11..adec47384 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

- + Synopsis

@@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -98,7 +98,7 @@
           
         

- + Accuracy

@@ -108,7 +108,7 @@ error functions.

- + Testing

@@ -131,7 +131,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index a33aceb45..32019eb42 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

- + Synopsis

@@ -48,7 +48,7 @@ }} // namespaces

- + Description

@@ -77,7 +77,7 @@ T otherwise.

- + Accuracy

@@ -265,7 +265,7 @@ absolute error will remain very low.

- + Testing

@@ -275,7 +275,7 @@ see below).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index eb98d27ce..63ff378d1 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

- + Synopsis

@@ -49,7 +49,7 @@ }} // namespaces

- + Description

@@ -75,7 +75,7 @@ otherwise the return type is simply T1.

- + Accuracy

@@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index f348457a0..daa13d0d6 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

- + Description
template <class T1, class T2> 
@@ -107,7 +107,7 @@
           
         

- + Accuracy

@@ -317,7 +317,7 @@

- + Testing

@@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index 690cfcdde..0568a7171 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -155,7 +155,7 @@

- + Accuracy

@@ -823,7 +823,7 @@

- + Testing

@@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

- + Implementation

@@ -1008,7 +1008,7 @@ by Temme (see references below).

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index d8c70e7e9..f1d1fb32e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -168,7 +168,7 @@ 0.

- + Accuracy

@@ -182,7 +182,7 @@ functions.

- + Testing

@@ -206,7 +206,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index a9ac239ed..dbd0e72eb 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description

@@ -93,7 +93,7 @@ T otherwise.

- + Accuracy

@@ -344,7 +344,7 @@

- + Testing

@@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index 470522269..f22a0507b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description
template <class T>
@@ -119,7 +119,7 @@
           it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
         

- + Accuracy

@@ -374,7 +374,7 @@

- + Testing

@@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index 188119ae2..93a499ded 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

- + Synopsis

@@ -51,7 +51,7 @@ }} // namespaces

- + Description

@@ -131,7 +131,7 @@

- + Accuracy

@@ -248,7 +248,7 @@ is very close to a root.

- + Testing

@@ -258,7 +258,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index c26b31fe4..3f119ba1f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

- + Synopsis

@@ -62,7 +62,7 @@ }} // namespaces

- + Description

@@ -205,7 +205,7 @@

- + Accuracy

@@ -422,7 +422,7 @@ is very close to a root.

- + Testing

@@ -432,7 +432,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index e05a88ed4..0295f4d52 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

- + Synopsis

@@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -295,7 +295,7 @@
 
 
 
- + Accuracy

@@ -676,7 +676,7 @@ given here.

- + Testing

@@ -686,7 +686,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index 9ebb0a1c1..c9b9cbaf5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

- + Synopsis

@@ -60,7 +60,7 @@ }} // namespaces

- + Description

@@ -150,7 +150,7 @@

- + Accuracy

@@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

- + Testing

@@ -281,7 +281,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index ac172051e..2135d9aa9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

- + Synopsis

@@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -80,7 +80,7 @@
           
         

- + Accuracy

@@ -229,7 +229,7 @@

- + Testing

@@ -244,7 +244,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index be187a2c3..096bdd13d 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -26,8 +26,16 @@

+
+ + Boost-1.47.0 +
+
- + Boost-1.46.0
    @@ -42,7 +50,7 @@
- + Boost-1.45.0
    @@ -59,7 +67,7 @@
- + Boost-1.44.0
    @@ -73,7 +81,7 @@
- + Boost-1.41.0
  • @@ -81,7 +89,7 @@ and its inverse.
- + Boost-1.40.0
    @@ -118,7 +126,7 @@
- + Boost-1.38.0
    @@ -130,14 +138,14 @@
- + Boost-1.37.0
  • Improved accuracy and testing of the inverse hypergeometric functions.
- + Boost-1.36.0
    @@ -170,7 +178,7 @@
- + Boost-1.35.0: Post Review First Official Release
@@ -202,7 +210,7 @@
- + Milestone 4: Second Review Candidate (1st March 2007)
@@ -216,7 +224,7 @@
- + Milestone 3: First Review Candidate (31st Dec 2006)
@@ -244,7 +252,7 @@
- + Milestone 2: Released September 10th 2006
@@ -280,7 +288,7 @@
- + Milestone 1: Released March 31st 2006
diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index 9e650a4c7..b770bb608 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

- + tgamma
  • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
- + Incomplete Beta
  • @@ -56,7 +56,7 @@ b (medium priority).
- + Inverse Gamma
  • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
- + Polynomials
  • @@ -74,7 +74,7 @@ not (Low Priority).
- + Elliptic Integrals
    @@ -127,7 +127,7 @@
- + Inverse Hyperbolic Functions
@@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
- + Statistical distributions
@@ -146,7 +146,7 @@ for very large degrees of freedom?
- + Feature Requests

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index 3a8203416..a97808d80 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

- + Synopsis

@@ -78,7 +78,7 @@ }}} // namespaces

- + Description

@@ -178,7 +178,7 @@ a continued fraction for convergence.

- + Implementation

@@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index e227b02e1..f5b2f53db 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

- + Synopsis

@@ -59,7 +59,7 @@ }}} // namespaces

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index 2de35188f..4cc8a5711 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

- + synopsis

@@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

- + Description

@@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index d73a9c98e..d8f25f192 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

- + synopsis

@@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

- + Description

@@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index 16fbb1241..da7faf28f 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

- + Synopsis

@@ -62,7 +62,7 @@ }}} // namespaces

- + Description

@@ -206,7 +206,7 @@

- + Newton Raphson Method
@@ -224,7 +224,7 @@ iteration.

- + Halley's Method
@@ -246,7 +246,7 @@ iteration.

- + Schroeder's Method
@@ -270,7 +270,7 @@ iteration.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index 899baac78..970adc63d 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

- + Synopsis

@@ -144,7 +144,7 @@ }}} // namespaces

- + Description

@@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

- + Bisection
template <class F, class T, class Tol>
@@ -280,7 +280,7 @@
           tol was satisfied.
         

- + Bracket and solve
@@ -388,7 +388,7 @@ was satisfied.

- + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
@@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index 38b36b9b2..687023000 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

- + Synopsis

@@ -70,7 +70,7 @@ }}} // namespaces

- + Description

@@ -127,7 +127,7 @@ summation in this way.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index f9eade5e9..2a3f76155 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

- + Synopsis

@@ -38,7 +38,7 @@

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index c2bc5adbb..05ba5b67a 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

- + Synopsis

@@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

- + Description
template <class T>
@@ -157,7 +157,7 @@
           is mainly a debugging/development aid (and a good place for a breakpoint).
         

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index a74fa9f04..21746bb92 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

- + Synopsis

@@ -103,7 +103,7 @@ }}} // namespaces

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index 0776216ef..01e93fdcd 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

- + Synopsis
namespace boost{ namespace math{ namespace tools{
@@ -147,7 +147,7 @@
 }}} // namespaces
 
- + Description

@@ -177,7 +177,7 @@

- + Example 1: Output Data for Graph Plotting
@@ -211,7 +211,7 @@

- + Example 2: Creating Test Data
@@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

- + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
@@ -482,7 +482,7 @@ of a and z.

- + reference

diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index 2094d8fb6..1f1b3d871 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@

- + Real concept

@@ -84,7 +84,7 @@ declaration.

- + Testing the real concept

@@ -130,7 +130,7 @@ double, also tests real_concept.

- + Distribution Concept

@@ -166,7 +166,7 @@ class for distribution types.

- + Testing the distribution concept

diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index 55c894b3f..c860bc43f 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

- + Basic Arithmetic Requirements
@@ -1035,7 +1035,7 @@
- + Standard Library Support Requirements
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index 0f58afa6c..ea3a4f4b3 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -28,7 +28,7 @@ Infinities and NaN's
- + Synopsis
#define FP_ZERO        /* implementation specific value */
@@ -58,7 +58,7 @@
         to use these functions.
       

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index 4067f5402..0a99ab7ac 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

- + Synopsis

@@ -50,7 +50,7 @@ }} // namespaces

- + Description - float_advance
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index dc226cf4b..1acb1dc1f 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

- + Synopsis

@@ -52,7 +52,7 @@ }} // namespaces

- + Description - float_distance
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index 827b0cc7b..c91162137 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - float_next
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index 97399a0f6..9ac12d097 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - float_prior
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index 9b5abd796..16ca58cf4 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - nextafter
@@ -76,7 +76,7 @@ returns an overflow_error.

- + Examples - nextafter
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index 21263c358..a807237b9 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -28,7 +28,7 @@ Functions
- + Synopsis

@@ -52,7 +52,7 @@ }} // namespaces

- + Description
template<class T> 
diff --git a/doc/sf_and_dist/roadmap.qbk b/doc/sf_and_dist/roadmap.qbk
index 0e6b6ee96..d67fb490d 100644
--- a/doc/sf_and_dist/roadmap.qbk
+++ b/doc/sf_and_dist/roadmap.qbk
@@ -2,7 +2,7 @@
 
 [h4 Boost-1.47.0]
 
-* Fixed issues [@https://svn.boost.org/trac/boost/ticket/5095 #5095].
+* 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]
 
diff --git a/include/boost/math/special_functions/acosh.hpp b/include/boost/math/special_functions/acosh.hpp
index bd8330b6e..40ca985ed 100644
--- a/include/boost/math/special_functions/acosh.hpp
+++ b/include/boost/math/special_functions/acosh.hpp
@@ -79,7 +79,7 @@ namespace boost
                 T y = x - 1;
                 
                 // approximation by taylor series in y at 0 up to order 2
-                T result = sqrt(2 * y) * (1 + y /12 + 3 * y * y / 160);
+                T result = sqrt(2 * y) * (1 - y /12 + 3 * y * y / 160);
                 return result;
             }
         }
diff --git a/test/acosh_test.hpp b/test/acosh_test.hpp
index fa3f8c6ae..032e42708 100644
--- a/test/acosh_test.hpp
+++ b/test/acosh_test.hpp
@@ -55,6 +55,27 @@ BOOST_TEST_CASE_TEMPLATE_FUNCTION(acosh_test, T)
             (acosh_error_evaluator(x))
             (static_cast(4)));
     }
+    // special cases for bug report: https://svn.boost.org/trac/boost/ticket/5113
+    T x = 1e-2f;
+    BOOST_CHECK_PREDICATE(::std::less_equal(),
+       (acosh_error_evaluator(x))
+       (static_cast(4)));
+    x = 1e-3f;
+    BOOST_CHECK_PREDICATE(::std::less_equal(),
+       (acosh_error_evaluator(x))
+       (static_cast(4)));
+    x = 1e-4f;
+    BOOST_CHECK_PREDICATE(::std::less_equal(),
+       (acosh_error_evaluator(x))
+       (static_cast(4)));
+    x = 1e-5f;
+    BOOST_CHECK_PREDICATE(::std::less_equal(),
+       (acosh_error_evaluator(x))
+       (static_cast(4)));
+    x = 1e-6f;
+    BOOST_CHECK_PREDICATE(::std::less_equal(),
+       (acosh_error_evaluator(x))
+       (static_cast(4)));
 }
 
 
diff --git a/test/test_inv_hyp.cpp b/test/test_inv_hyp.cpp
index b0e22c257..dda711e61 100644
--- a/test/test_inv_hyp.cpp
+++ b/test/test_inv_hyp.cpp
@@ -52,23 +52,16 @@ void expected_results()
 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    if(boost::math::policies::digits >() == boost::math::policies::digits >())
    {
-      largest_type = "(long\\s+)?double";
+      largest_type = "(long\\s+)?double|real_concept";
    }
    else
    {
-      largest_type = "long double";
+      largest_type = "long double|real_concept";
    }
 #else
    largest_type = "(long\\s+)?double";
 #endif
 
-   add_expected_result(
-      ".*",                          // compiler
-      ".*",                          // stdlib
-      ".*",                          // platform
-      "real_concept",                // test type(s)
-      "atanh.*",                     // test data group
-      ".*", 6, 2);                   // test function
    add_expected_result(
       ".*",                          // compiler
       ".*",                          // stdlib
@@ -191,12 +184,35 @@ void do_test_atanh(const T& data, const char* type_name, const char* test_name)
 template 
 void test_inv_hyperbolics(T, const char* name)
 {
+    // function values calculated on http://functions.wolfram.com/
+    #define SC_(x) static_cast(BOOST_JOIN(x, L))
+    static const boost::array, 16> data1 = {
+        SC_(1), SC_(0),
+        SC_(18014398509481985.0)/SC_(18014398509481984.0), (SC_(18014398509481985.0)/SC_(18014398509481984.0) == 1 ? 0 : SC_(1.05367121277235078980001569764860129317209081216314559121044e-8)),
+        SC_(140737488355329.0)/SC_(140737488355328.0), (SC_(140737488355329.0)/SC_(140737488355328.0) == 1 ? 0 : SC_(1.19209289550781179413921062141751258430803882725295121500042e-7)),
+        SC_(1073741825.0)/SC_(1073741824.0), (SC_(1073741825.0)/SC_(1073741824.0) == 1 ? 0 : SC_(0.0000431583728718059579720327225039166883356735150941350459126580)),
+        SC_(32769)/32768, (SC_(32769)/32768 == 1 ? 0 : SC_(0.00781248013192149783598227588546120945538554063153555218442060)),
+        SC_(1025)/1024, SC_(0.0441905780831100944299637635287994671116916497867872322058681),
+        SC_(513)/512, SC_(0.0624898319417098609694799246056217361555882834152944713872228),
+        SC_(129)/128, SC_(0.124918762511080617606418193883982155828039646714882611321039),
+        SC_(33)/32, SC_(0.249353493842885487851439075410018843027071727873456825299808),
+        SC_(5)/4, SC_(0.693147180559945309417232121458176568075500134360255254120680),
+        SC_(3)/2, SC_(0.962423650119206894995517826848736846270368668771321039322036),
+        SC_(1.75), SC_(1.15881036042994681173087299087873019318368454205435905403767),
+        SC_(2), SC_(1.31695789692481670862504634730796844402698197146751647976847),
+        SC_(20), SC_(3.68825386736129666761816757203235188783315569765587425882926),
+        SC_(200), SC_(5.99145829704938742305501213819154333467246121857058747847273),
+        SC_(2000), SC_(8.29404957760202181151262480475259799729149903827743516943515),
+   };
+    #undef SC_
+
    //
    // The actual test data is rather verbose, so it's in a separate file
    //
 #include "asinh_data.ipp"
    do_test_asinh(asinh_data, name, "asinh");
 #include "acosh_data.ipp"
+   do_test_acosh(data1, name, "acosh: Mathworld Data");
    do_test_acosh(acosh_data, name, "acosh");
 #include "atanh_data.ipp"
    do_test_atanh(atanh_data, name, "atanh");

From 5b6c4bfeb66dcb0965f0f0315c848a09605d4e74 Mon Sep 17 00:00:00 2001
From: John Maddock 
Date: Sat, 5 Feb 2011 10:49:43 +0000
Subject: [PATCH 11/82] Change the name of the extern "C" TR1 functions so they
 no longer clash with (possibly inline) std lib versions. Fixes #4828.

[SVN r68653]
---
 include/boost/math/tr1.hpp  | 1347 +++++++++++++++++++++++++++++++----
 src/tr1/acosh.cpp           |    2 +-
 src/tr1/acoshf.cpp          |    2 +-
 src/tr1/acoshl.cpp          |    2 +-
 src/tr1/asinh.cpp           |    2 +-
 src/tr1/asinhf.cpp          |    2 +-
 src/tr1/asinhl.cpp          |    2 +-
 src/tr1/assoc_laguerre.cpp  |    2 +-
 src/tr1/assoc_laguerref.cpp |    2 +-
 src/tr1/assoc_laguerrel.cpp |    2 +-
 src/tr1/assoc_legendre.cpp  |    2 +-
 src/tr1/assoc_legendref.cpp |    2 +-
 src/tr1/assoc_legendrel.cpp |    2 +-
 src/tr1/atanh.cpp           |    2 +-
 src/tr1/atanhf.cpp          |    2 +-
 src/tr1/atanhl.cpp          |    2 +-
 src/tr1/beta.cpp            |    2 +-
 src/tr1/betaf.cpp           |    2 +-
 src/tr1/betal.cpp           |    2 +-
 src/tr1/cbrt.cpp            |    2 +-
 src/tr1/cbrtf.cpp           |    2 +-
 src/tr1/cbrtl.cpp           |    2 +-
 src/tr1/comp_ellint_1.cpp   |    2 +-
 src/tr1/comp_ellint_1f.cpp  |    2 +-
 src/tr1/comp_ellint_1l.cpp  |    2 +-
 src/tr1/comp_ellint_2.cpp   |    2 +-
 src/tr1/comp_ellint_2f.cpp  |    2 +-
 src/tr1/comp_ellint_2l.cpp  |    2 +-
 src/tr1/comp_ellint_3.cpp   |    2 +-
 src/tr1/comp_ellint_3f.cpp  |    2 +-
 src/tr1/comp_ellint_3l.cpp  |    2 +-
 src/tr1/copysign.cpp        |    5 +-
 src/tr1/copysignf.cpp       |    5 +-
 src/tr1/copysignl.cpp       |    2 +-
 src/tr1/cyl_bessel_i.cpp    |    2 +-
 src/tr1/cyl_bessel_if.cpp   |    2 +-
 src/tr1/cyl_bessel_il.cpp   |    2 +-
 src/tr1/cyl_bessel_j.cpp    |    2 +-
 src/tr1/cyl_bessel_jf.cpp   |    2 +-
 src/tr1/cyl_bessel_jl.cpp   |    2 +-
 src/tr1/cyl_bessel_k.cpp    |    2 +-
 src/tr1/cyl_bessel_kf.cpp   |    2 +-
 src/tr1/cyl_bessel_kl.cpp   |    2 +-
 src/tr1/cyl_neumann.cpp     |    2 +-
 src/tr1/cyl_neumannf.cpp    |    2 +-
 src/tr1/cyl_neumannl.cpp    |    2 +-
 src/tr1/ellint_1.cpp        |    2 +-
 src/tr1/ellint_1f.cpp       |    2 +-
 src/tr1/ellint_1l.cpp       |    2 +-
 src/tr1/ellint_2.cpp        |    2 +-
 src/tr1/ellint_2f.cpp       |    2 +-
 src/tr1/ellint_2l.cpp       |    2 +-
 src/tr1/ellint_3.cpp        |    2 +-
 src/tr1/ellint_3f.cpp       |    2 +-
 src/tr1/ellint_3l.cpp       |    2 +-
 src/tr1/erf.cpp             |    2 +-
 src/tr1/erfc.cpp            |    2 +-
 src/tr1/erfcf.cpp           |    2 +-
 src/tr1/erfcl.cpp           |    2 +-
 src/tr1/erff.cpp            |    2 +-
 src/tr1/erfl.cpp            |    2 +-
 src/tr1/expint.cpp          |    2 +-
 src/tr1/expintf.cpp         |    2 +-
 src/tr1/expintl.cpp         |    2 +-
 src/tr1/fmax.cpp            |    2 +-
 src/tr1/fmaxf.cpp           |    5 +-
 src/tr1/fmaxl.cpp           |    2 +-
 src/tr1/fmin.cpp            |    2 +-
 src/tr1/fminf.cpp           |    5 +-
 src/tr1/fminl.cpp           |    2 +-
 src/tr1/hermite.cpp         |    2 +-
 src/tr1/hermitef.cpp        |    2 +-
 src/tr1/hermitel.cpp        |    2 +-
 src/tr1/hypot.cpp           |    2 +-
 src/tr1/hypotf.cpp          |    2 +-
 src/tr1/hypotl.cpp          |    2 +-
 src/tr1/laguerre.cpp        |    2 +-
 src/tr1/laguerref.cpp       |    2 +-
 src/tr1/laguerrel.cpp       |    2 +-
 src/tr1/legendre.cpp        |    2 +-
 src/tr1/legendref.cpp       |    2 +-
 src/tr1/legendrel.cpp       |    2 +-
 src/tr1/lgamma.cpp          |    2 +-
 src/tr1/lgammaf.cpp         |    2 +-
 src/tr1/lgammal.cpp         |    2 +-
 src/tr1/llround.cpp         |    2 +-
 src/tr1/llroundf.cpp        |    2 +-
 src/tr1/llroundl.cpp        |    2 +-
 src/tr1/lround.cpp          |    2 +-
 src/tr1/lroundf.cpp         |    2 +-
 src/tr1/lroundl.cpp         |    2 +-
 src/tr1/nexttoward.cpp      |    2 +-
 src/tr1/nexttowardf.cpp     |    2 +-
 src/tr1/nexttowardl.cpp     |    2 +-
 src/tr1/riemann_zeta.cpp    |    2 +-
 src/tr1/riemann_zetaf.cpp   |    2 +-
 src/tr1/riemann_zetal.cpp   |    2 +-
 src/tr1/round.cpp           |    2 +-
 src/tr1/roundf.cpp          |    2 +-
 src/tr1/roundl.cpp          |    2 +-
 src/tr1/sph_bessel.cpp      |    2 +-
 src/tr1/sph_besself.cpp     |    2 +-
 src/tr1/sph_bessell.cpp     |    2 +-
 src/tr1/sph_legendre.cpp    |    2 +-
 src/tr1/sph_legendref.cpp   |    2 +-
 src/tr1/sph_legendrel.cpp   |    2 +-
 src/tr1/sph_neumann.cpp     |    2 +-
 src/tr1/sph_neumannf.cpp    |    2 +-
 src/tr1/sph_neumannl.cpp    |    2 +-
 src/tr1/tgamma.cpp          |    2 +-
 src/tr1/tgammaf.cpp         |    2 +-
 src/tr1/tgammal.cpp         |    2 +-
 src/tr1/trunc.cpp           |    2 +-
 src/tr1/truncf.cpp          |    2 +-
 src/tr1/truncl.cpp          |    2 +-
 test/Jamfile.v2             |   22 +
 test/test_tr1.c             | 1067 +++++++++++++++++++++++++++
 117 files changed, 2399 insertions(+), 277 deletions(-)
 create mode 100644 test/test_tr1.c

diff --git a/include/boost/math/tr1.hpp b/include/boost/math/tr1.hpp
index 26730f3ba..2fb2f291c 100644
--- a/include/boost/math/tr1.hpp
+++ b/include/boost/math/tr1.hpp
@@ -20,6 +20,10 @@
 
 namespace boost{ namespace math{ namespace tr1{ extern "C"{
 
+#else
+
+#define BOOST_PREVENT_MACRO_SUBSTITUTION /**/
+
 #endif // __cplusplus
 
 // we need to import/export our code only if the user has specifically
@@ -40,8 +44,7 @@ namespace boost{ namespace math{ namespace tr1{ extern "C"{
 // Set any throw specifications on the C99 extern "C" functions - these have to be
 // the same as used in the std lib if any.
 //
-#if (defined(__GLIBC__) && defined(__THROW)) \
-   || (defined(__IBMCPP__) && defined(__LINUX__) && defined(__THROW))
+#if defined(__GLIBC__) && defined(__THROW)
 #  define BOOST_MATH_C99_THROW_SPEC __THROW
 #else
 #  define BOOST_MATH_C99_THROW_SPEC
@@ -116,77 +119,77 @@ typedef long double double_t;
 #endif
 
 // C99 Functions:
-double BOOST_MATH_TR1_DECL acosh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL acoshl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_acosh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_acoshl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 
-double BOOST_MATH_TR1_DECL asinh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_asinh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 
-double BOOST_MATH_TR1_DECL atanh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL atanhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_atanh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_atanhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 
-double BOOST_MATH_TR1_DECL cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL cbrtl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_cbrtl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 
-double BOOST_MATH_TR1_DECL copysign BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL copysignl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_copysign BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_copysignl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
 
-double BOOST_MATH_TR1_DECL erf BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL erff BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL erfl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_erf BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_erff BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_erfl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 
-double BOOST_MATH_TR1_DECL erfc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL erfcl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_erfc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_erfcl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #if 0
-double BOOST_MATH_TR1_DECL exp2 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL exp2f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL exp2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_exp2 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_exp2f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_exp2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #endif
 double BOOST_MATH_TR1_DECL boost_expm1 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
 float BOOST_MATH_TR1_DECL boost_expm1f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
 long double BOOST_MATH_TR1_DECL boost_expm1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #if 0
-double BOOST_MATH_TR1_DECL fdim BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL fdimf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL fdiml BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
-double BOOST_MATH_TR1_DECL fma BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y, double z) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL fmaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y, float z) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL fmal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y, long double z) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_fdim BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_fdimf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_fdiml BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_fma BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y, double z) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_fmaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y, float z) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_fmal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y, long double z) BOOST_MATH_C99_THROW_SPEC;
 #endif
-double BOOST_MATH_TR1_DECL fmax BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL fmaxl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_fmax BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_fmaxl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
 
-double BOOST_MATH_TR1_DECL fmin BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL fminf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL fminl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_fmin BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_fminf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_fminl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
 
-double BOOST_MATH_TR1_DECL hypot BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL hypotl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_hypot BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_hypotl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
 #if 0
-int BOOST_MATH_TR1_DECL ilogb BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-int BOOST_MATH_TR1_DECL ilogbf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-int BOOST_MATH_TR1_DECL ilogbl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+int BOOST_MATH_TR1_DECL boost_ilogb BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+int BOOST_MATH_TR1_DECL boost_ilogbf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+int BOOST_MATH_TR1_DECL boost_ilogbl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #endif
-double BOOST_MATH_TR1_DECL lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL lgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_lgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #ifdef BOOST_HAS_LONG_LONG
 #if 0
-::boost::long_long_type BOOST_MATH_TR1_DECL llrint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-::boost::long_long_type BOOST_MATH_TR1_DECL llrintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-::boost::long_long_type BOOST_MATH_TR1_DECL llrintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+::boost::long_long_type BOOST_MATH_TR1_DECL boost_llrint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+::boost::long_long_type BOOST_MATH_TR1_DECL boost_llrintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+::boost::long_long_type BOOST_MATH_TR1_DECL boost_llrintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #endif
-::boost::long_long_type BOOST_MATH_TR1_DECL llround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-::boost::long_long_type BOOST_MATH_TR1_DECL llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-::boost::long_long_type BOOST_MATH_TR1_DECL llroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+::boost::long_long_type BOOST_MATH_TR1_DECL boost_llround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+::boost::long_long_type BOOST_MATH_TR1_DECL boost_llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+::boost::long_long_type BOOST_MATH_TR1_DECL boost_llroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #endif
 double BOOST_MATH_TR1_DECL boost_log1p BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
 float BOOST_MATH_TR1_DECL boost_log1pf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
@@ -203,9 +206,9 @@ long BOOST_MATH_TR1_DECL lrint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_
 long BOOST_MATH_TR1_DECL lrintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
 long BOOST_MATH_TR1_DECL lrintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #endif
-long BOOST_MATH_TR1_DECL lround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-long BOOST_MATH_TR1_DECL lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long BOOST_MATH_TR1_DECL lroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+long BOOST_MATH_TR1_DECL boost_lround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+long BOOST_MATH_TR1_DECL boost_lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long BOOST_MATH_TR1_DECL boost_lroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #if 0
 double BOOST_MATH_TR1_DECL nan BOOST_PREVENT_MACRO_SUBSTITUTION(const char *str) BOOST_MATH_C99_THROW_SPEC;
 float BOOST_MATH_TR1_DECL nanf BOOST_PREVENT_MACRO_SUBSTITUTION(const char *str) BOOST_MATH_C99_THROW_SPEC;
@@ -218,68 +221,68 @@ double BOOST_MATH_TR1_DECL boost_nextafter BOOST_PREVENT_MACRO_SUBSTITUTION(doub
 float BOOST_MATH_TR1_DECL boost_nextafterf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
 long double BOOST_MATH_TR1_DECL boost_nextafterl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
 
-double BOOST_MATH_TR1_DECL nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(double x, long double y) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long double y) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(double x, long double y) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long double y) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
 #if 0
-double BOOST_MATH_TR1_DECL remainder BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL remainderf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL remainderl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
-double BOOST_MATH_TR1_DECL remquo BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y, int *pquo) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL remquof BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y, int *pquo) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL remquol BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y, int *pquo) BOOST_MATH_C99_THROW_SPEC;
-double BOOST_MATH_TR1_DECL rint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL rintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL rintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_remainder BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_remainderf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_remainderl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_remquo BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y, int *pquo) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_remquof BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y, int *pquo) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_remquol BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y, int *pquo) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_rint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_rintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_rintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #endif
-double BOOST_MATH_TR1_DECL round BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL roundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL roundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_round BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_roundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_roundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 #if 0
-double BOOST_MATH_TR1_DECL scalbln BOOST_PREVENT_MACRO_SUBSTITUTION(double x, long ex) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL scalblnf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long ex) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL scalblnl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long ex) BOOST_MATH_C99_THROW_SPEC;
-double BOOST_MATH_TR1_DECL scalbn BOOST_PREVENT_MACRO_SUBSTITUTION(double x, int ex) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL scalbnf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, int ex) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL scalbnl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, int ex) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_scalbln BOOST_PREVENT_MACRO_SUBSTITUTION(double x, long ex) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_scalblnf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long ex) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_scalblnl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long ex) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_scalbn BOOST_PREVENT_MACRO_SUBSTITUTION(double x, int ex) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_scalbnf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, int ex) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_scalbnl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, int ex) BOOST_MATH_C99_THROW_SPEC;
 #endif
-double BOOST_MATH_TR1_DECL tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL tgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_tgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 
-double BOOST_MATH_TR1_DECL trunc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL truncf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL truncl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_trunc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_truncf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_truncl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.1] associated Laguerre polynomials:
-double BOOST_MATH_TR1_DECL assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL assoc_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_assoc_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.2] associated Legendre functions:
-double BOOST_MATH_TR1_DECL assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL assoc_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_assoc_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.3] beta function:
-double BOOST_MATH_TR1_DECL beta BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL betaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL betal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_beta BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_betaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_betal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.4] (complete) elliptic integral of the first kind:
-double BOOST_MATH_TR1_DECL comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL comp_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_comp_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.5] (complete) elliptic integral of the second kind:
-double BOOST_MATH_TR1_DECL comp_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL comp_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL comp_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_comp_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_comp_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_comp_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.6] (complete) elliptic integral of the third kind:
-double BOOST_MATH_TR1_DECL comp_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL comp_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL comp_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_comp_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_comp_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_comp_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu) BOOST_MATH_C99_THROW_SPEC;
 #if 0
 // [5.2.1.7] confluent hypergeometric functions:
 double BOOST_MATH_TR1_DECL conf_hyperg BOOST_PREVENT_MACRO_SUBSTITUTION(double a, double c, double x) BOOST_MATH_C99_THROW_SPEC;
@@ -287,50 +290,50 @@ float BOOST_MATH_TR1_DECL conf_hypergf BOOST_PREVENT_MACRO_SUBSTITUTION(float a,
 long double BOOST_MATH_TR1_DECL conf_hypergl BOOST_PREVENT_MACRO_SUBSTITUTION(long double a, long double c, long double x) BOOST_MATH_C99_THROW_SPEC;
 #endif
 // [5.2.1.8] regular modified cylindrical Bessel functions:
-double BOOST_MATH_TR1_DECL cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL cyl_bessel_il BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_cyl_bessel_il BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.9] cylindrical Bessel functions (of the first kind):
-double BOOST_MATH_TR1_DECL cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL cyl_bessel_jl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_cyl_bessel_jl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.10] irregular modified cylindrical Bessel functions:
-double BOOST_MATH_TR1_DECL cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL cyl_bessel_kl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_cyl_bessel_kl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.11] cylindrical Neumann functions BOOST_MATH_C99_THROW_SPEC;
 // cylindrical Bessel functions (of the second kind):
-double BOOST_MATH_TR1_DECL cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL cyl_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_cyl_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.12] (incomplete) elliptic integral of the first kind:
-double BOOST_MATH_TR1_DECL ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.13] (incomplete) elliptic integral of the second kind:
-double BOOST_MATH_TR1_DECL ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.14] (incomplete) elliptic integral of the third kind:
-double BOOST_MATH_TR1_DECL ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu, double phi) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu, float phi) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu, long double phi) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu, double phi) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu, float phi) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu, long double phi) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.15] exponential integral:
-double BOOST_MATH_TR1_DECL expint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL expintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL expintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_expint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_expintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_expintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.16] Hermite polynomials:
-double BOOST_MATH_TR1_DECL hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL hermitel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_hermitel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 #if 0
 // [5.2.1.17] hypergeometric functions:
@@ -341,35 +344,35 @@ long double x) BOOST_MATH_C99_THROW_SPEC;
 #endif
 
 // [5.2.1.18] Laguerre polynomials:
-double BOOST_MATH_TR1_DECL laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.19] Legendre polynomials:
-double BOOST_MATH_TR1_DECL legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.20] Riemann zeta function:
-double BOOST_MATH_TR1_DECL riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(double) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(float) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL riemann_zetal BOOST_PREVENT_MACRO_SUBSTITUTION(long double) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(double) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(float) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_riemann_zetal BOOST_PREVENT_MACRO_SUBSTITUTION(long double) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.21] spherical Bessel functions (of the first kind):
-double BOOST_MATH_TR1_DECL sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL sph_bessell BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_sph_bessell BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.22] spherical associated Legendre functions:
-double BOOST_MATH_TR1_DECL sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double theta) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float theta) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL sph_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double theta) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double theta) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float theta) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_sph_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double theta) BOOST_MATH_C99_THROW_SPEC;
 
 // [5.2.1.23] spherical Neumann functions BOOST_MATH_C99_THROW_SPEC;
 // spherical Bessel functions (of the second kind):
-double BOOST_MATH_TR1_DECL sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC;
-float BOOST_MATH_TR1_DECL sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC;
-long double BOOST_MATH_TR1_DECL sph_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC;
+double BOOST_MATH_TR1_DECL boost_sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC;
+float BOOST_MATH_TR1_DECL boost_sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC;
+long double BOOST_MATH_TR1_DECL boost_sph_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC;
 
 #ifdef __cplusplus
 
@@ -383,6 +386,12 @@ namespace boost{ namespace math{ namespace tr1{
 // C interfaces:
 //
 // C99 Functions:
+inline double acosh BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_acosh BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline float acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double acoshl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_acoshl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline float acosh BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long double acosh BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -391,18 +400,40 @@ template 
 inline typename tools::promote_args::type acosh BOOST_PREVENT_MACRO_SUBSTITUTION(T x)
 { return boost::math::tr1::acosh BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); }
 
-inline float asinh BOOST_PREVENT_MACRO_SUBSTITUTION(float x){ return boost::math::tr1::asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
-inline long double asinh BOOST_PREVENT_MACRO_SUBSTITUTION(long double x){ return boost::math::tr1::asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline double asinh BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_asinh BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline float asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline float asinh BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double asinh BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 template 
 inline typename tools::promote_args::type asinh BOOST_PREVENT_MACRO_SUBSTITUTION(T x)
 { return boost::math::tr1::asinh BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); }
 
-inline float atanh BOOST_PREVENT_MACRO_SUBSTITUTION(float x){ return boost::math::tr1::atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
-inline long double atanh BOOST_PREVENT_MACRO_SUBSTITUTION(long double x){ return boost::math::tr1::atanhl(x); }
+inline double atanh BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_atanh BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline float atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double atanhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_atanhl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline float atanh BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double atanh BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::atanhl(x); }
 template 
 inline typename tools::promote_args::type atanh BOOST_PREVENT_MACRO_SUBSTITUTION(T x)
 { return boost::math::tr1::atanh BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); }
 
+inline double cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline float cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double cbrtl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_cbrtl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline float cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long double cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -411,6 +442,12 @@ template 
 inline typename tools::promote_args::type cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(T x)
 { return boost::math::tr1::cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); }
 
+inline double copysign BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y)
+{ return boost::math::tr1::boost_copysign BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline float copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
+{ return boost::math::tr1::boost_copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline long double copysignl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
+{ return boost::math::tr1::boost_copysignl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline float copysign BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
 { return boost::math::tr1::copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline long double copysign BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
@@ -419,6 +456,12 @@ template 
 inline typename tools::promote_args::type copysign BOOST_PREVENT_MACRO_SUBSTITUTION(T1 x, T2 y)
 { return boost::math::tr1::copysign BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); }
 
+inline double erf BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_erf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline float erff BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_erff BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double erfl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_erfl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline float erf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::erff BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long double erf BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -427,6 +470,12 @@ template 
 inline typename tools::promote_args::type erf BOOST_PREVENT_MACRO_SUBSTITUTION(T x)
 { return boost::math::tr1::erf BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); }
 
+inline double erfc BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_erfc BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline float erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double erfcl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_erfcl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline float erfc BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long double erfc BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -434,11 +483,13 @@ inline long double erfc BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
 template 
 inline typename tools::promote_args::type erfc BOOST_PREVENT_MACRO_SUBSTITUTION(T x)
 { return boost::math::tr1::erfc BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); }
+
 #if 0
 double exp2 BOOST_PREVENT_MACRO_SUBSTITUTION(double x);
 float exp2f BOOST_PREVENT_MACRO_SUBSTITUTION(float x);
 long double exp2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x);
 #endif
+
 inline float expm1f BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::boost_expm1f BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline double expm1 BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
@@ -452,6 +503,7 @@ inline long double expm1 BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
 template 
 inline typename tools::promote_args::type expm1 BOOST_PREVENT_MACRO_SUBSTITUTION(T x)
 { return boost::math::tr1::expm1 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); }
+
 #if 0
 double fdim BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y);
 float fdimf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y);
@@ -460,6 +512,12 @@ double fma BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y, double z);
 float fmaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y, float z);
 long double fmal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y, long double z);
 #endif
+inline double fmax BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y)
+{ return boost::math::tr1::boost_fmax BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline float fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
+{ return boost::math::tr1::boost_fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline long double fmaxl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
+{ return boost::math::tr1::boost_fmaxl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline float fmax BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
 { return boost::math::tr1::fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline long double fmax BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
@@ -468,6 +526,12 @@ template 
 inline typename tools::promote_args::type fmax BOOST_PREVENT_MACRO_SUBSTITUTION(T1 x, T2 y)
 { return boost::math::tr1::fmax BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); }
 
+inline double fmin BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y)
+{ return boost::math::tr1::boost_fmin BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline float fminf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
+{ return boost::math::tr1::boost_fminf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline long double fminl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
+{ return boost::math::tr1::boost_fminl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline float fmin BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
 { return boost::math::tr1::fminf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline long double fmin BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
@@ -476,6 +540,12 @@ template 
 inline typename tools::promote_args::type fmin BOOST_PREVENT_MACRO_SUBSTITUTION(T1 x, T2 y)
 { return boost::math::tr1::fmin BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); }
 
+inline float hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
+{ return boost::math::tr1::boost_hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline double hypot BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y)
+{ return boost::math::tr1::boost_hypot BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline long double hypotl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
+{ return boost::math::tr1::boost_hypotl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline float hypot BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
 { return boost::math::tr1::hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline long double hypot BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
@@ -483,11 +553,19 @@ inline long double hypot BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long do
 template 
 inline typename tools::promote_args::type hypot BOOST_PREVENT_MACRO_SUBSTITUTION(T1 x, T2 y)
 { return boost::math::tr1::hypot BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); }
+
 #if 0
 int ilogb BOOST_PREVENT_MACRO_SUBSTITUTION(double x);
 int ilogbf BOOST_PREVENT_MACRO_SUBSTITUTION(float x);
 int ilogbl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x);
 #endif
+
+inline float lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline double lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double lgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_lgammal BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline float lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long double lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -495,12 +573,20 @@ inline long double lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
 template 
 inline typename tools::promote_args::type lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(T x)
 { return boost::math::tr1::lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); }
+
 #ifdef BOOST_HAS_LONG_LONG
 #if 0
 ::boost::long_long_type llrint BOOST_PREVENT_MACRO_SUBSTITUTION(double x);
 ::boost::long_long_type llrintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x);
 ::boost::long_long_type llrintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x);
 #endif
+
+inline ::boost::long_long_type llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline ::boost::long_long_type llround BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_llround BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline ::boost::long_long_type llroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_llroundl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline ::boost::long_long_type llround BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline ::boost::long_long_type llround BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -509,6 +595,7 @@ template 
 inline ::boost::long_long_type llround BOOST_PREVENT_MACRO_SUBSTITUTION(T x)
 { return llround BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast(x)); }
 #endif
+
 inline float log1pf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::boost_log1pf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline double log1p BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
@@ -534,6 +621,12 @@ long lrint BOOST_PREVENT_MACRO_SUBSTITUTION(double x);
 long lrintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x);
 long lrintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x);
 #endif
+inline long lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long lround BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_lround BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long lroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_lroundl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long lround BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long lround BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -563,7 +656,13 @@ template 
 inline typename tools::promote_args::type nextafter BOOST_PREVENT_MACRO_SUBSTITUTION(T1 x, T2 y)
 { return boost::math::tr1::nextafter BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); }
 
-inline float nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long double y)
+inline float nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
+{ return boost::math::tr1::boost_nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline double nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y)
+{ return boost::math::tr1::boost_nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline long double nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
+{ return boost::math::tr1::boost_nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline float nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
 { return boost::math::tr1::nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline long double nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
 { return boost::math::tr1::nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
@@ -581,6 +680,12 @@ double rint BOOST_PREVENT_MACRO_SUBSTITUTION(double x);
 float rintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x);
 long double rintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x);
 #endif
+inline float roundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_roundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline double round BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_round BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double roundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_roundl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline float round BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::roundf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long double round BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -596,6 +701,12 @@ double scalbn BOOST_PREVENT_MACRO_SUBSTITUTION(double x, int ex);
 float scalbnf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, int ex);
 long double scalbnl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, int ex);
 #endif
+inline float tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline double tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double tgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_tgammal BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline float tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long double tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -604,6 +715,12 @@ template 
 inline typename tools::promote_args::type tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(T x)
 { return boost::math::tr1::tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); }
 
+inline float truncf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_truncf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline double trunc BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_trunc BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double truncl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_truncl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline float trunc BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::truncf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long double trunc BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -653,6 +770,12 @@ template<> bool BOOST_MATH_TR1_DECL isnormal NO_MACRO_EXPAND(long d
 #undef NO_MACRO_EXPAND   
    
 // [5.2.1.1] associated Laguerre polynomials:
+inline float assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x)
+{ return boost::math::tr1::boost_assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x); }
+inline double assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, double x)
+{ return boost::math::tr1::boost_assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x); }
+inline long double assoc_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x)
+{ return boost::math::tr1::boost_assoc_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x); }
 inline float assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x)
 { return boost::math::tr1::assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x); }
 inline long double assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x)
@@ -662,6 +785,12 @@ inline typename tools::promote_args::type assoc_laguerre BOOST_PREVENT_MACRO_
 { return boost::math::tr1::assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, static_cast::type>(x)); }
 
 // [5.2.1.2] associated Legendre functions:
+inline float assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float x)
+{ return boost::math::tr1::boost_assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x); }
+inline double assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double x)
+{ return boost::math::tr1::boost_assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x); }
+inline long double assoc_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double x)
+{ return boost::math::tr1::boost_assoc_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x); }
 inline float assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float x)
 { return boost::math::tr1::assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x); }
 inline long double assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double x)
@@ -671,6 +800,12 @@ inline typename tools::promote_args::type assoc_legendre BOOST_PREVENT_MACRO_
 { return boost::math::tr1::assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, static_cast::type>(x)); }
 
 // [5.2.1.3] beta function:
+inline float betaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
+{ return boost::math::tr1::boost_betaf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline double beta BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y)
+{ return boost::math::tr1::boost_beta BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
+inline long double betal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
+{ return boost::math::tr1::boost_betal BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline float beta BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y)
 { return boost::math::tr1::betaf BOOST_PREVENT_MACRO_SUBSTITUTION(x, y); }
 inline long double beta BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y)
@@ -680,6 +815,12 @@ inline typename tools::promote_args::type beta BOOST_PREVENT_MACRO_SUBST
 { return boost::math::tr1::beta BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x), static_cast::type>(y)); }
 
 // [5.2.1.4] (complete) elliptic integral of the first kind:
+inline float comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k)
+{ return boost::math::tr1::boost_comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(k); }
+inline double comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k)
+{ return boost::math::tr1::boost_comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(k); }
+inline long double comp_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k)
+{ return boost::math::tr1::boost_comp_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(k); }
 inline float comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(float k)
 { return boost::math::tr1::comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(k); }
 inline long double comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(long double k)
@@ -689,6 +830,12 @@ inline typename tools::promote_args::type comp_ellint_1 BOOST_PREVENT_MACRO_S
 { return boost::math::tr1::comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(k)); }
 
 // [5.2.1.5]  BOOST_PREVENT_MACRO_SUBSTITUTION(complete) elliptic integral of the second kind:
+inline float comp_ellint_2f(float k)
+{ return boost::math::tr1::boost_comp_ellint_2f(k); }
+inline double comp_ellint_2(double k)
+{ return boost::math::tr1::boost_comp_ellint_2(k); }
+inline long double comp_ellint_2l(long double k)
+{ return boost::math::tr1::boost_comp_ellint_2l(k); }
 inline float comp_ellint_2(float k)
 { return boost::math::tr1::comp_ellint_2f(k); }
 inline long double comp_ellint_2(long double k)
@@ -698,6 +845,12 @@ inline typename tools::promote_args::type comp_ellint_2(T k)
 { return boost::math::tr1::comp_ellint_2(static_cast::type> BOOST_PREVENT_MACRO_SUBSTITUTION(k)); }
 
 // [5.2.1.6]  BOOST_PREVENT_MACRO_SUBSTITUTION(complete) elliptic integral of the third kind:
+inline float comp_ellint_3f(float k, float nu)
+{ return boost::math::tr1::boost_comp_ellint_3f(k, nu); }
+inline double comp_ellint_3(double k, double nu)
+{ return boost::math::tr1::boost_comp_ellint_3(k, nu); }
+inline long double comp_ellint_3l(long double k, long double nu)
+{ return boost::math::tr1::boost_comp_ellint_3l(k, nu); }
 inline float comp_ellint_3(float k, float nu)
 { return boost::math::tr1::comp_ellint_3f(k, nu); }
 inline long double comp_ellint_3(long double k, long double nu)
@@ -714,6 +867,12 @@ long double conf_hypergl BOOST_PREVENT_MACRO_SUBSTITUTION(long double a, long do
 #endif
 
 // [5.2.1.8] regular modified cylindrical Bessel functions:
+inline float cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x)
+{ return boost::math::tr1::boost_cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
+inline double cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x)
+{ return boost::math::tr1::boost_cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
+inline long double cyl_bessel_il BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x)
+{ return boost::math::tr1::boost_cyl_bessel_il BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
 inline float cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x)
 { return boost::math::tr1::cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
 inline long double cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x)
@@ -723,6 +882,12 @@ inline typename tools::promote_args::type cyl_bessel_i BOOST_PREVENT_MAC
 { return boost::math::tr1::cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(nu), static_cast::type>(x)); }
 
 // [5.2.1.9] cylindrical Bessel functions (of the first kind):
+inline float cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x)
+{ return boost::math::tr1::boost_cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
+inline double cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x)
+{ return boost::math::tr1::boost_cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
+inline long double cyl_bessel_jl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x)
+{ return boost::math::tr1::boost_cyl_bessel_jl BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
 inline float cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x)
 { return boost::math::tr1::cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
 inline long double cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x)
@@ -732,6 +897,12 @@ inline typename tools::promote_args::type cyl_bessel_j BOOST_PREVENT_MAC
 { return boost::math::tr1::cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(nu), static_cast::type>(x)); }
 
 // [5.2.1.10] irregular modified cylindrical Bessel functions:
+inline float cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x)
+{ return boost::math::tr1::boost_cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
+inline double cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x)
+{ return boost::math::tr1::boost_cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
+inline long double cyl_bessel_kl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x)
+{ return boost::math::tr1::boost_cyl_bessel_kl BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
 inline float cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x)
 { return boost::math::tr1::cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
 inline long double cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x)
@@ -742,6 +913,12 @@ inline typename tools::promote_args::type cyl_bessel_k BOOST_PREVENT_MAC
 
 // [5.2.1.11] cylindrical Neumann functions;
 // cylindrical Bessel functions (of the second kind):
+inline float cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x)
+{ return boost::math::tr1::boost_cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
+inline double cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x)
+{ return boost::math::tr1::boost_cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
+inline long double cyl_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x)
+{ return boost::math::tr1::boost_cyl_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
 inline float cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x)
 { return boost::math::tr1::cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x); }
 inline long double cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x)
@@ -751,6 +928,12 @@ inline typename tools::promote_args::type cyl_neumann BOOST_PREVENT_MACR
 { return boost::math::tr1::cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(nu), static_cast::type>(x)); }
 
 // [5.2.1.12] (incomplete) elliptic integral of the first kind:
+inline float ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi)
+{ return boost::math::tr1::boost_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); }
+inline double ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi)
+{ return boost::math::tr1::boost_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); }
+inline long double ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi)
+{ return boost::math::tr1::boost_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); }
 inline float ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi)
 { return boost::math::tr1::ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); }
 inline long double ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi)
@@ -760,6 +943,12 @@ inline typename tools::promote_args::type ellint_1 BOOST_PREVENT_MACRO_S
 { return boost::math::tr1::ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(k), static_cast::type>(phi)); }
 
 // [5.2.1.13] (incomplete) elliptic integral of the second kind:
+inline float ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi)
+{ return boost::math::tr1::boost_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); }
+inline double ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi)
+{ return boost::math::tr1::boost_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); }
+inline long double ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi)
+{ return boost::math::tr1::boost_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); }
 inline float ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi)
 { return boost::math::tr1::ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi); }
 inline long double ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi)
@@ -769,6 +958,12 @@ inline typename tools::promote_args::type ellint_2 BOOST_PREVENT_MACRO_S
 { return boost::math::tr1::ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(k), static_cast::type>(phi)); }
 
 // [5.2.1.14] (incomplete) elliptic integral of the third kind:
+inline float ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu, float phi)
+{ return boost::math::tr1::boost_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi); }
+inline double ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu, double phi)
+{ return boost::math::tr1::boost_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi); }
+inline long double ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu, long double phi)
+{ return boost::math::tr1::boost_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi); }
 inline float ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu, float phi)
 { return boost::math::tr1::ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi); }
 inline long double ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu, long double phi)
@@ -778,6 +973,12 @@ inline typename tools::promote_args::type ellint_3 BOOST_PREVENT_MAC
 { return boost::math::tr1::ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(k), static_cast::type>(nu), static_cast::type>(phi)); }
 
 // [5.2.1.15] exponential integral:
+inline float expintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
+{ return boost::math::tr1::boost_expintf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline double expint BOOST_PREVENT_MACRO_SUBSTITUTION(double x)
+{ return boost::math::tr1::boost_expint BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
+inline long double expintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
+{ return boost::math::tr1::boost_expintl BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline float expint BOOST_PREVENT_MACRO_SUBSTITUTION(float x)
 { return boost::math::tr1::expintf BOOST_PREVENT_MACRO_SUBSTITUTION(x); }
 inline long double expint BOOST_PREVENT_MACRO_SUBSTITUTION(long double x)
@@ -787,6 +988,12 @@ inline typename tools::promote_args::type expint BOOST_PREVENT_MACRO_SUBSTITU
 { return boost::math::tr1::expint BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(x)); }
 
 // [5.2.1.16] Hermite polynomials:
+inline float hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x)
+{ return boost::math::tr1::boost_hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
+inline double hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x)
+{ return boost::math::tr1::boost_hermite BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
+inline long double hermitel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x)
+{ return boost::math::tr1::boost_hermitel BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
 inline float hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x)
 { return boost::math::tr1::hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
 inline long double hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x)
@@ -804,6 +1011,12 @@ long double x);
 #endif
 
 // [5.2.1.18] Laguerre polynomials:
+inline float laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x)
+{ return boost::math::tr1::boost_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
+inline double laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x)
+{ return boost::math::tr1::boost_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
+inline long double laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x)
+{ return boost::math::tr1::boost_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
 inline float laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x)
 { return boost::math::tr1::laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
 inline long double laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x)
@@ -813,6 +1026,12 @@ inline typename tools::promote_args::type laguerre BOOST_PREVENT_MACRO_SUBSTI
 { return boost::math::tr1::laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, static_cast::type>(x)); }
 
 // [5.2.1.19] Legendre polynomials:
+inline float legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, float x)
+{ return boost::math::tr1::boost_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, x); }
+inline double legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, double x)
+{ return boost::math::tr1::boost_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(l, x); }
+inline long double legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, long double x)
+{ return boost::math::tr1::boost_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(l, x); }
 inline float legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, float x)
 { return boost::math::tr1::legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, x); }
 inline long double legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, long double x)
@@ -822,6 +1041,12 @@ inline typename tools::promote_args::type legendre BOOST_PREVENT_MACRO_SUBSTI
 { return boost::math::tr1::legendre BOOST_PREVENT_MACRO_SUBSTITUTION(l, static_cast::type>(x)); }
 
 // [5.2.1.20] Riemann zeta function:
+inline float riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(float z)
+{ return boost::math::tr1::boost_riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(z); }
+inline double riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(double z)
+{ return boost::math::tr1::boost_riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(z); }
+inline long double riemann_zetal BOOST_PREVENT_MACRO_SUBSTITUTION(long double z)
+{ return boost::math::tr1::boost_riemann_zetal BOOST_PREVENT_MACRO_SUBSTITUTION(z); }
 inline float riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(float z)
 { return boost::math::tr1::riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(z); }
 inline long double riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(long double z)
@@ -831,6 +1056,12 @@ inline typename tools::promote_args::type riemann_zeta BOOST_PREVENT_MACRO_SU
 { return boost::math::tr1::riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(z)); }
 
 // [5.2.1.21] spherical Bessel functions (of the first kind):
+inline float sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x)
+{ return boost::math::tr1::boost_sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
+inline double sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x)
+{ return boost::math::tr1::boost_sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
+inline long double sph_bessell BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x)
+{ return boost::math::tr1::boost_sph_bessell BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
 inline float sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x)
 { return boost::math::tr1::sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
 inline long double sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x)
@@ -840,6 +1071,12 @@ inline typename tools::promote_args::type sph_bessel BOOST_PREVENT_MACRO_SUBS
 { return boost::math::tr1::sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(n, static_cast::type>(x)); }
 
 // [5.2.1.22] spherical associated Legendre functions:
+inline float sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float theta)
+{ return boost::math::tr1::boost_sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, theta); }
+inline double sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double theta)
+{ return boost::math::tr1::boost_sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, theta); }
+inline long double sph_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double theta)
+{ return boost::math::tr1::boost_sph_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, theta); }
 inline float sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float theta)
 { return boost::math::tr1::sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, theta); }
 inline long double sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double theta)
@@ -850,6 +1087,12 @@ inline typename tools::promote_args::type sph_legendre BOOST_PREVENT_MACRO_SU
 
 // [5.2.1.23] spherical Neumann functions;
 // spherical Bessel functions (of the second kind):
+inline float sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x)
+{ return boost::math::tr1::boost_sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
+inline double sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x)
+{ return boost::math::tr1::boost_sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
+inline long double sph_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x)
+{ return boost::math::tr1::boost_sph_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
 inline float sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x)
 { return boost::math::tr1::sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(n, x); }
 inline long double sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x)
@@ -860,6 +1103,808 @@ inline typename tools::promote_args::type sph_neumann BOOST_PREVENT_MACRO_SUB
 
 }}} // namespaces
 
+#else // __cplusplus
+
+// C99 Functions:
+#ifdef acosh
+#undef acosh
+#endif
+#define acosh boost_acosh
+#ifdef acoshf
+#undef acoshf
+#endif
+#define acoshf boost_acoshf
+#ifdef acoshl
+#undef acoshl
+#endif
+#define acoshl boost_acoshl
+
+#ifdef asinh
+#undef asinh
+#endif
+#define asinh boost_asinh
+#ifdef asinhf
+#undef asinhf
+#endif
+#define asinhf boost_asinhf
+#ifdef asinhl
+#undef asinhl
+#endif
+#define asinhl boost_asinhl
+
+#ifdef atanh
+#undef atanh
+#endif
+#define atanh boost_atanh
+#ifdef atanhf
+#undef atanhf
+#endif
+#define atanhf boost_atanhf
+#ifdef atanhl
+#undef atanhl
+#endif
+#define atanhl boost_atanhl
+
+#ifdef cbrt
+#undef cbrt
+#endif
+#define cbrt boost_cbrt
+#ifdef cbrtf
+#undef cbrtf
+#endif
+#define cbrtf boost_cbrtf
+#ifdef cbrtl
+#undef cbrtl
+#endif
+#define cbrtl boost_cbrtl
+
+#ifdef copysign
+#undef copysign
+#endif
+#define copysign boost_copysign
+#ifdef copysignf
+#undef copysignf
+#endif
+#define copysignf boost_copysignf
+#ifdef copysignl
+#undef copysignl
+#endif
+#define copysignl boost_copysignl
+
+#ifdef erf
+#undef erf
+#endif
+#define erf boost_erf
+#ifdef erff
+#undef erff
+#endif
+#define erff boost_erff
+#ifdef erfl
+#undef erfl
+#endif
+#define erfl boost_erfl
+
+#ifdef erfc
+#undef erfc
+#endif
+#define erfc boost_erfc
+#ifdef erfcf
+#undef erfcf
+#endif
+#define erfcf boost_erfcf
+#ifdef erfcl
+#undef erfcl
+#endif
+#define erfcl boost_erfcl
+
+#if 0
+#ifdef exp2
+#undef exp2
+#endif
+#define exp2 boost_exp2
+#ifdef exp2f
+#undef exp2f
+#endif
+#define exp2f boost_exp2f
+#ifdef exp2l
+#undef exp2l
+#endif
+#define exp2l boost_exp2l
+#endif
+
+#ifdef expm1
+#undef expm1
+#endif
+#define expm1 boost_expm1
+#ifdef expm1f
+#undef expm1f
+#endif
+#define expm1f boost_expm1f
+#ifdef expm1l
+#undef expm1l
+#endif
+#define expm1l boost_expm1l
+
+#if 0
+#ifdef fdim
+#undef fdim
+#endif
+#define fdim boost_fdim
+#ifdef fdimf
+#undef fdimf
+#endif
+#define fdimf boost_fdimf
+#ifdef fdiml
+#undef fdiml
+#endif
+#define fdiml boost_fdiml
+#ifdef acosh
+#undef acosh
+#endif
+#define fma boost_fma
+#ifdef fmaf
+#undef fmaf
+#endif
+#define fmaf boost_fmaf
+#ifdef fmal
+#undef fmal
+#endif
+#define fmal boost_fmal
+#endif
+
+#ifdef fmax
+#undef fmax
+#endif
+#define fmax boost_fmax
+#ifdef fmaxf
+#undef fmaxf
+#endif
+#define fmaxf boost_fmaxf
+#ifdef fmaxl
+#undef fmaxl
+#endif
+#define fmaxl boost_fmaxl
+
+#ifdef fmin
+#undef fmin
+#endif
+#define fmin boost_fmin
+#ifdef fminf
+#undef fminf
+#endif
+#define fminf boost_fminf
+#ifdef fminl
+#undef fminl
+#endif
+#define fminl boost_fminl
+
+#ifdef hypot
+#undef hypot
+#endif
+#define hypot boost_hypot
+#ifdef hypotf
+#undef hypotf
+#endif
+#define hypotf boost_hypotf
+#ifdef hypotl
+#undef hypotl
+#endif
+#define hypotl boost_hypotl
+
+#if 0
+#ifdef ilogb
+#undef ilogb
+#endif
+#define ilogb boost_ilogb
+#ifdef ilogbf
+#undef ilogbf
+#endif
+#define ilogbf boost_ilogbf
+#ifdef ilogbl
+#undef ilogbl
+#endif
+#define ilogbl boost_ilogbl
+#endif
+
+#ifdef lgamma
+#undef lgamma
+#endif
+#define lgamma boost_lgamma
+#ifdef lgammaf
+#undef lgammaf
+#endif
+#define lgammaf boost_lgammaf
+#ifdef lgammal
+#undef lgammal
+#endif
+#define lgammal boost_lgammal
+
+#ifdef BOOST_HAS_LONG_LONG
+#if 0
+#ifdef llrint
+#undef llrint
+#endif
+#define llrint boost_llrint
+#ifdef llrintf
+#undef llrintf
+#endif
+#define llrintf boost_llrintf
+#ifdef llrintl
+#undef llrintl
+#endif
+#define llrintl boost_llrintl
+#endif
+#ifdef llround
+#undef llround
+#endif
+#define llround boost_llround
+#ifdef llroundf
+#undef llroundf
+#endif
+#define llroundf boost_llroundf
+#ifdef llroundl
+#undef llroundl
+#endif
+#define llroundl boost_llroundl
+#endif
+
+#ifdef log1p
+#undef log1p
+#endif
+#define log1p boost_log1p
+#ifdef log1pf
+#undef log1pf
+#endif
+#define log1pf boost_log1pf
+#ifdef log1pl
+#undef log1pl
+#endif
+#define log1pl boost_log1pl
+
+#if 0
+#ifdef log2
+#undef log2
+#endif
+#define log2 boost_log2
+#ifdef log2f
+#undef log2f
+#endif
+#define log2f boost_log2f
+#ifdef log2l
+#undef log2l
+#endif
+#define log2l boost_log2l
+
+#ifdef logb
+#undef logb
+#endif
+#define logb boost_logb
+#ifdef logbf
+#undef logbf
+#endif
+#define logbf boost_logbf
+#ifdef logbl
+#undef logbl
+#endif
+#define logbl boost_logbl
+
+#ifdef lrint
+#undef lrint
+#endif
+#define lrint boost_lrint
+#ifdef lrintf
+#undef lrintf
+#endif
+#define lrintf boost_lrintf
+#ifdef lrintl
+#undef lrintl
+#endif
+#define lrintl boost_lrintl
+#endif
+
+#ifdef lround
+#undef lround
+#endif
+#define lround boost_lround
+#ifdef lroundf
+#undef lroundf
+#endif
+#define lroundf boost_lroundf
+#ifdef lroundl
+#undef lroundl
+#endif
+#define lroundl boost_lroundl
+
+#if 0
+#ifdef nan
+#undef nan
+#endif
+#define nan boost_nan
+#ifdef nanf
+#undef nanf
+#endif
+#define nanf boost_nanf
+#ifdef nanl
+#undef nanl
+#endif
+#define nanl boost_nanl
+
+#ifdef nearbyint
+#undef nearbyint
+#endif
+#define nearbyint boost_nearbyint
+#ifdef nearbyintf
+#undef nearbyintf
+#endif
+#define nearbyintf boost_nearbyintf
+#ifdef nearbyintl
+#undef nearbyintl
+#endif
+#define nearbyintl boost_nearbyintl
+#endif
+
+#ifdef nextafter
+#undef nextafter
+#endif
+#define nextafter boost_nextafter
+#ifdef nextafterf
+#undef nextafterf
+#endif
+#define nextafterf boost_nextafterf
+#ifdef nextafterl
+#undef nextafterl
+#endif
+#define nextafterl boost_nextafterl
+
+#ifdef nexttoward
+#undef nexttoward
+#endif
+#define nexttoward boost_nexttoward
+#ifdef nexttowardf
+#undef nexttowardf
+#endif
+#define nexttowardf boost_nexttowardf
+#ifdef nexttowardl
+#undef nexttowardl
+#endif
+#define nexttowardl boost_nexttowardl
+
+#if 0
+#ifdef remainder
+#undef remainder
+#endif
+#define remainder boost_remainder
+#ifdef remainderf
+#undef remainderf
+#endif
+#define remainderf boost_remainderf
+#ifdef remainderl
+#undef remainderl
+#endif
+#define remainderl boost_remainderl
+
+#ifdef remquo
+#undef remquo
+#endif
+#define remquo boost_remquo
+#ifdef remquof
+#undef remquof
+#endif
+#define remquof boost_remquof
+#ifdef remquol
+#undef remquol
+#endif
+#define remquol boost_remquol
+
+#ifdef rint
+#undef rint
+#endif
+#define rint boost_rint
+#ifdef rintf
+#undef rintf
+#endif
+#define rintf boost_rintf
+#ifdef rintl
+#undef rintl
+#endif
+#define rintl boost_rintl
+#endif
+
+#ifdef round
+#undef round
+#endif
+#define round boost_round
+#ifdef roundf
+#undef roundf
+#endif
+#define roundf boost_roundf
+#ifdef roundl
+#undef roundl
+#endif
+#define roundl boost_roundl
+
+#if 0
+#ifdef scalbln
+#undef scalbln
+#endif
+#define scalbln boost_scalbln
+#ifdef scalblnf
+#undef scalblnf
+#endif
+#define scalblnf boost_scalblnf
+#ifdef scalblnl
+#undef scalblnl
+#endif
+#define scalblnl boost_scalblnl
+
+#ifdef scalbn
+#undef scalbn
+#endif
+#define scalbn boost_scalbn
+#ifdef scalbnf
+#undef scalbnf
+#endif
+#define scalbnf boost_scalbnf
+#ifdef scalbnl
+#undef scalbnl
+#endif
+#define scalbnl boost_scalbnl
+#endif
+
+#ifdef tgamma
+#undef tgamma
+#endif
+#define tgamma boost_tgamma
+#ifdef tgammaf
+#undef tgammaf
+#endif
+#define tgammaf boost_tgammaf
+#ifdef tgammal
+#undef tgammal
+#endif
+#define tgammal boost_tgammal
+
+#ifdef trunc
+#undef trunc
+#endif
+#define trunc boost_trunc
+#ifdef truncf
+#undef truncf
+#endif
+#define truncf boost_truncf
+#ifdef truncl
+#undef truncl
+#endif
+#define truncl boost_truncl
+
+// [5.2.1.1] associated Laguerre polynomials:
+#ifdef assoc_laguerre
+#undef assoc_laguerre
+#endif
+#define assoc_laguerre boost_assoc_laguerre
+#ifdef assoc_laguerref
+#undef assoc_laguerref
+#endif
+#define assoc_laguerref boost_assoc_laguerref
+#ifdef assoc_laguerrel
+#undef assoc_laguerrel
+#endif
+#define assoc_laguerrel boost_assoc_laguerrel
+
+// [5.2.1.2] associated Legendre functions:
+#ifdef assoc_legendre
+#undef assoc_legendre
+#endif
+#define assoc_legendre boost_assoc_legendre
+#ifdef assoc_legendref
+#undef assoc_legendref
+#endif
+#define assoc_legendref boost_assoc_legendref
+#ifdef assoc_legendrel
+#undef assoc_legendrel
+#endif
+#define assoc_legendrel boost_assoc_legendrel
+
+// [5.2.1.3] beta function:
+#ifdef beta
+#undef beta
+#endif
+#define beta boost_beta
+#ifdef betaf
+#undef betaf
+#endif
+#define betaf boost_betaf
+#ifdef betal
+#undef betal
+#endif
+#define betal boost_betal
+
+// [5.2.1.4] (complete) elliptic integral of the first kind:
+#ifdef comp_ellint_1
+#undef comp_ellint_1
+#endif
+#define comp_ellint_1 boost_comp_ellint_1
+#ifdef comp_ellint_1f
+#undef comp_ellint_1f
+#endif
+#define comp_ellint_1f boost_comp_ellint_1f
+#ifdef comp_ellint_1l
+#undef comp_ellint_1l
+#endif
+#define comp_ellint_1l boost_comp_ellint_1l
+
+// [5.2.1.5] (complete) elliptic integral of the second kind:
+#ifdef comp_ellint_2
+#undef comp_ellint_2
+#endif
+#define comp_ellint_2 boost_comp_ellint_2
+#ifdef comp_ellint_2f
+#undef comp_ellint_2f
+#endif
+#define comp_ellint_2f boost_comp_ellint_2f
+#ifdef comp_ellint_2l
+#undef comp_ellint_2l
+#endif
+#define comp_ellint_2l boost_comp_ellint_2l
+
+// [5.2.1.6] (complete) elliptic integral of the third kind:
+#ifdef comp_ellint_3
+#undef comp_ellint_3
+#endif
+#define comp_ellint_3 boost_comp_ellint_3
+#ifdef comp_ellint_3f
+#undef comp_ellint_3f
+#endif
+#define comp_ellint_3f boost_comp_ellint_3f
+#ifdef comp_ellint_3l
+#undef comp_ellint_3l
+#endif
+#define comp_ellint_3l boost_comp_ellint_3l
+
+#if 0
+// [5.2.1.7] confluent hypergeometric functions:
+#ifdef conf_hyper
+#undef conf_hyper
+#endif
+#define conf_hyper boost_conf_hyper
+#ifdef conf_hyperf
+#undef conf_hyperf
+#endif
+#define conf_hyperf boost_conf_hyperf
+#ifdef conf_hyperl
+#undef conf_hyperl
+#endif
+#define conf_hyperl boost_conf_hyperl
+#endif
+
+// [5.2.1.8] regular modified cylindrical Bessel functions:
+#ifdef cyl_bessel_i
+#undef cyl_bessel_i
+#endif
+#define cyl_bessel_i boost_cyl_bessel_i
+#ifdef cyl_bessel_if
+#undef cyl_bessel_if
+#endif
+#define cyl_bessel_if boost_cyl_bessel_if
+#ifdef cyl_bessel_il
+#undef cyl_bessel_il
+#endif
+#define cyl_bessel_il boost_cyl_bessel_il
+
+// [5.2.1.9] cylindrical Bessel functions (of the first kind):
+#ifdef cyl_bessel_j
+#undef cyl_bessel_j
+#endif
+#define cyl_bessel_j boost_cyl_bessel_j
+#ifdef cyl_bessel_jf
+#undef cyl_bessel_jf
+#endif
+#define cyl_bessel_jf boost_cyl_bessel_jf
+#ifdef cyl_bessel_jl
+#undef cyl_bessel_jl
+#endif
+#define cyl_bessel_jl boost_cyl_bessel_jl
+
+// [5.2.1.10] irregular modified cylindrical Bessel functions:
+#ifdef cyl_bessel_k
+#undef cyl_bessel_k
+#endif
+#define cyl_bessel_k boost_cyl_bessel_k
+#ifdef cyl_bessel_kf
+#undef cyl_bessel_kf
+#endif
+#define cyl_bessel_kf boost_cyl_bessel_kf
+#ifdef cyl_bessel_kl
+#undef cyl_bessel_kl
+#endif
+#define cyl_bessel_kl boost_cyl_bessel_kl
+
+// [5.2.1.11] cylindrical Neumann functions BOOST_MATH_C99_THROW_SPEC;
+// cylindrical Bessel functions (of the second kind):
+#ifdef cyl_neumann
+#undef cyl_neumann
+#endif
+#define cyl_neumann boost_cyl_neumann
+#ifdef cyl_neumannf
+#undef cyl_neumannf
+#endif
+#define cyl_neumannf boost_cyl_neumannf
+#ifdef cyl_neumannl
+#undef cyl_neumannl
+#endif
+#define cyl_neumannl boost_cyl_neumannl
+
+// [5.2.1.12] (incomplete) elliptic integral of the first kind:
+#ifdef ellint_1
+#undef ellint_1
+#endif
+#define ellint_1 boost_ellint_1
+#ifdef ellint_1f
+#undef ellint_1f
+#endif
+#define ellint_1f boost_ellint_1f
+#ifdef ellint_1l
+#undef ellint_1l
+#endif
+#define ellint_1l boost_ellint_1l
+
+// [5.2.1.13] (incomplete) elliptic integral of the second kind:
+#ifdef ellint_2
+#undef ellint_2
+#endif
+#define ellint_2 boost_ellint_2
+#ifdef ellint_2f
+#undef ellint_2f
+#endif
+#define ellint_2f boost_ellint_2f
+#ifdef ellint_2l
+#undef ellint_2l
+#endif
+#define ellint_2l boost_ellint_2l
+
+// [5.2.1.14] (incomplete) elliptic integral of the third kind:
+#ifdef ellint_3
+#undef ellint_3
+#endif
+#define ellint_3 boost_ellint_3
+#ifdef ellint_3f
+#undef ellint_3f
+#endif
+#define ellint_3f boost_ellint_3f
+#ifdef ellint_3l
+#undef ellint_3l
+#endif
+#define ellint_3l boost_ellint_3l
+
+// [5.2.1.15] exponential integral:
+#ifdef expint
+#undef expint
+#endif
+#define expint boost_expint
+#ifdef expintf
+#undef expintf
+#endif
+#define expintf boost_expintf
+#ifdef expintl
+#undef expintl
+#endif
+#define expintl boost_expintl
+
+// [5.2.1.16] Hermite polynomials:
+#ifdef hermite
+#undef hermite
+#endif
+#define hermite boost_hermite
+#ifdef hermitef
+#undef hermitef
+#endif
+#define hermitef boost_hermitef
+#ifdef hermitel
+#undef hermitel
+#endif
+#define hermitel boost_hermitel
+
+#if 0
+// [5.2.1.17] hypergeometric functions:
+#ifdef hyperg
+#undef hyperg
+#endif
+#define hyperg boost_hyperg
+#ifdef hypergf
+#undef hypergf
+#endif
+#define hypergf boost_hypergf
+#ifdef hypergl
+#undef hypergl
+#endif
+#define hypergl boost_hypergl
+#endif
+
+// [5.2.1.18] Laguerre polynomials:
+#ifdef laguerre
+#undef laguerre
+#endif
+#define laguerre boost_laguerre
+#ifdef laguerref
+#undef laguerref
+#endif
+#define laguerref boost_laguerref
+#ifdef laguerrel
+#undef laguerrel
+#endif
+#define laguerrel boost_laguerrel
+
+// [5.2.1.19] Legendre polynomials:
+#ifdef legendre
+#undef legendre
+#endif
+#define legendre boost_legendre
+#ifdef legendref
+#undef legendref
+#endif
+#define legendref boost_legendref
+#ifdef legendrel
+#undef legendrel
+#endif
+#define legendrel boost_legendrel
+
+// [5.2.1.20] Riemann zeta function:
+#ifdef riemann_zeta
+#undef riemann_zeta
+#endif
+#define riemann_zeta boost_riemann_zeta
+#ifdef riemann_zetaf
+#undef riemann_zetaf
+#endif
+#define riemann_zetaf boost_riemann_zetaf
+#ifdef riemann_zetal
+#undef riemann_zetal
+#endif
+#define riemann_zetal boost_riemann_zetal
+
+// [5.2.1.21] spherical Bessel functions (of the first kind):
+#ifdef sph_bessel
+#undef sph_bessel
+#endif
+#define sph_bessel boost_sph_bessel
+#ifdef sph_besself
+#undef sph_besself
+#endif
+#define sph_besself boost_sph_besself
+#ifdef sph_bessell
+#undef sph_bessell
+#endif
+#define sph_bessell boost_sph_bessell
+
+// [5.2.1.22] spherical associated Legendre functions:
+#ifdef sph_legendre
+#undef sph_legendre
+#endif
+#define sph_legendre boost_sph_legendre
+#ifdef sph_legendref
+#undef sph_legendref
+#endif
+#define sph_legendref boost_sph_legendref
+#ifdef sph_legendrel
+#undef sph_legendrel
+#endif
+#define sph_legendrel boost_sph_legendrel
+
+// [5.2.1.23] spherical Neumann functions BOOST_MATH_C99_THROW_SPEC;
+// spherical Bessel functions (of the second kind):
+#ifdef sph_neumann
+#undef sph_neumann
+#endif
+#define sph_neumann boost_sph_neumann
+#ifdef sph_neumannf
+#undef sph_neumannf
+#endif
+#define sph_neumannf boost_sph_neumannf
+#ifdef sph_neumannl
+#undef sph_neumannl
+#endif
+#define sph_neumannl boost_sph_neumannl
+
 #endif // __cplusplus
 
 #endif // BOOST_MATH_TR1_HPP
diff --git a/src/tr1/acosh.cpp b/src/tr1/acosh.cpp
index ff2047dab..67fd9a6bd 100644
--- a/src/tr1/acosh.cpp
+++ b/src/tr1/acosh.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL acosh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_acosh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::acosh BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/acoshf.cpp b/src/tr1/acoshf.cpp
index 040539e38..4b7c8d84a 100644
--- a/src/tr1/acoshf.cpp
+++ b/src/tr1/acoshf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_acoshf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::acosh BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/acoshl.cpp b/src/tr1/acoshl.cpp
index 9861002f7..7e20dab9c 100644
--- a/src/tr1/acoshl.cpp
+++ b/src/tr1/acoshl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL acoshl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_acoshl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::acosh BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/asinh.cpp b/src/tr1/asinh.cpp
index 32449fe12..5d1cc41d2 100644
--- a/src/tr1/asinh.cpp
+++ b/src/tr1/asinh.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL asinh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_asinh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::asinh BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/asinhf.cpp b/src/tr1/asinhf.cpp
index 41083184a..3ead37855 100644
--- a/src/tr1/asinhf.cpp
+++ b/src/tr1/asinhf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_asinhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::asinh BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/asinhl.cpp b/src/tr1/asinhl.cpp
index 9d1c78f5e..e49b4d98a 100644
--- a/src/tr1/asinhl.cpp
+++ b/src/tr1/asinhl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_asinhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::asinh BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/assoc_laguerre.cpp b/src/tr1/assoc_laguerre.cpp
index d8d8ed4fb..ea674d1a0 100644
--- a/src/tr1/assoc_laguerre.cpp
+++ b/src/tr1/assoc_laguerre.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_assoc_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x);
 }
diff --git a/src/tr1/assoc_laguerref.cpp b/src/tr1/assoc_laguerref.cpp
index 1f38c4f5d..563a16001 100644
--- a/src/tr1/assoc_laguerref.cpp
+++ b/src/tr1/assoc_laguerref.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_assoc_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x);
 }
diff --git a/src/tr1/assoc_laguerrel.cpp b/src/tr1/assoc_laguerrel.cpp
index 90aa6b666..e261cf371 100644
--- a/src/tr1/assoc_laguerrel.cpp
+++ b/src/tr1/assoc_laguerrel.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL assoc_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_assoc_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x);
 }
diff --git a/src/tr1/assoc_legendre.cpp b/src/tr1/assoc_legendre.cpp
index ed086b110..78a17f987 100644
--- a/src/tr1/assoc_legendre.cpp
+++ b/src/tr1/assoc_legendre.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_assoc_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return (m&1 ? -1 : 1) * c_policies::legendre_p BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x);
 }
diff --git a/src/tr1/assoc_legendref.cpp b/src/tr1/assoc_legendref.cpp
index 1ecf154fd..70665d4ef 100644
--- a/src/tr1/assoc_legendref.cpp
+++ b/src/tr1/assoc_legendref.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_assoc_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return (m&1 ? -1 : 1) * c_policies::legendre_p BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x);
 }
diff --git a/src/tr1/assoc_legendrel.cpp b/src/tr1/assoc_legendrel.cpp
index 65d94e2bf..318a69a9a 100644
--- a/src/tr1/assoc_legendrel.cpp
+++ b/src/tr1/assoc_legendrel.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL assoc_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_assoc_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned l, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return (m&1 ? -1 : 1) * c_policies::legendre_p BOOST_PREVENT_MACRO_SUBSTITUTION(l, m, x);
 }
diff --git a/src/tr1/atanh.cpp b/src/tr1/atanh.cpp
index 208627233..d73383cb8 100644
--- a/src/tr1/atanh.cpp
+++ b/src/tr1/atanh.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL atanh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_atanh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::atanh BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/atanhf.cpp b/src/tr1/atanhf.cpp
index 4dcad29d0..210ad4d96 100644
--- a/src/tr1/atanhf.cpp
+++ b/src/tr1/atanhf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_atanhf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::atanh BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/atanhl.cpp b/src/tr1/atanhl.cpp
index 63baa868a..eb13be3cb 100644
--- a/src/tr1/atanhl.cpp
+++ b/src/tr1/atanhl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL atanhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_atanhl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::atanh BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/beta.cpp b/src/tr1/beta.cpp
index 71d511fe4..0922c1d97 100644
--- a/src/tr1/beta.cpp
+++ b/src/tr1/beta.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL beta BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_beta BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::beta BOOST_PREVENT_MACRO_SUBSTITUTION(x, y);
 }
diff --git a/src/tr1/betaf.cpp b/src/tr1/betaf.cpp
index 221973123..31ac4798c 100644
--- a/src/tr1/betaf.cpp
+++ b/src/tr1/betaf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL betaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_betaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::beta BOOST_PREVENT_MACRO_SUBSTITUTION(x, y);
 }
diff --git a/src/tr1/betal.cpp b/src/tr1/betal.cpp
index 62ba7af6f..024c92d4c 100644
--- a/src/tr1/betal.cpp
+++ b/src/tr1/betal.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL betal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_betal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::beta BOOST_PREVENT_MACRO_SUBSTITUTION(x, y);
 }
diff --git a/src/tr1/cbrt.cpp b/src/tr1/cbrt.cpp
index b9a3d6a46..2121c4584 100644
--- a/src/tr1/cbrt.cpp
+++ b/src/tr1/cbrt.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/cbrtf.cpp b/src/tr1/cbrtf.cpp
index 194a4f40a..c8dd94f72 100644
--- a/src/tr1/cbrtf.cpp
+++ b/src/tr1/cbrtf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_cbrtf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/cbrtl.cpp b/src/tr1/cbrtl.cpp
index 1570ebc7e..085a6b4a6 100644
--- a/src/tr1/cbrtl.cpp
+++ b/src/tr1/cbrtl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL cbrtl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_cbrtl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cbrt BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/comp_ellint_1.cpp b/src/tr1/comp_ellint_1.cpp
index 995373de4..fe2dab4b2 100644
--- a/src/tr1/comp_ellint_1.cpp
+++ b/src/tr1/comp_ellint_1.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/comp_ellint_1f.cpp b/src/tr1/comp_ellint_1f.cpp
index 7f5b98bb7..2da9690c8 100644
--- a/src/tr1/comp_ellint_1f.cpp
+++ b/src/tr1/comp_ellint_1f.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_comp_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/comp_ellint_1l.cpp b/src/tr1/comp_ellint_1l.cpp
index d9d33b297..8542c289f 100644
--- a/src/tr1/comp_ellint_1l.cpp
+++ b/src/tr1/comp_ellint_1l.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL comp_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_comp_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/comp_ellint_2.cpp b/src/tr1/comp_ellint_2.cpp
index 196b83053..d31fcfa65 100644
--- a/src/tr1/comp_ellint_2.cpp
+++ b/src/tr1/comp_ellint_2.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL comp_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_comp_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/comp_ellint_2f.cpp b/src/tr1/comp_ellint_2f.cpp
index 72c41fbdd..992726058 100644
--- a/src/tr1/comp_ellint_2f.cpp
+++ b/src/tr1/comp_ellint_2f.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL comp_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_comp_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/comp_ellint_2l.cpp b/src/tr1/comp_ellint_2l.cpp
index d6953191a..44da58870 100644
--- a/src/tr1/comp_ellint_2l.cpp
+++ b/src/tr1/comp_ellint_2l.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL comp_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_comp_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/comp_ellint_3.cpp b/src/tr1/comp_ellint_3.cpp
index 0f34cbc3d..dc0704fb0 100644
--- a/src/tr1/comp_ellint_3.cpp
+++ b/src/tr1/comp_ellint_3.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL comp_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_comp_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu);
 }
diff --git a/src/tr1/comp_ellint_3f.cpp b/src/tr1/comp_ellint_3f.cpp
index d8b86ebc6..b72431b16 100644
--- a/src/tr1/comp_ellint_3f.cpp
+++ b/src/tr1/comp_ellint_3f.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL comp_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_comp_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu);
 }
diff --git a/src/tr1/comp_ellint_3l.cpp b/src/tr1/comp_ellint_3l.cpp
index 349e55bde..cc976a6ca 100644
--- a/src/tr1/comp_ellint_3l.cpp
+++ b/src/tr1/comp_ellint_3l.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL comp_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_comp_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu);
 }
diff --git a/src/tr1/copysign.cpp b/src/tr1/copysign.cpp
index 67f956e7e..1bd65fc1c 100644
--- a/src/tr1/copysign.cpp
+++ b/src/tr1/copysign.cpp
@@ -11,13 +11,10 @@
 #include 
 #include "c_policy.hpp"
 
-#if !(defined(__HP_aCC) && (__HP_aCC >= 61000))
-
-extern "C" double BOOST_MATH_TR1_DECL copysign BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_copysign BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC
 {
    return boost::math::copysign BOOST_PREVENT_MACRO_SUBSTITUTION(x, y);
 }
 
-#endif
 
 
diff --git a/src/tr1/copysignf.cpp b/src/tr1/copysignf.cpp
index 5f05b906b..fa078c48e 100644
--- a/src/tr1/copysignf.cpp
+++ b/src/tr1/copysignf.cpp
@@ -11,13 +11,10 @@
 #include 
 #include "c_policy.hpp"
 
-#if !(defined(__HP_aCC) && (__HP_aCC >= 61000))
-
-extern "C" float BOOST_MATH_TR1_DECL copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_copysignf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC
 {
    return boost::math::copysign BOOST_PREVENT_MACRO_SUBSTITUTION(x, y);
 }
 
-#endif
 
 
diff --git a/src/tr1/copysignl.cpp b/src/tr1/copysignl.cpp
index 617f48ce5..624a4f749 100644
--- a/src/tr1/copysignl.cpp
+++ b/src/tr1/copysignl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL copysignl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_copysignl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
 {
    return boost::math::copysign BOOST_PREVENT_MACRO_SUBSTITUTION(x, y);
 }
diff --git a/src/tr1/cyl_bessel_i.cpp b/src/tr1/cyl_bessel_i.cpp
index 60ad47a89..65138aa3c 100644
--- a/src/tr1/cyl_bessel_i.cpp
+++ b/src/tr1/cyl_bessel_i.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_bessel_if.cpp b/src/tr1/cyl_bessel_if.cpp
index 2eec2486b..551cd3240 100644
--- a/src/tr1/cyl_bessel_if.cpp
+++ b/src/tr1/cyl_bessel_if.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_cyl_bessel_if BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_bessel_il.cpp b/src/tr1/cyl_bessel_il.cpp
index 8e62b6954..6c3bae983 100644
--- a/src/tr1/cyl_bessel_il.cpp
+++ b/src/tr1/cyl_bessel_il.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL cyl_bessel_il BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_cyl_bessel_il BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_bessel_i BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_bessel_j.cpp b/src/tr1/cyl_bessel_j.cpp
index bbe8e47bd..69978ac1e 100644
--- a/src/tr1/cyl_bessel_j.cpp
+++ b/src/tr1/cyl_bessel_j.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_bessel_jf.cpp b/src/tr1/cyl_bessel_jf.cpp
index 418ee3b33..a5c572c9b 100644
--- a/src/tr1/cyl_bessel_jf.cpp
+++ b/src/tr1/cyl_bessel_jf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_cyl_bessel_jf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_bessel_jl.cpp b/src/tr1/cyl_bessel_jl.cpp
index ef49f6613..03c2cacfa 100644
--- a/src/tr1/cyl_bessel_jl.cpp
+++ b/src/tr1/cyl_bessel_jl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL cyl_bessel_jl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_cyl_bessel_jl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_bessel_j BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_bessel_k.cpp b/src/tr1/cyl_bessel_k.cpp
index c4e33dc28..08861dacd 100644
--- a/src/tr1/cyl_bessel_k.cpp
+++ b/src/tr1/cyl_bessel_k.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_bessel_kf.cpp b/src/tr1/cyl_bessel_kf.cpp
index ea766d3ce..ffa94501e 100644
--- a/src/tr1/cyl_bessel_kf.cpp
+++ b/src/tr1/cyl_bessel_kf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_cyl_bessel_kf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_bessel_kl.cpp b/src/tr1/cyl_bessel_kl.cpp
index 7248f1732..712624101 100644
--- a/src/tr1/cyl_bessel_kl.cpp
+++ b/src/tr1/cyl_bessel_kl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL cyl_bessel_kl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_cyl_bessel_kl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_bessel_k BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_neumann.cpp b/src/tr1/cyl_neumann.cpp
index 71c584191..7cc3868c1 100644
--- a/src/tr1/cyl_neumann.cpp
+++ b/src/tr1/cyl_neumann.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(double nu, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_neumannf.cpp b/src/tr1/cyl_neumannf.cpp
index e68c10282..3fd9e3d2e 100644
--- a/src/tr1/cyl_neumannf.cpp
+++ b/src/tr1/cyl_neumannf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_cyl_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(float nu, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/cyl_neumannl.cpp b/src/tr1/cyl_neumannl.cpp
index f58f43f66..373efc673 100644
--- a/src/tr1/cyl_neumannl.cpp
+++ b/src/tr1/cyl_neumannl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL cyl_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_cyl_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(long double nu, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::cyl_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(nu, x);
 }
diff --git a/src/tr1/ellint_1.cpp b/src/tr1/ellint_1.cpp
index 2307cb40c..d0c337266 100644
--- a/src/tr1/ellint_1.cpp
+++ b/src/tr1/ellint_1.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi);
 }
diff --git a/src/tr1/ellint_1f.cpp b/src/tr1/ellint_1f.cpp
index 68f190695..e04b4aa76 100644
--- a/src/tr1/ellint_1f.cpp
+++ b/src/tr1/ellint_1f.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_ellint_1f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi);
 }
diff --git a/src/tr1/ellint_1l.cpp b/src/tr1/ellint_1l.cpp
index cff1b8663..b670f9597 100644
--- a/src/tr1/ellint_1l.cpp
+++ b/src/tr1/ellint_1l.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_ellint_1l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi);
 }
diff --git a/src/tr1/ellint_2.cpp b/src/tr1/ellint_2.cpp
index 720380e40..22078bf39 100644
--- a/src/tr1/ellint_2.cpp
+++ b/src/tr1/ellint_2.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double phi) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi);
 }
diff --git a/src/tr1/ellint_2f.cpp b/src/tr1/ellint_2f.cpp
index 1da356225..8841579cb 100644
--- a/src/tr1/ellint_2f.cpp
+++ b/src/tr1/ellint_2f.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_ellint_2f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float phi) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi);
 }
diff --git a/src/tr1/ellint_2l.cpp b/src/tr1/ellint_2l.cpp
index 50f6d446b..8ea536074 100644
--- a/src/tr1/ellint_2l.cpp
+++ b/src/tr1/ellint_2l.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_ellint_2l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double phi) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_2 BOOST_PREVENT_MACRO_SUBSTITUTION(k, phi);
 }
diff --git a/src/tr1/ellint_3.cpp b/src/tr1/ellint_3.cpp
index 9179cdaed..4836071ae 100644
--- a/src/tr1/ellint_3.cpp
+++ b/src/tr1/ellint_3.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu, double phi) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(double k, double nu, double phi) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi);
 }
diff --git a/src/tr1/ellint_3f.cpp b/src/tr1/ellint_3f.cpp
index 40c92acdf..e876184b5 100644
--- a/src/tr1/ellint_3f.cpp
+++ b/src/tr1/ellint_3f.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu, float phi) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_ellint_3f BOOST_PREVENT_MACRO_SUBSTITUTION(float k, float nu, float phi) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi);
 }
diff --git a/src/tr1/ellint_3l.cpp b/src/tr1/ellint_3l.cpp
index 45349bb0d..999a8f79e 100644
--- a/src/tr1/ellint_3l.cpp
+++ b/src/tr1/ellint_3l.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu, long double phi) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_ellint_3l BOOST_PREVENT_MACRO_SUBSTITUTION(long double k, long double nu, long double phi) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::ellint_3 BOOST_PREVENT_MACRO_SUBSTITUTION(k, nu, phi);
 }
diff --git a/src/tr1/erf.cpp b/src/tr1/erf.cpp
index 4e29d75b0..d61f7f3ff 100644
--- a/src/tr1/erf.cpp
+++ b/src/tr1/erf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL erf BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_erf BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::erf BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/erfc.cpp b/src/tr1/erfc.cpp
index 3ee7b258e..dc6ab9204 100644
--- a/src/tr1/erfc.cpp
+++ b/src/tr1/erfc.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL erfc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_erfc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::erfc BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/erfcf.cpp b/src/tr1/erfcf.cpp
index 8360d79c1..c0d613aa2 100644
--- a/src/tr1/erfcf.cpp
+++ b/src/tr1/erfcf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_erfcf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::erfc BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/erfcl.cpp b/src/tr1/erfcl.cpp
index 7515b5b0a..e3eade3d0 100644
--- a/src/tr1/erfcl.cpp
+++ b/src/tr1/erfcl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL erfcl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_erfcl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::erfc BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/erff.cpp b/src/tr1/erff.cpp
index 628838bbe..2c112d171 100644
--- a/src/tr1/erff.cpp
+++ b/src/tr1/erff.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL erff BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_erff BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::erf BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/erfl.cpp b/src/tr1/erfl.cpp
index 9a362293f..084ca2b61 100644
--- a/src/tr1/erfl.cpp
+++ b/src/tr1/erfl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL erfl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_erfl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::erf BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/expint.cpp b/src/tr1/expint.cpp
index 2ff05fe01..0e7d938fe 100644
--- a/src/tr1/expint.cpp
+++ b/src/tr1/expint.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL expint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_expint BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::expint BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/expintf.cpp b/src/tr1/expintf.cpp
index 2db75615f..387ca7a8d 100644
--- a/src/tr1/expintf.cpp
+++ b/src/tr1/expintf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL expintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_expintf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::expint BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/expintl.cpp b/src/tr1/expintl.cpp
index 92df43950..a86516982 100644
--- a/src/tr1/expintl.cpp
+++ b/src/tr1/expintl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL expintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_expintl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::expint BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/fmax.cpp b/src/tr1/fmax.cpp
index 53abc0861..c0f28b845 100644
--- a/src/tr1/fmax.cpp
+++ b/src/tr1/fmax.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL fmax BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_fmax BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC
 {
    if((boost::math::isnan)(x))
       return y;
diff --git a/src/tr1/fmaxf.cpp b/src/tr1/fmaxf.cpp
index f64110a81..856a929bd 100644
--- a/src/tr1/fmaxf.cpp
+++ b/src/tr1/fmaxf.cpp
@@ -11,9 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-#if !(defined(__HP_aCC) && (__HP_aCC >= 61000))
-
-extern "C" float BOOST_MATH_TR1_DECL fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC
 {
    if((boost::math::isnan)(x))
       return y;
@@ -22,6 +20,5 @@ extern "C" float BOOST_MATH_TR1_DECL fmaxf BOOST_PREVENT_MACRO_SUBSTITUTION(floa
    return (std::max)(x, y);
 }
 
-#endif
 
 
diff --git a/src/tr1/fmaxl.cpp b/src/tr1/fmaxl.cpp
index b5df20646..4b5793e68 100644
--- a/src/tr1/fmaxl.cpp
+++ b/src/tr1/fmaxl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL fmaxl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_fmaxl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
 {
    if((boost::math::isnan)(x))
       return y;
diff --git a/src/tr1/fmin.cpp b/src/tr1/fmin.cpp
index e5f9f8cd1..afcb90a54 100644
--- a/src/tr1/fmin.cpp
+++ b/src/tr1/fmin.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL fmin BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_fmin BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC
 {
    if((boost::math::isnan)(x))
       return y;
diff --git a/src/tr1/fminf.cpp b/src/tr1/fminf.cpp
index 66b3c4bee..5332d780f 100644
--- a/src/tr1/fminf.cpp
+++ b/src/tr1/fminf.cpp
@@ -11,9 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-#if !(defined(__HP_aCC) && (__HP_aCC >= 61000))
-
-extern "C" float BOOST_MATH_TR1_DECL fminf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_fminf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC
 {
    if((boost::math::isnan)(x))
       return y;
@@ -22,6 +20,5 @@ extern "C" float BOOST_MATH_TR1_DECL fminf BOOST_PREVENT_MACRO_SUBSTITUTION(floa
    return (std::min)(x, y);
 }
 
-#endif
 
 
diff --git a/src/tr1/fminl.cpp b/src/tr1/fminl.cpp
index c98e49e68..4b985fce9 100644
--- a/src/tr1/fminl.cpp
+++ b/src/tr1/fminl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL fminl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_fminl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
 {
    if((boost::math::isnan)(x))
       return y;
diff --git a/src/tr1/hermite.cpp b/src/tr1/hermite.cpp
index 63841af83..0fe30fb5c 100644
--- a/src/tr1/hermite.cpp
+++ b/src/tr1/hermite.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_hermite BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::hermite BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/hermitef.cpp b/src/tr1/hermitef.cpp
index 3bbcde736..3648c05e6 100644
--- a/src/tr1/hermitef.cpp
+++ b/src/tr1/hermitef.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_hermitef BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::hermite BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/hermitel.cpp b/src/tr1/hermitel.cpp
index 5f5200629..55befe960 100644
--- a/src/tr1/hermitel.cpp
+++ b/src/tr1/hermitel.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL hermitel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_hermitel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::hermite BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/hypot.cpp b/src/tr1/hypot.cpp
index e67597946..9ed1f7a10 100644
--- a/src/tr1/hypot.cpp
+++ b/src/tr1/hypot.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" double BOOST_MATH_TR1_DECL hypot BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_hypot BOOST_PREVENT_MACRO_SUBSTITUTION(double x, double y) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::hypot BOOST_PREVENT_MACRO_SUBSTITUTION(x, y);
 }
diff --git a/src/tr1/hypotf.cpp b/src/tr1/hypotf.cpp
index f22a3387e..79239bfd3 100644
--- a/src/tr1/hypotf.cpp
+++ b/src/tr1/hypotf.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" float BOOST_MATH_TR1_DECL hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_hypotf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, float y) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::hypot BOOST_PREVENT_MACRO_SUBSTITUTION(x, y);
 }
diff --git a/src/tr1/hypotl.cpp b/src/tr1/hypotl.cpp
index 6ed653ce0..ee1627572 100644
--- a/src/tr1/hypotl.cpp
+++ b/src/tr1/hypotl.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" long double BOOST_MATH_TR1_DECL hypotl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_hypotl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::hypot BOOST_PREVENT_MACRO_SUBSTITUTION(x, y);
 }
diff --git a/src/tr1/laguerre.cpp b/src/tr1/laguerre.cpp
index eac7ebaff..4237c3f8e 100644
--- a/src/tr1/laguerre.cpp
+++ b/src/tr1/laguerre.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/laguerref.cpp b/src/tr1/laguerref.cpp
index 3e1db9be4..843e6e2bb 100644
--- a/src/tr1/laguerref.cpp
+++ b/src/tr1/laguerref.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_laguerref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/laguerrel.cpp b/src/tr1/laguerrel.cpp
index b3b3d114e..76b35342f 100644
--- a/src/tr1/laguerrel.cpp
+++ b/src/tr1/laguerrel.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_laguerrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::laguerre BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/legendre.cpp b/src/tr1/legendre.cpp
index 8ad6b77c9..d5c0e775d 100644
--- a/src/tr1/legendre.cpp
+++ b/src/tr1/legendre.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::legendre_p BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/legendref.cpp b/src/tr1/legendref.cpp
index bb30621fa..908362711 100644
--- a/src/tr1/legendref.cpp
+++ b/src/tr1/legendref.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::legendre_p BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/legendrel.cpp b/src/tr1/legendrel.cpp
index 9995e5d11..491b3f2a3 100644
--- a/src/tr1/legendrel.cpp
+++ b/src/tr1/legendrel.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::legendre_p BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/lgamma.cpp b/src/tr1/lgamma.cpp
index b087f2215..e3c33be5d 100644
--- a/src/tr1/lgamma.cpp
+++ b/src/tr1/lgamma.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" double BOOST_MATH_TR1_DECL lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/lgammaf.cpp b/src/tr1/lgammaf.cpp
index 1828f0b6d..a58040c76 100644
--- a/src/tr1/lgammaf.cpp
+++ b/src/tr1/lgammaf.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" float BOOST_MATH_TR1_DECL lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_lgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/lgammal.cpp b/src/tr1/lgammal.cpp
index cec185bc4..611656bf3 100644
--- a/src/tr1/lgammal.cpp
+++ b/src/tr1/lgammal.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" long double BOOST_MATH_TR1_DECL lgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_lgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::lgamma BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/llround.cpp b/src/tr1/llround.cpp
index 712c96967..e4212d119 100644
--- a/src/tr1/llround.cpp
+++ b/src/tr1/llround.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" boost::long_long_type BOOST_MATH_TR1_DECL llround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" boost::long_long_type BOOST_MATH_TR1_DECL boost_llround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::llround BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/llroundf.cpp b/src/tr1/llroundf.cpp
index 2107a1b81..c7dd06ee7 100644
--- a/src/tr1/llroundf.cpp
+++ b/src/tr1/llroundf.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" boost::long_long_type BOOST_MATH_TR1_DECL llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" boost::long_long_type BOOST_MATH_TR1_DECL boost_llroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::llround BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/llroundl.cpp b/src/tr1/llroundl.cpp
index 0ae318691..fb9bf60bf 100644
--- a/src/tr1/llroundl.cpp
+++ b/src/tr1/llroundl.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" boost::long_long_type BOOST_MATH_TR1_DECL llroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" boost::long_long_type BOOST_MATH_TR1_DECL boost_llroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::llround BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/lround.cpp b/src/tr1/lround.cpp
index a21396c12..ae42dba3c 100644
--- a/src/tr1/lround.cpp
+++ b/src/tr1/lround.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" long BOOST_MATH_TR1_DECL lround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long BOOST_MATH_TR1_DECL boost_lround BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::lround BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/lroundf.cpp b/src/tr1/lroundf.cpp
index 55d1718d5..747a4d444 100644
--- a/src/tr1/lroundf.cpp
+++ b/src/tr1/lroundf.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" long BOOST_MATH_TR1_DECL lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long BOOST_MATH_TR1_DECL boost_lroundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::lround BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/lroundl.cpp b/src/tr1/lroundl.cpp
index 930118833..95fab0a81 100644
--- a/src/tr1/lroundl.cpp
+++ b/src/tr1/lroundl.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" long BOOST_MATH_TR1_DECL lroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long BOOST_MATH_TR1_DECL boost_lroundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::lround BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/nexttoward.cpp b/src/tr1/nexttoward.cpp
index 0d2932489..853b9e10e 100644
--- a/src/tr1/nexttoward.cpp
+++ b/src/tr1/nexttoward.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" double BOOST_MATH_TR1_DECL nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(double x, long double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_nexttoward BOOST_PREVENT_MACRO_SUBSTITUTION(double x, long double y) BOOST_MATH_C99_THROW_SPEC
 {
    return  (double)c_policies::nextafter BOOST_PREVENT_MACRO_SUBSTITUTION((long double)x, y);
 }
diff --git a/src/tr1/nexttowardf.cpp b/src/tr1/nexttowardf.cpp
index 417e28bac..a7da11ee0 100644
--- a/src/tr1/nexttowardf.cpp
+++ b/src/tr1/nexttowardf.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" float BOOST_MATH_TR1_DECL nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_nexttowardf BOOST_PREVENT_MACRO_SUBSTITUTION(float x, long double y) BOOST_MATH_C99_THROW_SPEC
 {
    return  (float)c_policies::nextafter BOOST_PREVENT_MACRO_SUBSTITUTION((long double)x, y);
 }
diff --git a/src/tr1/nexttowardl.cpp b/src/tr1/nexttowardl.cpp
index d0b56a94e..6e1ddb050 100644
--- a/src/tr1/nexttowardl.cpp
+++ b/src/tr1/nexttowardl.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" long double BOOST_MATH_TR1_DECL nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_nexttowardl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x, long double y) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::nextafter BOOST_PREVENT_MACRO_SUBSTITUTION(x, y);
 }
diff --git a/src/tr1/riemann_zeta.cpp b/src/tr1/riemann_zeta.cpp
index 5797d6c66..56fa09366 100644
--- a/src/tr1/riemann_zeta.cpp
+++ b/src/tr1/riemann_zeta.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_riemann_zeta BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::zeta BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/riemann_zetaf.cpp b/src/tr1/riemann_zetaf.cpp
index 3f0934a3a..1635b7a21 100644
--- a/src/tr1/riemann_zetaf.cpp
+++ b/src/tr1/riemann_zetaf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_riemann_zetaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::zeta BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/riemann_zetal.cpp b/src/tr1/riemann_zetal.cpp
index 37fdeb281..a68ccb098 100644
--- a/src/tr1/riemann_zetal.cpp
+++ b/src/tr1/riemann_zetal.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL riemann_zetal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_riemann_zetal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::zeta BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/round.cpp b/src/tr1/round.cpp
index 92d9361f6..b61f901e8 100644
--- a/src/tr1/round.cpp
+++ b/src/tr1/round.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" double BOOST_MATH_TR1_DECL round BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_round BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::round BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/roundf.cpp b/src/tr1/roundf.cpp
index 098731b8b..f647625d8 100644
--- a/src/tr1/roundf.cpp
+++ b/src/tr1/roundf.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" float BOOST_MATH_TR1_DECL roundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_roundf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::round BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/roundl.cpp b/src/tr1/roundl.cpp
index 509ff5915..1554956a0 100644
--- a/src/tr1/roundl.cpp
+++ b/src/tr1/roundl.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" long double BOOST_MATH_TR1_DECL roundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_roundl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::round BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/sph_bessel.cpp b/src/tr1/sph_bessel.cpp
index ce246738a..1a24a9d79 100644
--- a/src/tr1/sph_bessel.cpp
+++ b/src/tr1/sph_bessel.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/sph_besself.cpp b/src/tr1/sph_besself.cpp
index 24dd3343b..06ab66af6 100644
--- a/src/tr1/sph_besself.cpp
+++ b/src/tr1/sph_besself.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_sph_besself BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/sph_bessell.cpp b/src/tr1/sph_bessell.cpp
index 18abe7f6c..a93795d11 100644
--- a/src/tr1/sph_bessell.cpp
+++ b/src/tr1/sph_bessell.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL sph_bessell BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_sph_bessell BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::sph_bessel BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/sph_legendre.cpp b/src/tr1/sph_legendre.cpp
index 7054a3713..e281220aa 100644
--- a/src/tr1/sph_legendre.cpp
+++ b/src/tr1/sph_legendre.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_sph_legendre BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return  (m & 1 ? -1 : 1) * c_policies::spherical_harmonic_r BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x, 0.0);
 }
diff --git a/src/tr1/sph_legendref.cpp b/src/tr1/sph_legendref.cpp
index 3c0ab9231..329aba82a 100644
--- a/src/tr1/sph_legendref.cpp
+++ b/src/tr1/sph_legendref.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_sph_legendref BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return  (m & 1 ? -1 : 1) * c_policies::spherical_harmonic_r BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x, 0.0f);
 }
diff --git a/src/tr1/sph_legendrel.cpp b/src/tr1/sph_legendrel.cpp
index 2d5cf51b5..d42492c19 100644
--- a/src/tr1/sph_legendrel.cpp
+++ b/src/tr1/sph_legendrel.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL sph_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_sph_legendrel BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, unsigned m, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return  (m & 1 ? -1 : 1) * c_policies::spherical_harmonic_r BOOST_PREVENT_MACRO_SUBSTITUTION(n, m, x, 0.0L);
 }
diff --git a/src/tr1/sph_neumann.cpp b/src/tr1/sph_neumann.cpp
index 6e06ebd4a..3adba76f2 100644
--- a/src/tr1/sph_neumann.cpp
+++ b/src/tr1/sph_neumann.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" double BOOST_MATH_TR1_DECL sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/sph_neumannf.cpp b/src/tr1/sph_neumannf.cpp
index adcabeee5..af51473b6 100644
--- a/src/tr1/sph_neumannf.cpp
+++ b/src/tr1/sph_neumannf.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" float BOOST_MATH_TR1_DECL sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_sph_neumannf BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/sph_neumannl.cpp b/src/tr1/sph_neumannl.cpp
index 507c3e72a..1fc7a4e85 100644
--- a/src/tr1/sph_neumannl.cpp
+++ b/src/tr1/sph_neumannl.cpp
@@ -11,7 +11,7 @@
 #include 
 #include "c_policy.hpp"
 
-extern "C" long double BOOST_MATH_TR1_DECL sph_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_sph_neumannl BOOST_PREVENT_MACRO_SUBSTITUTION(unsigned n, long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::sph_neumann BOOST_PREVENT_MACRO_SUBSTITUTION(n, x);
 }
diff --git a/src/tr1/tgamma.cpp b/src/tr1/tgamma.cpp
index fe2b0ff1c..dfb407be1 100644
--- a/src/tr1/tgamma.cpp
+++ b/src/tr1/tgamma.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" double BOOST_MATH_TR1_DECL tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/tgammaf.cpp b/src/tr1/tgammaf.cpp
index 5f9fc3623..a19ef047a 100644
--- a/src/tr1/tgammaf.cpp
+++ b/src/tr1/tgammaf.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" float BOOST_MATH_TR1_DECL tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_tgammaf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/tgammal.cpp b/src/tr1/tgammal.cpp
index bf3d42906..7a67273c6 100644
--- a/src/tr1/tgammal.cpp
+++ b/src/tr1/tgammal.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" long double BOOST_MATH_TR1_DECL tgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_tgammal BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::tgamma BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/trunc.cpp b/src/tr1/trunc.cpp
index 88d277be8..504983056 100644
--- a/src/tr1/trunc.cpp
+++ b/src/tr1/trunc.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" double BOOST_MATH_TR1_DECL trunc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" double BOOST_MATH_TR1_DECL boost_trunc BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::trunc BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/truncf.cpp b/src/tr1/truncf.cpp
index 7c49a994e..c0057658d 100644
--- a/src/tr1/truncf.cpp
+++ b/src/tr1/truncf.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" float BOOST_MATH_TR1_DECL truncf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
+extern "C" float BOOST_MATH_TR1_DECL boost_truncf BOOST_PREVENT_MACRO_SUBSTITUTION(float x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::trunc BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/src/tr1/truncl.cpp b/src/tr1/truncl.cpp
index 565582d30..9a469c362 100644
--- a/src/tr1/truncl.cpp
+++ b/src/tr1/truncl.cpp
@@ -13,7 +13,7 @@
 
 namespace boost{ namespace math{ namespace tr1{
 
-extern "C" long double BOOST_MATH_TR1_DECL truncl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
+extern "C" long double BOOST_MATH_TR1_DECL boost_truncl BOOST_PREVENT_MACRO_SUBSTITUTION(long double x) BOOST_MATH_C99_THROW_SPEC
 {
    return c_policies::trunc BOOST_PREVENT_MACRO_SUBSTITUTION(x);
 }
diff --git a/test/Jamfile.v2 b/test/Jamfile.v2
index d8681804e..2f366b28c 100644
--- a/test/Jamfile.v2
+++ b/test/Jamfile.v2
@@ -654,6 +654,28 @@ run test_tr1.cpp
    test_tr1_long_double
    ;
    
+run test_tr1.c
+   ../build//boost_math_tr1
+   ../build//boost_math_tr1f
+   ../build//boost_math_c99
+   ../build//boost_math_c99f
+   ../../test/build//boost_test_exec_monitor 
+   : : : #requirements
+   :
+   test_tr1_c
+   ;
+
+run test_tr1.c
+   ../build//boost_math_tr1l 
+   ../build//boost_math_c99l 
+   ../../test/build//boost_test_exec_monitor 
+   : : :
+   TEST_LD=1
+   [ check-target-builds ../config//has_long_double_support : : no ]
+   :
+   test_tr1_c_long_double
+   ;
+
 run test_long_double_support.cpp ../../test/build//boost_test_exec_monitor 
 : : : [ check-target-builds ../config//has_long_double_support : : no ] ;
 
diff --git a/test/test_tr1.c b/test/test_tr1.c
new file mode 100644
index 000000000..8f080cd6e
--- /dev/null
+++ b/test/test_tr1.c
@@ -0,0 +1,1067 @@
+/*  (C) Copyright John Maddock 2008.
+  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)
+  */
+
+#include 
+#include 
+#include 
+
+#include 
+
+unsigned errors = 0;
+
+void check_close_f(float v1, float v2, float tol, int line)
+{
+   float err;
+   if((v1 == 0) || (v2 ==0))
+   {
+      err = fabsf(v1 - v2);
+   }
+   else
+   {
+      err = fabsf((v1 - v2) / v2);
+   }
+   if(err * 100 > tol)
+   {
+      errors += 1;
+      printf("Error at line %d, with error %e (max allowed %e)\n", line, (double)err, (double)(tol / 100));
+   }
+}
+void check_close(double v1, double v2, double tol, int line)
+{
+   double err;
+   if((v1 == 0) || (v2 ==0))
+   {
+      err = fabs(v1 - v2);
+   }
+   else
+   {
+      err = fabs((v1 - v2) / v2);
+   }
+   if(err * 100 > tol)
+   {
+      errors += 1;
+      printf("Error at line %d, with error %e (max allowed %e)\n", line, (double)err, (double)(tol / 100));
+   }
+}
+void check_close_l(long double v1, long double v2, long double tol, int line)
+{
+   long double err;
+   if((v1 == 0) || (v2 ==0))
+   {
+      err = fabsl(v1 - v2);
+   }
+   else
+   {
+      err = fabsl((v1 - v2) / v2);
+   }
+   if(err * 100 > tol)
+   {
+      errors += 1;
+      printf("Error at line %d, with error %e (max allowed %e)\n", line, (double)err, (double)(tol / 100));
+   }
+}
+
+void check(int b, int line)
+{
+   if(b == 0)
+   {
+      errors += 1;
+      printf("Error at line %d\n", line);
+   }
+}
+
+void check_close_fraction_f(float v1, float v2, float tol, int line)
+{
+   check_close_f(v1, v2, tol * 100, line);
+}
+void check_close_fraction(double v1, double v2, double tol, int line)
+{
+   check_close(v1, v2, tol * 100, line);
+}
+void check_close_fraction_l(long double v1, long double v2, long double tol, int line)
+{
+   check_close_l(v1, v2, tol * 100, line);
+}
+
+void test_values_f(const char* name)
+{
+#ifndef TEST_LD
+   //
+   // First the C99 math functions:
+   //
+   float eps = FLT_EPSILON;
+   float sv;
+   check_close_f(acoshf(coshf(0.5f)), 0.5f, 5000 * eps, __LINE__);
+   check_close_f(asinhf(sinhf(0.5f)), 0.5f, 5000 * eps, __LINE__);
+   check_close_f(atanhf(tanhf(0.5f)), 0.5f, 5000 * eps, __LINE__);
+
+   check_close_f(cbrtf(1.5f * 1.5f * 1.5f), 1.5f, 5000 * eps, __LINE__);
+
+   check(copysignf(1.0f, 1.0f) == 1.0f, __LINE__);
+   check(copysignf(1.0f, -1.0f) == -1.0f, __LINE__);
+   check(copysignf(-1.0f, 1.0f) == 1.0f, __LINE__);
+   check(copysignf(-1.0f, -1.0f) == -1.0f, __LINE__);
+
+   check_close_f(erfcf(0.125), 0.85968379519866618260697055347837660181302041685015f, eps * 1000, __LINE__);
+   check_close_f(erfcf(0.5), 0.47950012218695346231725334610803547126354842424204f, eps * 1000, __LINE__);
+   check_close_f(erfcf(1), 0.15729920705028513065877936491739074070393300203370f, eps * 1000, __LINE__);
+   check_close_f(erfcf(5), 1.5374597944280348501883434853833788901180503147234e-12f, eps * 1000, __LINE__);
+   check_close_f(erfcf(-0.125), 1.1403162048013338173930294465216233981869795831498f, eps * 1000, __LINE__);
+   check_close_f(erfcf(-0.5), 1.5204998778130465376827466538919645287364515757580f, eps * 1000, __LINE__);
+   check_close_f(erfcf(0), 1, eps * 1000, __LINE__);
+
+   check_close_f(erff(0.125), 0.14031620480133381739302944652162339818697958314985f, eps * 1000, __LINE__);
+   check_close_f(erff(0.5), 0.52049987781304653768274665389196452873645157575796f, eps * 1000, __LINE__);
+   check_close_f(erff(1), 0.84270079294971486934122063508260925929606699796630f, eps * 1000, __LINE__);
+   check_close_f(erff(5), 0.9999999999984625402055719651498116565146166211099f, eps * 1000, __LINE__);
+   check_close_f(erff(-0.125), -0.14031620480133381739302944652162339818697958314985f, eps * 1000, __LINE__);
+   check_close_f(erff(-0.5), -0.52049987781304653768274665389196452873645157575796f, eps * 1000, __LINE__);
+   check_close_f(erff(0), 0, eps * 1000, __LINE__);
+
+   check_close_f(log1pf(0.582029759883880615234375e0), 0.4587086807259736626531803258754840111707e0f, eps * 1000, __LINE__);
+   check_close_f(expm1f(0.582029759883880615234375e0), 0.7896673415707786528734865994546559029663e0f, eps * 1000, __LINE__);
+   check_close_f(log1pf(-0.2047410048544406890869140625e-1), -0.2068660038044094868521052319477265955827e-1f, eps * 1000, __LINE__);
+   check_close_f(expm1f(-0.2047410048544406890869140625e-1), -0.2026592921724753704129022027337835687888e-1f, eps * 1000, __LINE__);
+
+   check_close_f(fmaxf(0.1f, -0.1f), 0.1f, 0, __LINE__);
+   check_close_f(fminf(0.1f, -0.1f), -0.1f, 0, __LINE__);
+
+   check_close_f(hypotf(1.0f, 3.0f), sqrtf(10.0f), eps * 500, __LINE__);
+
+   check_close_f(lgammaf(3.5), 1.2009736023470742248160218814507129957702389154682f, 5000 * eps, __LINE__);
+   check_close_f(lgammaf(0.125), 2.0194183575537963453202905211670995899482809521344f, 5000 * eps, __LINE__);
+   check_close_f(lgammaf(-0.125), 2.1653002489051702517540619481440174064962195287626f, 5000 * eps, __LINE__);
+   check_close_f(lgammaf(-3.125), 0.1543111276840418242676072830970532952413339012367f, 5000 * eps, __LINE__);
+   check_close_f(lgammaf(-53249.0/1024), -149.43323093420259741100038126078721302600128285894f, 5000 * eps, __LINE__);
+
+   check_close_f(tgammaf(3.5), 3.3233509704478425511840640312646472177454052302295f, 5000 * eps, __LINE__);
+   check_close_f(tgammaf(0.125), 7.5339415987976119046992298412151336246104195881491f, 5000 * eps, __LINE__);
+   check_close_f(tgammaf(-0.125), -8.7172188593831756100190140408231437691829605421405f, 5000 * eps, __LINE__);
+   check_close_f(tgammaf(-3.125), 1.1668538708507675587790157356605097019141636072094f, 5000 * eps, __LINE__);
+
+#ifdef BOOST_HAS_LONG_LONG
+   check(llroundf(2.5f) == 3fL, __LINE__);
+   check(llroundf(2.25f) == 2fL, __LINE__);
+#endif
+   check(lroundf(2.5f) == 3.0f, __LINE__);
+   check(lroundf(2.25f) == 2.0f, __LINE__);
+   check(roundf(2.5f) == 3.0f, __LINE__);
+   check(roundf(2.25f) == 2.0f, __LINE__);
+
+   check(nextafterf(1.0f, 2.0f) > 1.0f, __LINE__);
+   check(nextafterf(1.0f, -2.0f) < 1.0f, __LINE__);
+   check(nextafterf(nextafterf(1.0f, 2.0f), -2.0f) == 1.0f, __LINE__);
+   check(nextafterf(nextafterf(1.0f, -2.0f), 2.0f) == 1.0f, __LINE__);
+   check(nextafterf(1.0f, 2.0f) > 1.0f, __LINE__);
+   check(nextafterf(1.0f, -2.0f) < 1.0f, __LINE__);
+   check(nextafterf(nextafterf(1.0f, 2.0f), -2.0f) == 1.0f, __LINE__);
+   check(nextafterf(nextafterf(1.0f, -2.0f), 2.0f) == 1.0f, __LINE__);
+
+   check(truncf(2.5f) == 2.0f, __LINE__);
+   check(truncf(2.25f) == 2.0f, __LINE__);
+
+   //
+   // Now for the TR1 math functions:
+   //
+   check_close_fraction_f(assoc_laguerref(4, 5, 0.5f), 88.31510416666666666666666666666666666667f, eps * 100, __LINE__);
+   check_close_fraction_f(assoc_laguerref(10, 0, 2.5f), -0.8802526766660982969576719576719576719577f, eps * 100, __LINE__);
+   check_close_fraction_f(assoc_laguerref(10, 1, 4.5f), 1.564311458042689732142857142857142857143f, eps * 100, __LINE__);
+   check_close_fraction_f(assoc_laguerref(10, 6, 8.5f), 20.51596541066649098875661375661375661376f, eps * 100, __LINE__);
+   check_close_fraction_f(assoc_laguerref(10, 12, 12.5f), -199.5560968456234671241181657848324514991f, eps * 100, __LINE__);
+   check_close_fraction_f(assoc_laguerref(50, 40, 12.5f), -4.996769495006119488583146995907246595400e16f, eps * 100, __LINE__);
+
+   check_close_fraction_f(laguerref(1, 0.5f), 0.5f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(4, 0.5f), -0.3307291666666666666666666666666666666667f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(7, 0.5f), -0.5183392237103174603174603174603174603175f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(20, 0.5f), 0.3120174870800154148915399248893113634676f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(50, 0.5f), -0.3181388060269979064951118308575628226834f, eps * 100, __LINE__);
+
+   check_close_fraction_f(laguerref(1, -0.5f), 1.5f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(4, -0.5f), 3.835937500000000000000000000000000000000f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(7, -0.5f), 7.950934709821428571428571428571428571429f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(20, -0.5f), 76.12915699869631476833699787070874048223f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(50, -0.5f), 2307.428631277506570629232863491518399720f, eps * 100, __LINE__);
+
+   check_close_fraction_f(laguerref(1, 4.5f), -3.500000000000000000000000000000000000000f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(4, 4.5f), 0.08593750000000000000000000000000000000000f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(7, 4.5f), -1.036928013392857142857142857142857142857f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(20, 4.5f), 1.437239150257817378525582974722170737587f, eps * 100, __LINE__);
+   check_close_fraction_f(laguerref(50, 4.5f), -0.7795068145562651416494321484050019245248f, eps * 100, __LINE__);
+
+   check_close_fraction_f(assoc_legendref(4, 2, 0.5f), 4.218750000000000000000000000000000000000f, eps * 100, __LINE__);
+   check_close_fraction_f(assoc_legendref(7, 5, 0.5f), 5696.789530152175143607977274672800795328f, eps * 100, __LINE__);
+   check_close_fraction_f(assoc_legendref(4, 2, -0.5f), 4.218750000000000000000000000000000000000f, eps * 100, __LINE__);
+   check_close_fraction_f(assoc_legendref(7, 5, -0.5f), 5696.789530152175143607977274672800795328f, eps * 100, __LINE__);
+
+   check_close_fraction_f(legendref(1, 0.5f), 0.5f, eps * 100, __LINE__);
+   check_close_fraction_f(legendref(4, 0.5f), -0.2890625000000000000000000000000000000000f, eps * 100, __LINE__);
+   check_close_fraction_f(legendref(7, 0.5f), 0.2231445312500000000000000000000000000000f, eps * 100, __LINE__);
+   check_close_fraction_f(legendref(40, 0.5f), -0.09542943523261546936538467572384923220258f, eps * 100, __LINE__);
+
+   sv = eps / 1024;
+   check_close_f(betaf(1, 1), 1, eps * 20 * 100, __LINE__);
+   check_close_f(betaf(1, 4), 0.25, eps * 20 * 100, __LINE__);
+   check_close_f(betaf(4, 1), 0.25, eps * 20 * 100, __LINE__);
+   check_close_f(betaf(sv, 4), 1/sv, eps * 20 * 100, __LINE__);
+   check_close_f(betaf(4, sv), 1/sv, eps * 20 * 100, __LINE__);
+   check_close_f(betaf(4, 20), 0.00002823263692828910220214568040654997176736f, eps * 20 * 100, __LINE__);
+   check_close_f(betaf(0.0125f, 0.000023f), 43558.24045647538375006349016083320744662f, eps * 20 * 100, __LINE__);
+
+   check_close_f(comp_ellint_1f(0), 1.5707963267948966192313216916397514420985846996876f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_1f(0.125), 1.5769867712158131421244030532288080803822271060839f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_1f(0.25), 1.5962422221317835101489690714979498795055744578951f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_1f(300/1024.0f), 1.6062331054696636704261124078746600894998873503208f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_1f(400/1024.0f), 1.6364782007562008756208066125715722889067992997614f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_1f(-0.5), 1.6857503548125960428712036577990769895008008941411f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_1f(-0.75), 1.9109897807518291965531482187613425592531451316788f, eps * 5000, __LINE__);
+
+   check_close_f(comp_ellint_2f(-1), 1.0f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_2f(0), 1.5707963267948966192313216916397514420985846996876f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_2f(100 / 1024.0f), 1.5670445330545086723323795143598956428788609133377f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_2f(200 / 1024.0f), 1.5557071588766556854463404816624361127847775545087f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_2f(300 / 1024.0f), 1.5365278991162754883035625322482669608948678755743f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_2f(400 / 1024.0f), 1.5090417763083482272165682786143770446401437564021f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_2f(-0.5), 1.4674622093394271554597952669909161360253617523272f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_2f(-600 / 1024.0f), 1.4257538571071297192428217218834579920545946473778f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_2f(-800 / 1024.0f), 1.2927868476159125056958680222998765985004489572909f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_2f(-900 / 1024.0f), 1.1966864890248739524112920627353824133420353430982f, eps * 5000, __LINE__);
+
+   check_close_f(comp_ellint_3f(0.2f, 0), 1.586867847454166237308008033828114192951f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_3f(0.4f, 0), 1.639999865864511206865258329748601457626f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_3f(0.0f, 0), 1.57079632679489661923132169163975144209858469968755291048747f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_3f(0.0f, 0.5), 2.221441469079183123507940495030346849307f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_3f(0.3f, -4), 0.712708870925620061597924858162260293305195624270730660081949f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_3f(-0.5f, -1e+05), 0.00496944596485066055800109163256108604615568144080386919012831f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_3f(-0.75f, -1e+10), 0.0000157080225184890546939710019277357161497407143903832703317801f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_3f(-0.875f, 1 / 1024.0f), 2.18674503176462374414944618968850352696579451638002110619287f, eps * 5000, __LINE__);
+   check_close_f(comp_ellint_3f(-0.875f, 1023/1024.0f), 101.045289804941384100960063898569538919135722087486350366997f, eps * 5000, __LINE__);
+
+   check_close_f(cyl_bessel_if(2.25f, 1/(1024.0f*1024.0f)), 2.34379212133481347189068464680335815256364262507955635911656e-15f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_if(5.5f, 3.125), 0.0583514045989371500460946536220735787163510569634133670181210f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_if(-5 + 1.0f/1024.0f, 2.125), 0.0267920938009571023702933210070984416052633027166975342895062f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_if(-5.5f, 10), 597.577606961369169607937419869926705730305175364662688426534f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_if(-10486074.0f/(1024.0f*1024), 1/1024.0f), 1.41474005665181350367684623930576333542989766867888186478185e35f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_if(-10486074.0f/(1024.0f*1024), 50), 1.07153277202900671531087024688681954238311679648319534644743e20f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_if(144794.0f/1024.0f, 100), 2066.27694757392660413922181531984160871678224178890247540320f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_if(-144794.0f/1024.0f, 100), 2066.27694672763190927440969155740243346136463461655104698748f, eps * 5000, __LINE__);
+
+   check_close_f(cyl_bessel_jf(2457/1024.0f, 1/1024.0f), 3.80739920118603335646474073457326714709615200130620574875292e-9f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(5.5f, 3217.0f/1024), 0.0281933076257506091621579544064767140470089107926550720453038f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(-5.5f, 3217.0f/1024), -2.55820064470647911823175836997490971806135336759164272675969f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(-5.5f, 1e+04), 2.449843111985605522111159013846599118397e-03f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(5.5f, 1e+04), 0.00759343502722670361395585198154817047185480147294665270646578f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(5.5f, 1e+06), -0.000747424248595630177396350688505919533097973148718960064663632f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(5.125f, 1e+06), -0.000776600124835704280633640911329691642748783663198207360238214f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(5.875f, 1e+06), -0.000466322721115193071631008581529503095819705088484386434589780f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(0.5f, 101), 0.0358874487875643822020496677692429287863419555699447066226409f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(-5.5f, 1e+04), 0.00244984311198560552211115901384659911839737686676766460822577f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(-5.5f, 1e+06), 0.000279243200433579511095229508894156656558211060453622750659554f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(-0.5f, 101), 0.0708184798097594268482290389188138201440114881159344944791454f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(-10486074 / (1024*1024.0f), 1/1024.0f), 1.41474013160494695750009004222225969090304185981836460288562e35f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(-10486074 / (1024*1024.0f), 15), -0.0902239288885423309568944543848111461724911781719692852541489f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(10486074 / (1024*1024.0f), 1e+02f), -0.0547064914615137807616774867984047583596945624129838091326863f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(10486074 / (1024*1024.0f), 2e+04f), -0.00556783614400875611650958980796060611309029233226596737701688f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_jf(-10486074 / (1024*1024.0f), 1e+02f), -0.0547613660316806551338637153942604550779513947674222863858713f, eps * 5000, __LINE__);
+
+   check_close_f(cyl_bessel_kf(0.5f, 0.875), 0.558532231646608646115729767013630967055657943463362504577189f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_kf(0.5f, 1.125), 0.383621010650189547146769320487006220295290256657827220786527f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_kf(2.25f, ldexpf(1.0f, -30)), 5.62397392719283271332307799146649700147907612095185712015604e20f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_kf(5.5f, 3217/1024.0f), 1.30623288775012596319554857587765179889689223531159532808379f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_kf(-5.5f, 10), 0.0000733045300798502164644836879577484533096239574909573072142667f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_kf(-5.5f, 100), 5.41274555306792267322084448693957747924412508020839543293369e-45f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_kf(10240/1024.0f, 1/1024.0f), 2.35522579263922076203415803966825431039900000000993410734978e38f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_kf(10240/1024.0f, 10), 0.00161425530039067002345725193091329085443750382929208307802221f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_kf(144793/1024.0f, 100), 1.39565245860302528069481472855619216759142225046370312329416e-6f, eps * 5000, __LINE__);
+   check_close_f(cyl_bessel_kf(144793/1024.0f, 200), 9.11950412043225432171915100042647230802198254567007382956336e-68f, eps * 5000, __LINE__);
+
+   check_close_f(cyl_neumannf(0.5f, 1 / (1024.0f*1024)), -817.033790261762580469303126467917092806755460418223776544122f, eps * 5000, __LINE__);
+   check_close_f(cyl_neumannf(5.5f, 3.125), -2.61489440328417468776474188539366752698192046890955453259866f, eps * 5000, __LINE__);
+   check_close_f(cyl_neumannf(-5.5f, 3.125), -0.0274994493896489729948109971802244976377957234563871795364056f, eps * 5000, __LINE__);
+   check_close_f(cyl_neumannf(-5.5f, 1e+04), -0.00759343502722670361395585198154817047185480147294665270646578f, eps * 5000, __LINE__);
+   check_close_f(cyl_neumannf(-10486074 / (1024*1024.0f), 1/1024.0f), -1.50382374389531766117868938966858995093408410498915220070230e38f, eps * 5000, __LINE__);
+   check_close_f(cyl_neumannf(-10486074 / (1024*1024.0f), 1e+02f), 0.0583041891319026009955779707640455341990844522293730214223545f, eps * 5000, __LINE__);
+   check_close_f(cyl_neumannf(141.75f, 1e+02), -5.38829231428696507293191118661269920130838607482708483122068e9f, eps * 5000, __LINE__);
+   check_close_f(cyl_neumannf(141.75f, 2e+04), -0.00376577888677186194728129112270988602876597726657372330194186f, eps * 5000, __LINE__);
+   check_close_f(cyl_neumannf(-141.75f, 1e+02), -3.81009803444766877495905954105669819951653361036342457919021e9f, eps * 5000, __LINE__);
+
+   check_close_f(ellint_1f(0, 0), 0, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0, -10), -10, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(-1, -1), -1.2261911708835170708130609674719067527242483502207f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0.875f, -4), -5.3190556182262405182189463092940736859067548232647f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(-0.625f, 8), 9.0419973860310100524448893214394562615252527557062f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0.875f, 1e-05f), 0.000010000000000127604166668510945638036143355898993088f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(10/1024.0f, 1e+05f), 100002.38431454899771096037307519328741455615271038f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(1, 1e-20f), 1.0000000000000000000000000000000000000000166666667e-20f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(1e-20f, 1e-20f), 1.000000000000000e-20f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(400/1024.0f, 1e+20f), 1.0418143796499216839719289963154558027005142709763e20f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0.5f, 2), 2.1765877052210673672479877957388515321497888026770f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0.5f, 4), 4.2543274975235836861894752787874633017836785640477f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0.5f, 6), 6.4588766202317746302999080620490579800463614807916f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0.5f, 10), 10.697409951222544858346795279378531495869386960090f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0.5f, -2), -2.1765877052210673672479877957388515321497888026770f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0.5f, -4), -4.2543274975235836861894752787874633017836785640477f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0.5f, -6), -6.4588766202317746302999080620490579800463614807916f, eps * 5000, __LINE__);
+   check_close_f(ellint_1f(0.5f, -10), -10.697409951222544858346795279378531495869386960090f, eps * 5000, __LINE__);
+
+   check_close_f(ellint_2f(0, 0), 0, eps * 5000, __LINE__);
+   check_close_f(ellint_2f(0, -10), -10, eps * 5000, __LINE__);
+   check_close_f(ellint_2f(-1, -1), -0.84147098480789650665250232163029899962256306079837f, eps * 5000, __LINE__);
+   check_close_f(ellint_2f(900 / 1024.0f, -4), -3.1756145986492562317862928524528520686391383168377f, eps * 5000, __LINE__);
+   check_close_f(ellint_2f(-600 / 1024.0f, 8), 7.2473147180505693037677015377802777959345489333465f, eps * 5000, __LINE__);
+   check_close_f(ellint_2f(800 / 1024.0f, 1e-05f), 9.999999999898274739584436515967055859383969942432E-6f, eps * 5000, __LINE__);
+   check_close_f(ellint_2f(100 / 1024.0f, 1e+05f), 99761.153306972066658135668386691227343323331995888f, eps * 5000, __LINE__);
+   check_close_f(ellint_2f(-0.5f, 1e+10f), 9.3421545766487137036576748555295222252286528414669e9f, eps * 5000, __LINE__);
+   check_close_f(ellint_2f(400 / 1024.0f, ldexpf(1, 66)), 7.0886102721911705466476846969992069994308167515242e19f, eps * 5000, __LINE__);
+
+   check_close_f(ellint_3f(0, 1, -1), -1.557407724654902230506974807458360173087f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.4f, 0, -4), -4.153623371196831087495427530365430979011f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(-0.6f, 0, 8), 8.935930619078575123490612395578518914416f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.25f, 0, 0.5f), 0.501246705365439492445236118603525029757890291780157969500480f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0, 0, 0.5f), 0.5f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0, -2, 0.5f), 0.437501067017546278595664813509803743009132067629603474488486f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0, 0.25f, 0.5f), 0.510269830229213412212501938035914557628394166585442994564135f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0, 0.75f, 0.5f), 0.533293253875952645421201146925578536430596894471541312806165f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0, 0.75f, 0.75), 0.871827580412760575085768367421866079353646112288567703061975f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0, 1, 0.25f), 0.255341921221036266504482236490473678204201638800822621740476f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0, 2, 0.25f), 0.261119051639220165094943572468224137699644963125853641716219f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0, 1023/1024.0f, 1.5), 13.2821612239764190363647953338544569682942329604483733197131f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.5f, 0.5f, -1), -1.228014414316220642611298946293865487807f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.5f, 0.5f, 1e+10f), 1.536591003599172091573590441336982730551e+10f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.75f, -1e+05f, 10), 0.0347926099493147087821620459290460547131012904008557007934290f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.875f, -1e+10f, 10), 0.000109956202759561502329123384755016959364346382187364656768212f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.875f, -1e+10f, 1e+20f), 1.00000626665567332602765201107198822183913978895904937646809e15f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.875f, -1e+10f, 1608/1024.0f), 0.0000157080616044072676127333183571107873332593142625043567690379f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.875f, 1-1 / 1024.0f, 1e+20f), 6.43274293944380717581167058274600202023334985100499739678963e21f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.25f, 50, 0.1f), 0.124573770342749525407523258569507331686458866564082916835900f, eps * 5000, __LINE__);
+   check_close_f(ellint_3f(0.25f, 1.125f, 1), 1.77299767784815770192352979665283069318388205110727241629752f, eps * 5000, __LINE__);
+
+   check_close_f(expintf(1/1024.0f), -6.35327933972759151358547423727042905862963067106751711596065f, eps * 5000, __LINE__);
+   check_close_f(expintf(0.125), -1.37320852494298333781545045921206470808223543321810480716122f, eps * 5000, __LINE__);
+   check_close_f(expintf(0.5), 0.454219904863173579920523812662802365281405554352642045162818f, eps * 5000, __LINE__);
+   check_close_f(expintf(1), 1.89511781635593675546652093433163426901706058173270759164623f, eps * 5000, __LINE__);
+   check_close_f(expintf(50.5), 1.72763195602911805201155668940185673806099654090456049881069e20f, eps * 5000, __LINE__);
+   check_close_f(expintf(-1/1024.0f), -6.35523246483107180261445551935803221293763008553775821607264f, eps * 5000, __LINE__);
+   check_close_f(expintf(-0.125), -1.62342564058416879145630692462440887363310605737209536579267f, eps * 5000, __LINE__);
+   check_close_f(expintf(-0.5), -0.559773594776160811746795939315085235226846890316353515248293f, eps * 5000, __LINE__);
+   check_close_f(expintf(-1), -0.219383934395520273677163775460121649031047293406908207577979f, eps * 5000, __LINE__);
+   check_close_f(expintf(-50.5), -2.27237132932219350440719707268817831250090574830769670186618e-24f, eps * 5000, __LINE__);
+
+   check_close_fraction_f(hermitef(0, 1), 1.L, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(1, 1), 2.L, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(1, 2), 4.L, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(1, 10), 20, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(1, 100), 200, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(1, 1e6), 2e6f, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(10, 30), 5.896624628001300E+17f, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(10, 1000), 1.023976960161280E+33f, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(10, 10), 8.093278209760000E+12f, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(10, -10), 8.093278209760000E+12f, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(3, -10), -7.880000000000000E+3f, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(3, -1000), -7.999988000000000E+9f, 100 * eps, __LINE__);
+   check_close_fraction_f(hermitef(3, -1000000), -7.999999999988000E+18f, 100 * eps, __LINE__);
+
+   check_close_f(riemann_zetaf(0.125), -0.63277562349869525529352526763564627152686379131122f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(1023 / 1024.0f), -1023.4228554489429786541032870895167448906103303056f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(1025 / 1024.0f), 1024.5772867695045940578681624248887776501597556226f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(0.5f), -1.46035450880958681288949915251529801246722933101258149054289f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(1.125f), 8.5862412945105752999607544082693023591996301183069f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(2), 1.6449340668482264364724151666460251892189499012068f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(3.5f), 1.1267338673170566464278124918549842722219969574036f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(4), 1.08232323371113819151600369654116790277475095191872690768298f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(4 + 1 / 1024.0f), 1.08225596856391369799036835439238249195298434901488518878804f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(4.5f), 1.05470751076145426402296728896028011727249383295625173068468f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(6.5f), 1.01200589988852479610078491680478352908773213619144808841031f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(7.5f), 1.00582672753652280770224164440459408011782510096320822989663f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(8.125f), 1.0037305205308161603183307711439385250181080293472f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(16.125f), 1.0000140128224754088474783648500235958510030511915f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(0), -0.5f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(-0.125f), -0.39906966894504503550986928301421235400280637468895f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(-1), -0.083333333333333333333333333333333333333333333333333f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(-2), 0, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(-2.5f), 0.0085169287778503305423585670283444869362759902200745f, eps * 5000 * 3, __LINE__);
+   check_close_f(riemann_zetaf(-3), 0.0083333333333333333333333333333333333333333333333333f, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(-4), 0, eps * 5000, __LINE__);
+   check_close_f(riemann_zetaf(-20), 0, eps * 5000 * 100, __LINE__);
+   check_close_f(riemann_zetaf(-21), -281.46014492753623188405797101449275362318840579710f, eps * 5000 * 100, __LINE__);
+   check_close_f(riemann_zetaf(-30.125f), 2.2762941726834511267740045451463455513839970804578e7f, eps * 5000 * 100, __LINE__);
+
+   check_close_f(sph_besself(0, 0.1433600485324859619140625e-1f), 0.9999657468461303487880990241993035937654e0f,  eps * 5000 * 100, __LINE__);
+   check_close_f(sph_besself(0, 0.1760916970670223236083984375e-1f), 0.9999483203249623334100130061926184665364e0f,  eps * 5000 * 100, __LINE__);
+   check_close_f(sph_besself(2, 0.1433600485324859619140625e-1f), 0.1370120120703995134662099191103188366059e-4f,  eps * 5000 * 100, __LINE__);
+   check_close_f(sph_besself(2, 0.1760916970670223236083984375e-1f), 0.2067173265753174063228459655801741280461e-4f,  eps * 5000 * 100, __LINE__);
+   check_close_f(sph_besself(7, 0.1252804412841796875e3f), 0.7887555711993028736906736576314283291289e-2f,  eps * 5000 * 100, __LINE__);
+   check_close_f(sph_besself(7, 0.25554705810546875e3f), -0.1463292767579579943284849187188066532514e-2f,  eps * 5000 * 100, __LINE__);
+
+   check_close_f(sph_neumannf(0, 0.408089816570281982421875e0f), -0.2249212131304610409189209411089291558038e1f, eps * 5000 * 100, __LINE__);
+   check_close_f(sph_neumannf(0, 0.6540834903717041015625e0f), -0.1213309779166084571756446746977955970241e1f,   eps * 5000 * 100, __LINE__);
+   check_close_f(sph_neumannf(2, 0.408089816570281982421875e0f), -0.4541702641837159203058389758895634766256e2f,   eps * 5000 * 100, __LINE__);
+   check_close_f(sph_neumannf(2, 0.6540834903717041015625e0f), -0.1156112621471167110574129561700037138981e2f,   eps * 5000 * 100, __LINE__);
+   check_close_f(sph_neumannf(10, 0.1097540378570556640625e1f), -0.2427889658115064857278886600528596240123e9f,   eps * 5000 * 100, __LINE__);
+   check_close_f(sph_neumannf(10, 0.30944411754608154296875e1f), -0.3394649246350136450439882104151313759251e4f,   eps * 5000 * 100, __LINE__);
+
+   check_close_fraction_f(sph_legendref(3, 2, 0.5f), 0.2061460599687871330692286791802688341213f, eps * 5000, __LINE__);
+   check_close_fraction_f(sph_legendref(40, 15, 0.75f), -0.406036847302819452666908966769096223205057182668333862900509f, eps * 5000, __LINE__);
+
+#endif
+}
+
+void test_values(const char* name)
+{
+#ifndef TEST_LD
+   //
+   // First the C99 math functions:
+   //
+   double eps = DBL_EPSILON;
+   double sv;
+   check_close(acosh(cosh(0.5)), 0.5, 5000 * eps, __LINE__);
+   check_close(asinh(sinh(0.5)), 0.5, 5000 * eps, __LINE__);
+   check_close(atanh(tanh(0.5)), 0.5, 5000 * eps, __LINE__);
+
+   check_close(cbrt(1.5 * 1.5 * 1.5), 1.5, 5000 * eps, __LINE__);
+
+   check(copysign(1.0, 1.0) == 1.0, __LINE__);
+   check(copysign(1.0, -1.0) == -1.0, __LINE__);
+   check(copysign(-1.0, 1.0) == 1.0, __LINE__);
+   check(copysign(-1.0, -1.0) == -1.0, __LINE__);
+
+   check_close(erfc(0.125), 0.85968379519866618260697055347837660181302041685015, eps * 1000, __LINE__);
+   check_close(erfc(0.5), 0.47950012218695346231725334610803547126354842424204, eps * 1000, __LINE__);
+   check_close(erfc(1), 0.15729920705028513065877936491739074070393300203370, eps * 1000, __LINE__);
+   check_close(erfc(5), 1.5374597944280348501883434853833788901180503147234e-12, eps * 1000, __LINE__);
+   check_close(erfc(-0.125), 1.1403162048013338173930294465216233981869795831498, eps * 1000, __LINE__);
+   check_close(erfc(-0.5), 1.5204998778130465376827466538919645287364515757580, eps * 1000, __LINE__);
+   check_close(erfc(0), 1, eps * 1000, __LINE__);
+
+   check_close(erf(0.125), 0.14031620480133381739302944652162339818697958314985, eps * 1000, __LINE__);
+   check_close(erf(0.5), 0.52049987781304653768274665389196452873645157575796, eps * 1000, __LINE__);
+   check_close(erf(1), 0.84270079294971486934122063508260925929606699796630, eps * 1000, __LINE__);
+   check_close(erf(5), 0.9999999999984625402055719651498116565146166211099, eps * 1000, __LINE__);
+   check_close(erf(-0.125), -0.14031620480133381739302944652162339818697958314985, eps * 1000, __LINE__);
+   check_close(erf(-0.5), -0.52049987781304653768274665389196452873645157575796, eps * 1000, __LINE__);
+   check_close(erf(0), 0, eps * 1000, __LINE__);
+
+   check_close(log1p(0.582029759883880615234375e0), 0.4587086807259736626531803258754840111707e0, eps * 1000, __LINE__);
+   check_close(expm1(0.582029759883880615234375e0), 0.7896673415707786528734865994546559029663e0, eps * 1000, __LINE__);
+   check_close(log1p(-0.2047410048544406890869140625e-1), -0.2068660038044094868521052319477265955827e-1, eps * 1000, __LINE__);
+   check_close(expm1(-0.2047410048544406890869140625e-1), -0.2026592921724753704129022027337835687888e-1, eps * 1000, __LINE__);
+
+   check_close(fmax(0.1, -0.1), 0.1, 0, __LINE__);
+   check_close(fmin(0.1, -0.1), -0.1, 0, __LINE__);
+
+   check_close(hypot(1.0, 3.0), sqrt(10.0), eps * 500, __LINE__);
+
+   check_close(lgamma(3.5), 1.2009736023470742248160218814507129957702389154682, 5000 * eps, __LINE__);
+   check_close(lgamma(0.125), 2.0194183575537963453202905211670995899482809521344, 5000 * eps, __LINE__);
+   check_close(lgamma(-0.125), 2.1653002489051702517540619481440174064962195287626, 5000 * eps, __LINE__);
+   check_close(lgamma(-3.125), 0.1543111276840418242676072830970532952413339012367, 5000 * eps, __LINE__);
+   check_close(lgamma(-53249.0/1024), -149.43323093420259741100038126078721302600128285894, 5000 * eps, __LINE__);
+
+   check_close(tgamma(3.5), 3.3233509704478425511840640312646472177454052302295, 5000 * eps, __LINE__);
+   check_close(tgamma(0.125), 7.5339415987976119046992298412151336246104195881491, 5000 * eps, __LINE__);
+   check_close(tgamma(-0.125), -8.7172188593831756100190140408231437691829605421405, 5000 * eps, __LINE__);
+   check_close(tgamma(-3.125), 1.1668538708507675587790157356605097019141636072094, 5000 * eps, __LINE__);
+
+#ifdef BOOST_HAS_LONG_LONG
+   check(llround(2.5) == 3L, __LINE__);
+   check(llround(2.25) == 2L, __LINE__);
+#endif
+   check(lround(2.5) == 3.0, __LINE__);
+   check(lround(2.25) == 2.0, __LINE__);
+   check(round(2.5) == 3.0, __LINE__);
+   check(round(2.25) == 2.0, __LINE__);
+
+   check(nextafter(1.0, 2.0) > 1.0, __LINE__);
+   check(nextafter(1.0, -2.0) < 1.0, __LINE__);
+   check(nextafter(nextafter(1.0, 2.0), -2.0) == 1.0, __LINE__);
+   check(nextafter(nextafter(1.0, -2.0), 2.0) == 1.0, __LINE__);
+   check(nextafter(1.0, 2.0) > 1.0, __LINE__);
+   check(nextafter(1.0, -2.0) < 1.0, __LINE__);
+   check(nextafter(nextafter(1.0, 2.0), -2.0) == 1.0, __LINE__);
+   check(nextafter(nextafter(1.0, -2.0), 2.0) == 1.0, __LINE__);
+
+   check(trunc(2.5) == 2.0, __LINE__);
+   check(trunc(2.25) == 2.0, __LINE__);
+
+   //
+   // Now for the TR1 math functions:
+   //
+   check_close_fraction(assoc_laguerre(4, 5, 0.5), 88.31510416666666666666666666666666666667, eps * 100, __LINE__);
+   check_close_fraction(assoc_laguerre(10, 0, 2.5), -0.8802526766660982969576719576719576719577, eps * 100, __LINE__);
+   check_close_fraction(assoc_laguerre(10, 1, 4.5), 1.564311458042689732142857142857142857143, eps * 100, __LINE__);
+   check_close_fraction(assoc_laguerre(10, 6, 8.5), 20.51596541066649098875661375661375661376, eps * 100, __LINE__);
+   check_close_fraction(assoc_laguerre(10, 12, 12.5), -199.5560968456234671241181657848324514991, eps * 100, __LINE__);
+   check_close_fraction(assoc_laguerre(50, 40, 12.5), -4.996769495006119488583146995907246595400e16, eps * 100, __LINE__);
+
+   check_close_fraction(laguerre(1, 0.5), 0.5, eps * 100, __LINE__);
+   check_close_fraction(laguerre(4, 0.5), -0.3307291666666666666666666666666666666667, eps * 100, __LINE__);
+   check_close_fraction(laguerre(7, 0.5), -0.5183392237103174603174603174603174603175, eps * 100, __LINE__);
+   check_close_fraction(laguerre(20, 0.5), 0.3120174870800154148915399248893113634676, eps * 100, __LINE__);
+   check_close_fraction(laguerre(50, 0.5), -0.3181388060269979064951118308575628226834, eps * 100, __LINE__);
+
+   check_close_fraction(laguerre(1, -0.5), 1.5, eps * 100, __LINE__);
+   check_close_fraction(laguerre(4, -0.5), 3.835937500000000000000000000000000000000, eps * 100, __LINE__);
+   check_close_fraction(laguerre(7, -0.5), 7.950934709821428571428571428571428571429, eps * 100, __LINE__);
+   check_close_fraction(laguerre(20, -0.5), 76.12915699869631476833699787070874048223, eps * 100, __LINE__);
+   check_close_fraction(laguerre(50, -0.5), 2307.428631277506570629232863491518399720, eps * 100, __LINE__);
+
+   check_close_fraction(laguerre(1, 4.5), -3.500000000000000000000000000000000000000, eps * 100, __LINE__);
+   check_close_fraction(laguerre(4, 4.5), 0.08593750000000000000000000000000000000000, eps * 100, __LINE__);
+   check_close_fraction(laguerre(7, 4.5), -1.036928013392857142857142857142857142857, eps * 100, __LINE__);
+   check_close_fraction(laguerre(20, 4.5), 1.437239150257817378525582974722170737587, eps * 100, __LINE__);
+   check_close_fraction(laguerre(50, 4.5), -0.7795068145562651416494321484050019245248, eps * 100, __LINE__);
+
+   check_close_fraction(assoc_legendre(4, 2, 0.5), 4.218750000000000000000000000000000000000, eps * 100, __LINE__);
+   check_close_fraction(assoc_legendre(7, 5, 0.5), 5696.789530152175143607977274672800795328, eps * 100, __LINE__);
+   check_close_fraction(assoc_legendre(4, 2, -0.5), 4.218750000000000000000000000000000000000, eps * 100, __LINE__);
+   check_close_fraction(assoc_legendre(7, 5, -0.5), 5696.789530152175143607977274672800795328, eps * 100, __LINE__);
+
+   check_close_fraction(legendre(1, 0.5), 0.5, eps * 100, __LINE__);
+   check_close_fraction(legendre(4, 0.5), -0.2890625000000000000000000000000000000000, eps * 100, __LINE__);
+   check_close_fraction(legendre(7, 0.5), 0.2231445312500000000000000000000000000000, eps * 100, __LINE__);
+   check_close_fraction(legendre(40, 0.5), -0.09542943523261546936538467572384923220258, eps * 100, __LINE__);
+
+   sv = eps / 1024;
+   check_close(beta(1, 1), 1, eps * 20 * 100, __LINE__);
+   check_close(beta(1, 4), 0.25, eps * 20 * 100, __LINE__);
+   check_close(beta(4, 1), 0.25, eps * 20 * 100, __LINE__);
+   check_close(beta(sv, 4), 1/sv, eps * 20 * 100, __LINE__);
+   check_close(beta(4, sv), 1/sv, eps * 20 * 100, __LINE__);
+   check_close(beta(4, 20), 0.00002823263692828910220214568040654997176736, eps * 20 * 100, __LINE__);
+   check_close(beta(0.0125, 0.000023), 43558.24045647538375006349016083320744662, eps * 20 * 100, __LINE__);
+
+   check_close(comp_ellint_1(0), 1.5707963267948966192313216916397514420985846996876, eps * 5000, __LINE__);
+   check_close(comp_ellint_1(0.125), 1.5769867712158131421244030532288080803822271060839, eps * 5000, __LINE__);
+   check_close(comp_ellint_1(0.25), 1.5962422221317835101489690714979498795055744578951, eps * 5000, __LINE__);
+   check_close(comp_ellint_1(300/1024.0), 1.6062331054696636704261124078746600894998873503208, eps * 5000, __LINE__);
+   check_close(comp_ellint_1(400/1024.0), 1.6364782007562008756208066125715722889067992997614, eps * 5000, __LINE__);
+   check_close(comp_ellint_1(-0.5), 1.6857503548125960428712036577990769895008008941411, eps * 5000, __LINE__);
+   check_close(comp_ellint_1(-0.75), 1.9109897807518291965531482187613425592531451316788, eps * 5000, __LINE__);
+
+   check_close(comp_ellint_2(-1), 1.0, eps * 5000, __LINE__);
+   check_close(comp_ellint_2(0), 1.5707963267948966192313216916397514420985846996876, eps * 5000, __LINE__);
+   check_close(comp_ellint_2(100 / 1024.0), 1.5670445330545086723323795143598956428788609133377, eps * 5000, __LINE__);
+   check_close(comp_ellint_2(200 / 1024.0), 1.5557071588766556854463404816624361127847775545087, eps * 5000, __LINE__);
+   check_close(comp_ellint_2(300 / 1024.0), 1.5365278991162754883035625322482669608948678755743, eps * 5000, __LINE__);
+   check_close(comp_ellint_2(400 / 1024.0), 1.5090417763083482272165682786143770446401437564021, eps * 5000, __LINE__);
+   check_close(comp_ellint_2(-0.5), 1.4674622093394271554597952669909161360253617523272, eps * 5000, __LINE__);
+   check_close(comp_ellint_2(-600 / 1024.0), 1.4257538571071297192428217218834579920545946473778, eps * 5000, __LINE__);
+   check_close(comp_ellint_2(-800 / 1024.0), 1.2927868476159125056958680222998765985004489572909, eps * 5000, __LINE__);
+   check_close(comp_ellint_2(-900 / 1024.0), 1.1966864890248739524112920627353824133420353430982, eps * 5000, __LINE__);
+
+   check_close(comp_ellint_3(0.2, 0), 1.586867847454166237308008033828114192951, eps * 5000, __LINE__);
+   check_close(comp_ellint_3(0.4, 0), 1.639999865864511206865258329748601457626, eps * 5000, __LINE__);
+   check_close(comp_ellint_3(0.0, 0), 1.57079632679489661923132169163975144209858469968755291048747, eps * 5000, __LINE__);
+   check_close(comp_ellint_3(0.0, 0.5), 2.221441469079183123507940495030346849307, eps * 5000, __LINE__);
+   check_close(comp_ellint_3(0.3, -4), 0.712708870925620061597924858162260293305195624270730660081949, eps * 5000, __LINE__);
+   check_close(comp_ellint_3(-0.5, -1e+05), 0.00496944596485066055800109163256108604615568144080386919012831, eps * 5000, __LINE__);
+   check_close(comp_ellint_3(-0.75, -1e+10), 0.0000157080225184890546939710019277357161497407143903832703317801, eps * 5000, __LINE__);
+   check_close(comp_ellint_3(-0.875, 1 / 1024.0), 2.18674503176462374414944618968850352696579451638002110619287, eps * 5000, __LINE__);
+   check_close(comp_ellint_3(-0.875, 1023/1024.0), 101.045289804941384100960063898569538919135722087486350366997, eps * 5000, __LINE__);
+
+   check_close(cyl_bessel_i(2.25, 1/(1024.0*1024.0)), 2.34379212133481347189068464680335815256364262507955635911656e-15, eps * 5000, __LINE__);
+   check_close(cyl_bessel_i(5.5, 3.125), 0.0583514045989371500460946536220735787163510569634133670181210, eps * 5000, __LINE__);
+   check_close(cyl_bessel_i(-5 + 1.0/1024.0, 2.125), 0.0267920938009571023702933210070984416052633027166975342895062, eps * 5000, __LINE__);
+   check_close(cyl_bessel_i(-5.5, 10), 597.577606961369169607937419869926705730305175364662688426534, eps * 5000, __LINE__);
+   check_close(cyl_bessel_i(-10486074.0/(1024.0*1024), 1/1024.0), 1.41474005665181350367684623930576333542989766867888186478185e35, eps * 5000, __LINE__);
+   check_close(cyl_bessel_i(-10486074.0/(1024.0*1024), 50), 1.07153277202900671531087024688681954238311679648319534644743e20, eps * 5000, __LINE__);
+   check_close(cyl_bessel_i(144794.0/1024.0, 100), 2066.27694757392660413922181531984160871678224178890247540320, eps * 5000, __LINE__);
+   check_close(cyl_bessel_i(-144794.0/1024.0, 100), 2066.27694672763190927440969155740243346136463461655104698748, eps * 5000, __LINE__);
+
+   check_close(cyl_bessel_j(2457/1024.0, 1/1024.0), 3.80739920118603335646474073457326714709615200130620574875292e-9, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(5.5, 3217.0/1024), 0.0281933076257506091621579544064767140470089107926550720453038, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(-5.5, 3217.0/1024), -2.55820064470647911823175836997490971806135336759164272675969, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(-5.5, 1e+04), 2.449843111985605522111159013846599118397e-03, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(5.5, 1e+04), 0.00759343502722670361395585198154817047185480147294665270646578, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(5.5, 1e+06), -0.000747424248595630177396350688505919533097973148718960064663632, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(5.125, 1e+06), -0.000776600124835704280633640911329691642748783663198207360238214, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(5.875, 1e+06), -0.000466322721115193071631008581529503095819705088484386434589780, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(0.5, 101), 0.0358874487875643822020496677692429287863419555699447066226409, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(-5.5, 1e+04), 0.00244984311198560552211115901384659911839737686676766460822577, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(-5.5, 1e+06), 0.000279243200433579511095229508894156656558211060453622750659554, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(-0.5, 101), 0.0708184798097594268482290389188138201440114881159344944791454, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(-10486074 / (1024*1024.0), 1/1024.0), 1.41474013160494695750009004222225969090304185981836460288562e35, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(-10486074 / (1024*1024.0), 15), -0.0902239288885423309568944543848111461724911781719692852541489, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(10486074 / (1024*1024.0), 1e+02), -0.0547064914615137807616774867984047583596945624129838091326863, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(10486074 / (1024*1024.0), 2e+04), -0.00556783614400875611650958980796060611309029233226596737701688, eps * 5000, __LINE__);
+   check_close(cyl_bessel_j(-10486074 / (1024*1024.0), 1e+02), -0.0547613660316806551338637153942604550779513947674222863858713, eps * 5000, __LINE__);
+
+   check_close(cyl_bessel_k(0.5, 0.875), 0.558532231646608646115729767013630967055657943463362504577189, eps * 5000, __LINE__);
+   check_close(cyl_bessel_k(0.5, 1.125), 0.383621010650189547146769320487006220295290256657827220786527, eps * 5000, __LINE__);
+   check_close(cyl_bessel_k(2.25, ldexp(1.0, -30)), 5.62397392719283271332307799146649700147907612095185712015604e20, eps * 5000, __LINE__);
+   check_close(cyl_bessel_k(5.5, 3217/1024.0), 1.30623288775012596319554857587765179889689223531159532808379, eps * 5000, __LINE__);
+   check_close(cyl_bessel_k(-5.5, 10), 0.0000733045300798502164644836879577484533096239574909573072142667, eps * 5000, __LINE__);
+   check_close(cyl_bessel_k(-5.5, 100), 5.41274555306792267322084448693957747924412508020839543293369e-45, eps * 5000, __LINE__);
+   check_close(cyl_bessel_k(10240/1024.0, 1/1024.0), 2.35522579263922076203415803966825431039900000000993410734978e38, eps * 5000, __LINE__);
+   check_close(cyl_bessel_k(10240/1024.0, 10), 0.00161425530039067002345725193091329085443750382929208307802221, eps * 5000, __LINE__);
+   check_close(cyl_bessel_k(144793/1024.0, 100), 1.39565245860302528069481472855619216759142225046370312329416e-6, eps * 5000, __LINE__);
+   check_close(cyl_bessel_k(144793/1024.0, 200), 9.11950412043225432171915100042647230802198254567007382956336e-68, eps * 5000, __LINE__);
+
+   check_close(cyl_neumann(0.5, 1 / (1024.0*1024)), -817.033790261762580469303126467917092806755460418223776544122, eps * 5000, __LINE__);
+   check_close(cyl_neumann(5.5, 3.125), -2.61489440328417468776474188539366752698192046890955453259866, eps * 5000, __LINE__);
+   check_close(cyl_neumann(-5.5, 3.125), -0.0274994493896489729948109971802244976377957234563871795364056, eps * 5000, __LINE__);
+   check_close(cyl_neumann(-5.5, 1e+04), -0.00759343502722670361395585198154817047185480147294665270646578, eps * 5000, __LINE__);
+   check_close(cyl_neumann(-10486074 / (1024*1024.0), 1/1024.0), -1.50382374389531766117868938966858995093408410498915220070230e38, eps * 5000, __LINE__);
+   check_close(cyl_neumann(-10486074 / (1024*1024.0), 1e+02), 0.0583041891319026009955779707640455341990844522293730214223545, eps * 5000, __LINE__);
+   check_close(cyl_neumann(141.75, 1e+02), -5.38829231428696507293191118661269920130838607482708483122068e9, eps * 5000, __LINE__);
+   check_close(cyl_neumann(141.75, 2e+04), -0.00376577888677186194728129112270988602876597726657372330194186, eps * 5000, __LINE__);
+   check_close(cyl_neumann(-141.75, 1e+02), -3.81009803444766877495905954105669819951653361036342457919021e9, eps * 5000, __LINE__);
+
+   check_close(ellint_1(0, 0), 0, eps * 5000, __LINE__);
+   check_close(ellint_1(0, -10), -10, eps * 5000, __LINE__);
+   check_close(ellint_1(-1, -1), -1.2261911708835170708130609674719067527242483502207, eps * 5000, __LINE__);
+   check_close(ellint_1(0.875, -4), -5.3190556182262405182189463092940736859067548232647, eps * 5000, __LINE__);
+   check_close(ellint_1(-0.625, 8), 9.0419973860310100524448893214394562615252527557062, eps * 5000, __LINE__);
+   check_close(ellint_1(0.875, 1e-05), 0.000010000000000127604166668510945638036143355898993088, eps * 5000, __LINE__);
+   check_close(ellint_1(10/1024.0, 1e+05), 100002.38431454899771096037307519328741455615271038, eps * 5000, __LINE__);
+   check_close(ellint_1(1, 1e-20), 1.0000000000000000000000000000000000000000166666667e-20, eps * 5000, __LINE__);
+   check_close(ellint_1(1e-20, 1e-20), 1.000000000000000e-20, eps * 5000, __LINE__);
+   check_close(ellint_1(400/1024.0, 1e+20), 1.0418143796499216839719289963154558027005142709763e20, eps * 5000, __LINE__);
+   check_close(ellint_1(0.5, 2), 2.1765877052210673672479877957388515321497888026770, eps * 5000, __LINE__);
+   check_close(ellint_1(0.5, 4), 4.2543274975235836861894752787874633017836785640477, eps * 5000, __LINE__);
+   check_close(ellint_1(0.5, 6), 6.4588766202317746302999080620490579800463614807916, eps * 5000, __LINE__);
+   check_close(ellint_1(0.5, 10), 10.697409951222544858346795279378531495869386960090, eps * 5000, __LINE__);
+   check_close(ellint_1(0.5, -2), -2.1765877052210673672479877957388515321497888026770, eps * 5000, __LINE__);
+   check_close(ellint_1(0.5, -4), -4.2543274975235836861894752787874633017836785640477, eps * 5000, __LINE__);
+   check_close(ellint_1(0.5, -6), -6.4588766202317746302999080620490579800463614807916, eps * 5000, __LINE__);
+   check_close(ellint_1(0.5, -10), -10.697409951222544858346795279378531495869386960090, eps * 5000, __LINE__);
+
+   check_close(ellint_2(0, 0), 0, eps * 5000, __LINE__);
+   check_close(ellint_2(0, -10), -10, eps * 5000, __LINE__);
+   check_close(ellint_2(-1, -1), -0.84147098480789650665250232163029899962256306079837, eps * 5000, __LINE__);
+   check_close(ellint_2(900 / 1024.0, -4), -3.1756145986492562317862928524528520686391383168377, eps * 5000, __LINE__);
+   check_close(ellint_2(-600 / 1024.0, 8), 7.2473147180505693037677015377802777959345489333465, eps * 5000, __LINE__);
+   check_close(ellint_2(800 / 1024.0, 1e-05), 9.999999999898274739584436515967055859383969942432E-6, eps * 5000, __LINE__);
+   check_close(ellint_2(100 / 1024.0, 1e+05), 99761.153306972066658135668386691227343323331995888, eps * 5000, __LINE__);
+   check_close(ellint_2(-0.5, 1e+10), 9.3421545766487137036576748555295222252286528414669e9, eps * 5000, __LINE__);
+   check_close(ellint_2(400 / 1024.0, ldexp(1, 66)), 7.0886102721911705466476846969992069994308167515242e19, eps * 5000, __LINE__);
+
+   check_close(ellint_3(0, 1, -1), -1.557407724654902230506974807458360173087, eps * 5000, __LINE__);
+   check_close(ellint_3(0.4, 0, -4), -4.153623371196831087495427530365430979011, eps * 5000, __LINE__);
+   check_close(ellint_3(-0.6, 0, 8), 8.935930619078575123490612395578518914416, eps * 5000, __LINE__);
+   check_close(ellint_3(0.25, 0, 0.5), 0.501246705365439492445236118603525029757890291780157969500480, eps * 5000, __LINE__);
+   check_close(ellint_3(0, 0, 0.5), 0.5, eps * 5000, __LINE__);
+   check_close(ellint_3(0, -2, 0.5), 0.437501067017546278595664813509803743009132067629603474488486, eps * 5000, __LINE__);
+   check_close(ellint_3(0, 0.25, 0.5), 0.510269830229213412212501938035914557628394166585442994564135, eps * 5000, __LINE__);
+   check_close(ellint_3(0, 0.75, 0.5), 0.533293253875952645421201146925578536430596894471541312806165, eps * 5000, __LINE__);
+   check_close(ellint_3(0, 0.75, 0.75), 0.871827580412760575085768367421866079353646112288567703061975, eps * 5000, __LINE__);
+   check_close(ellint_3(0, 1, 0.25), 0.255341921221036266504482236490473678204201638800822621740476, eps * 5000, __LINE__);
+   check_close(ellint_3(0, 2, 0.25), 0.261119051639220165094943572468224137699644963125853641716219, eps * 5000, __LINE__);
+   check_close(ellint_3(0, 1023/1024.0, 1.5), 13.2821612239764190363647953338544569682942329604483733197131, eps * 5000, __LINE__);
+   check_close(ellint_3(0.5, 0.5, -1), -1.228014414316220642611298946293865487807, eps * 5000, __LINE__);
+   check_close(ellint_3(0.5, 0.5, 1e+10), 1.536591003599172091573590441336982730551e+10, eps * 5000, __LINE__);
+   check_close(ellint_3(0.75, -1e+05, 10), 0.0347926099493147087821620459290460547131012904008557007934290, eps * 5000, __LINE__);
+   check_close(ellint_3(0.875, -1e+10, 10), 0.000109956202759561502329123384755016959364346382187364656768212, eps * 5000, __LINE__);
+   check_close(ellint_3(0.875, -1e+10, 1e+20), 1.00000626665567332602765201107198822183913978895904937646809e15, eps * 5000, __LINE__);
+   check_close(ellint_3(0.875, -1e+10, 1608/1024.0), 0.0000157080616044072676127333183571107873332593142625043567690379, eps * 5000, __LINE__);
+   check_close(ellint_3(0.875, 1-1 / 1024.0, 1e+20), 6.43274293944380717581167058274600202023334985100499739678963e21, eps * 5000, __LINE__);
+   check_close(ellint_3(0.25, 50, 0.1), 0.124573770342749525407523258569507331686458866564082916835900, eps * 5000, __LINE__);
+   check_close(ellint_3(0.25, 1.125, 1), 1.77299767784815770192352979665283069318388205110727241629752, eps * 5000, __LINE__);
+
+   check_close(expint(1/1024.0), -6.35327933972759151358547423727042905862963067106751711596065, eps * 5000, __LINE__);
+   check_close(expint(0.125), -1.37320852494298333781545045921206470808223543321810480716122, eps * 5000, __LINE__);
+   check_close(expint(0.5), 0.454219904863173579920523812662802365281405554352642045162818, eps * 5000, __LINE__);
+   check_close(expint(1), 1.89511781635593675546652093433163426901706058173270759164623, eps * 5000, __LINE__);
+   check_close(expint(50.5), 1.72763195602911805201155668940185673806099654090456049881069e20, eps * 5000, __LINE__);
+   check_close(expint(-1/1024.0), -6.35523246483107180261445551935803221293763008553775821607264, eps * 5000, __LINE__);
+   check_close(expint(-0.125), -1.62342564058416879145630692462440887363310605737209536579267, eps * 5000, __LINE__);
+   check_close(expint(-0.5), -0.559773594776160811746795939315085235226846890316353515248293, eps * 5000, __LINE__);
+   check_close(expint(-1), -0.219383934395520273677163775460121649031047293406908207577979, eps * 5000, __LINE__);
+   check_close(expint(-50.5), -2.27237132932219350440719707268817831250090574830769670186618e-24, eps * 5000, __LINE__);
+
+   check_close_fraction(hermite(0, 1), 1.L, 100 * eps, __LINE__);
+   check_close_fraction(hermite(1, 1), 2.L, 100 * eps, __LINE__);
+   check_close_fraction(hermite(1, 2), 4.L, 100 * eps, __LINE__);
+   check_close_fraction(hermite(1, 10), 20, 100 * eps, __LINE__);
+   check_close_fraction(hermite(1, 100), 200, 100 * eps, __LINE__);
+   check_close_fraction(hermite(1, 1e6), 2e6, 100 * eps, __LINE__);
+   check_close_fraction(hermite(10, 30), 5.896624628001300E+17, 100 * eps, __LINE__);
+   check_close_fraction(hermite(10, 1000), 1.023976960161280E+33, 100 * eps, __LINE__);
+   check_close_fraction(hermite(10, 10), 8.093278209760000E+12, 100 * eps, __LINE__);
+   check_close_fraction(hermite(10, -10), 8.093278209760000E+12, 100 * eps, __LINE__);
+   check_close_fraction(hermite(3, -10), -7.880000000000000E+3, 100 * eps, __LINE__);
+   check_close_fraction(hermite(3, -1000), -7.999988000000000E+9, 100 * eps, __LINE__);
+   check_close_fraction(hermite(3, -1000000), -7.999999999988000E+18, 100 * eps, __LINE__);
+
+   check_close(riemann_zeta(0.125), -0.63277562349869525529352526763564627152686379131122, eps * 5000, __LINE__);
+   check_close(riemann_zeta(1023 / 1024.0), -1023.4228554489429786541032870895167448906103303056, eps * 5000, __LINE__);
+   check_close(riemann_zeta(1025 / 1024.0), 1024.5772867695045940578681624248887776501597556226, eps * 5000, __LINE__);
+   check_close(riemann_zeta(0.5), -1.46035450880958681288949915251529801246722933101258149054289, eps * 5000, __LINE__);
+   check_close(riemann_zeta(1.125), 8.5862412945105752999607544082693023591996301183069, eps * 5000, __LINE__);
+   check_close(riemann_zeta(2), 1.6449340668482264364724151666460251892189499012068, eps * 5000, __LINE__);
+   check_close(riemann_zeta(3.5), 1.1267338673170566464278124918549842722219969574036, eps * 5000, __LINE__);
+   check_close(riemann_zeta(4), 1.08232323371113819151600369654116790277475095191872690768298, eps * 5000, __LINE__);
+   check_close(riemann_zeta(4 + 1 / 1024.0), 1.08225596856391369799036835439238249195298434901488518878804, eps * 5000, __LINE__);
+   check_close(riemann_zeta(4.5), 1.05470751076145426402296728896028011727249383295625173068468, eps * 5000, __LINE__);
+   check_close(riemann_zeta(6.5), 1.01200589988852479610078491680478352908773213619144808841031, eps * 5000, __LINE__);
+   check_close(riemann_zeta(7.5), 1.00582672753652280770224164440459408011782510096320822989663, eps * 5000, __LINE__);
+   check_close(riemann_zeta(8.125), 1.0037305205308161603183307711439385250181080293472, eps * 5000, __LINE__);
+   check_close(riemann_zeta(16.125), 1.0000140128224754088474783648500235958510030511915, eps * 5000, __LINE__);
+   check_close(riemann_zeta(0), -0.5, eps * 5000, __LINE__);
+   check_close(riemann_zeta(-0.125), -0.39906966894504503550986928301421235400280637468895, eps * 5000, __LINE__);
+   check_close(riemann_zeta(-1), -0.083333333333333333333333333333333333333333333333333, eps * 5000, __LINE__);
+   check_close(riemann_zeta(-2), 0, eps * 5000, __LINE__);
+   check_close(riemann_zeta(-2.5), 0.0085169287778503305423585670283444869362759902200745, eps * 5000 * 3, __LINE__);
+   check_close(riemann_zeta(-3), 0.0083333333333333333333333333333333333333333333333333, eps * 5000, __LINE__);
+   check_close(riemann_zeta(-4), 0, eps * 5000, __LINE__);
+   check_close(riemann_zeta(-20), 0, eps * 5000 * 100, __LINE__);
+   check_close(riemann_zeta(-21), -281.46014492753623188405797101449275362318840579710, eps * 5000 * 100, __LINE__);
+   check_close(riemann_zeta(-30.125), 2.2762941726834511267740045451463455513839970804578e7, eps * 5000 * 100, __LINE__);
+
+   check_close(sph_bessel(0, 0.1433600485324859619140625e-1), 0.9999657468461303487880990241993035937654e0,  eps * 5000 * 100, __LINE__);
+   check_close(sph_bessel(0, 0.1760916970670223236083984375e-1), 0.9999483203249623334100130061926184665364e0,  eps * 5000 * 100, __LINE__);
+   check_close(sph_bessel(2, 0.1433600485324859619140625e-1), 0.1370120120703995134662099191103188366059e-4,  eps * 5000 * 100, __LINE__);
+   check_close(sph_bessel(2, 0.1760916970670223236083984375e-1), 0.2067173265753174063228459655801741280461e-4,  eps * 5000 * 100, __LINE__);
+   check_close(sph_bessel(7, 0.1252804412841796875e3), 0.7887555711993028736906736576314283291289e-2,  eps * 5000 * 100, __LINE__);
+   check_close(sph_bessel(7, 0.25554705810546875e3), -0.1463292767579579943284849187188066532514e-2,  eps * 5000 * 100, __LINE__);
+
+   check_close(sph_neumann(0, 0.408089816570281982421875e0), -0.2249212131304610409189209411089291558038e1, eps * 5000 * 100, __LINE__);
+   check_close(sph_neumann(0, 0.6540834903717041015625e0), -0.1213309779166084571756446746977955970241e1,   eps * 5000 * 100, __LINE__);
+   check_close(sph_neumann(2, 0.408089816570281982421875e0), -0.4541702641837159203058389758895634766256e2,   eps * 5000 * 100, __LINE__);
+   check_close(sph_neumann(2, 0.6540834903717041015625e0), -0.1156112621471167110574129561700037138981e2,   eps * 5000 * 100, __LINE__);
+   check_close(sph_neumann(10, 0.1097540378570556640625e1), -0.2427889658115064857278886600528596240123e9,   eps * 5000 * 100, __LINE__);
+   check_close(sph_neumann(10, 0.30944411754608154296875e1), -0.3394649246350136450439882104151313759251e4,   eps * 5000 * 100, __LINE__);
+
+   check_close_fraction(sph_legendre(3, 2, 0.5), 0.2061460599687871330692286791802688341213, eps * 5000, __LINE__);
+   check_close_fraction(sph_legendre(40, 15, 0.75), -0.406036847302819452666908966769096223205057182668333862900509, eps * 5000, __LINE__);
+#endif
+}
+
+void test_valuesl(const char* name)
+{
+#ifdef TEST_LD
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+   //
+   // First the C99 math functions:
+   //
+   long double eps = LDBL_EPSILON;
+   long double sv;
+   check_close_l(acoshl(coshl(0.5L)), 0.5L, 5000 * eps, __LINE__);
+   check_close_l(asinhl(sinhl(0.5L)), 0.5L, 5000 * eps, __LINE__);
+   check_close_l(atanhl(tanhl(0.5L)), 0.5L, 5000 * eps, __LINE__);
+
+   check_close_l(cbrtl(1.5L * 1.5L * 1.5L), 1.5L, 5000 * eps, __LINE__);
+
+   check(copysignl(1.0L, 1.0L) == 1.0L, __LINE__);
+   check(copysignl(1.0L, -1.0L) == -1.0L, __LINE__);
+   check(copysignl(-1.0L, 1.0L) == 1.0L, __LINE__);
+   check(copysignl(-1.0L, -1.0L) == -1.0L, __LINE__);
+
+   check_close_l(erfcl(0.125), 0.85968379519866618260697055347837660181302041685015L, eps * 1000, __LINE__);
+   check_close_l(erfcl(0.5), 0.47950012218695346231725334610803547126354842424204L, eps * 1000, __LINE__);
+   check_close_l(erfcl(1), 0.15729920705028513065877936491739074070393300203370L, eps * 1000, __LINE__);
+   check_close_l(erfcl(5), 1.5374597944280348501883434853833788901180503147234e-12L, eps * 1000, __LINE__);
+   check_close_l(erfcl(-0.125), 1.1403162048013338173930294465216233981869795831498L, eps * 1000, __LINE__);
+   check_close_l(erfcl(-0.5), 1.5204998778130465376827466538919645287364515757580L, eps * 1000, __LINE__);
+   check_close_l(erfcl(0), 1, eps * 1000, __LINE__);
+
+   check_close_l(erfl(0.125), 0.14031620480133381739302944652162339818697958314985L, eps * 1000, __LINE__);
+   check_close_l(erfl(0.5), 0.52049987781304653768274665389196452873645157575796L, eps * 1000, __LINE__);
+   check_close_l(erfl(1), 0.84270079294971486934122063508260925929606699796630L, eps * 1000, __LINE__);
+   check_close_l(erfl(5), 0.9999999999984625402055719651498116565146166211099L, eps * 1000, __LINE__);
+   check_close_l(erfl(-0.125), -0.14031620480133381739302944652162339818697958314985L, eps * 1000, __LINE__);
+   check_close_l(erfl(-0.5), -0.52049987781304653768274665389196452873645157575796L, eps * 1000, __LINE__);
+   check_close_l(erfl(0), 0, eps * 1000, __LINE__);
+
+   check_close_l(log1pl(0.582029759883880615234375e0), 0.4587086807259736626531803258754840111707e0L, eps * 1000, __LINE__);
+   check_close_l(expm1l(0.582029759883880615234375e0), 0.7896673415707786528734865994546559029663e0L, eps * 1000, __LINE__);
+   check_close_l(log1pl(-0.2047410048544406890869140625e-1), -0.2068660038044094868521052319477265955827e-1L, eps * 1000, __LINE__);
+   check_close_l(expm1l(-0.2047410048544406890869140625e-1), -0.2026592921724753704129022027337835687888e-1L, eps * 1000, __LINE__);
+
+   check_close_l(fmaxl(0.1L, -0.1L), 0.1L, 0, __LINE__);
+   check_close_l(fminl(0.1L, -0.1L), -0.1L, 0, __LINE__);
+
+   check_close_l(hypotl(1.0L, 3.0L), sqrtl(10.0L), eps * 500, __LINE__);
+
+   check_close_l(lgammal(3.5), 1.2009736023470742248160218814507129957702389154682L, 5000 * eps, __LINE__);
+   check_close_l(lgammal(0.125), 2.0194183575537963453202905211670995899482809521344L, 5000 * eps, __LINE__);
+   check_close_l(lgammal(-0.125), 2.1653002489051702517540619481440174064962195287626L, 5000 * eps, __LINE__);
+   check_close_l(lgammal(-3.125), 0.1543111276840418242676072830970532952413339012367L, 5000 * eps, __LINE__);
+   check_close_l(lgammal(-53249.0/1024), -149.43323093420259741100038126078721302600128285894L, 5000 * eps, __LINE__);
+
+   check_close_l(tgammal(3.5), 3.3233509704478425511840640312646472177454052302295L, 5000 * eps, __LINE__);
+   check_close_l(tgammal(0.125), 7.5339415987976119046992298412151336246104195881491L, 5000 * eps, __LINE__);
+   check_close_l(tgammal(-0.125), -8.7172188593831756100190140408231437691829605421405L, 5000 * eps, __LINE__);
+   check_close_l(tgammal(-3.125), 1.1668538708507675587790157356605097019141636072094L, 5000 * eps, __LINE__);
+
+#ifdef BOOST_HAS_LONG_LONG
+   check(llroundl(2.5L) == 3LL, __LINE__);
+   check(llroundl(2.25L) == 2LL, __LINE__);
+#endif
+   check(lroundl(2.5L) == 3.0L, __LINE__);
+   check(lroundl(2.25L) == 2.0L, __LINE__);
+   check(roundl(2.5L) == 3.0L, __LINE__);
+   check(roundl(2.25L) == 2.0L, __LINE__);
+
+   check(nextafterl(1.0L, 2.0L) > 1.0L, __LINE__);
+   check(nextafterl(1.0L, -2.0L) < 1.0L, __LINE__);
+   check(nextafterl(nextafterl(1.0L, 2.0L), -2.0L) == 1.0L, __LINE__);
+   check(nextafterl(nextafterl(1.0L, -2.0L), 2.0L) == 1.0L, __LINE__);
+   check(nextafterl(1.0L, 2.0L) > 1.0L, __LINE__);
+   check(nextafterl(1.0L, -2.0L) < 1.0L, __LINE__);
+   check(nextafterl(nextafterl(1.0L, 2.0L), -2.0L) == 1.0L, __LINE__);
+   check(nextafterl(nextafterl(1.0L, -2.0L), 2.0L) == 1.0L, __LINE__);
+
+   check(truncl(2.5L) == 2.0L, __LINE__);
+   check(truncl(2.25L) == 2.0L, __LINE__);
+
+   //
+   // Now for the TR1 math functions:
+   //
+   check_close_fraction_l(assoc_laguerrel(4, 5, 0.5L), 88.31510416666666666666666666666666666667L, eps * 100, __LINE__);
+   check_close_fraction_l(assoc_laguerrel(10, 0, 2.5L), -0.8802526766660982969576719576719576719577L, eps * 100, __LINE__);
+   check_close_fraction_l(assoc_laguerrel(10, 1, 4.5L), 1.564311458042689732142857142857142857143L, eps * 100, __LINE__);
+   check_close_fraction_l(assoc_laguerrel(10, 6, 8.5L), 20.51596541066649098875661375661375661376L, eps * 100, __LINE__);
+   check_close_fraction_l(assoc_laguerrel(10, 12, 12.5L), -199.5560968456234671241181657848324514991L, eps * 100, __LINE__);
+   check_close_fraction_l(assoc_laguerrel(50, 40, 12.5L), -4.996769495006119488583146995907246595400e16L, eps * 100, __LINE__);
+
+   check_close_fraction_l(laguerrel(1, 0.5L), 0.5L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(4, 0.5L), -0.3307291666666666666666666666666666666667L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(7, 0.5L), -0.5183392237103174603174603174603174603175L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(20, 0.5L), 0.3120174870800154148915399248893113634676L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(50, 0.5L), -0.3181388060269979064951118308575628226834L, eps * 100, __LINE__);
+
+   check_close_fraction_l(laguerrel(1, -0.5L), 1.5L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(4, -0.5L), 3.835937500000000000000000000000000000000L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(7, -0.5L), 7.950934709821428571428571428571428571429L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(20, -0.5L), 76.12915699869631476833699787070874048223L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(50, -0.5L), 2307.428631277506570629232863491518399720L, eps * 100, __LINE__);
+
+   check_close_fraction_l(laguerrel(1, 4.5L), -3.500000000000000000000000000000000000000L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(4, 4.5L), 0.08593750000000000000000000000000000000000L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(7, 4.5L), -1.036928013392857142857142857142857142857L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(20, 4.5L), 1.437239150257817378525582974722170737587L, eps * 100, __LINE__);
+   check_close_fraction_l(laguerrel(50, 4.5L), -0.7795068145562651416494321484050019245248L, eps * 100, __LINE__);
+
+   check_close_fraction_l(assoc_legendrel(4, 2, 0.5L), 4.218750000000000000000000000000000000000L, eps * 100, __LINE__);
+   check_close_fraction_l(assoc_legendrel(7, 5, 0.5L), 5696.789530152175143607977274672800795328L, eps * 100, __LINE__);
+   check_close_fraction_l(assoc_legendrel(4, 2, -0.5L), 4.218750000000000000000000000000000000000L, eps * 100, __LINE__);
+   check_close_fraction_l(assoc_legendrel(7, 5, -0.5L), 5696.789530152175143607977274672800795328L, eps * 100, __LINE__);
+
+   check_close_fraction_l(legendrel(1, 0.5L), 0.5L, eps * 100, __LINE__);
+   check_close_fraction_l(legendrel(4, 0.5L), -0.2890625000000000000000000000000000000000L, eps * 100, __LINE__);
+   check_close_fraction_l(legendrel(7, 0.5L), 0.2231445312500000000000000000000000000000L, eps * 100, __LINE__);
+   check_close_fraction_l(legendrel(40, 0.5L), -0.09542943523261546936538467572384923220258L, eps * 100, __LINE__);
+
+   sv = eps / 1024;
+   check_close_l(betal(1, 1), 1, eps * 20 * 100, __LINE__);
+   check_close_l(betal(1, 4), 0.25, eps * 20 * 100, __LINE__);
+   check_close_l(betal(4, 1), 0.25, eps * 20 * 100, __LINE__);
+   check_close_l(betal(sv, 4), 1/sv, eps * 20 * 100, __LINE__);
+   check_close_l(betal(4, sv), 1/sv, eps * 20 * 100, __LINE__);
+   check_close_l(betal(4, 20), 0.00002823263692828910220214568040654997176736L, eps * 20 * 100, __LINE__);
+   check_close_l(betal(0.0125L, 0.000023L), 43558.24045647538375006349016083320744662L, eps * 20 * 100, __LINE__);
+
+   check_close_l(comp_ellint_1l(0), 1.5707963267948966192313216916397514420985846996876L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_1l(0.125), 1.5769867712158131421244030532288080803822271060839L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_1l(0.25), 1.5962422221317835101489690714979498795055744578951L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_1l(300/1024.0L), 1.6062331054696636704261124078746600894998873503208L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_1l(400/1024.0L), 1.6364782007562008756208066125715722889067992997614L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_1l(-0.5), 1.6857503548125960428712036577990769895008008941411L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_1l(-0.75), 1.9109897807518291965531482187613425592531451316788L, eps * 5000, __LINE__);
+
+   check_close_l(comp_ellint_2l(-1), 1.0L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_2l(0), 1.5707963267948966192313216916397514420985846996876L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_2l(100 / 1024.0L), 1.5670445330545086723323795143598956428788609133377L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_2l(200 / 1024.0L), 1.5557071588766556854463404816624361127847775545087L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_2l(300 / 1024.0L), 1.5365278991162754883035625322482669608948678755743L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_2l(400 / 1024.0L), 1.5090417763083482272165682786143770446401437564021L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_2l(-0.5), 1.4674622093394271554597952669909161360253617523272L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_2l(-600 / 1024.0L), 1.4257538571071297192428217218834579920545946473778L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_2l(-800 / 1024.0L), 1.2927868476159125056958680222998765985004489572909L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_2l(-900 / 1024.0L), 1.1966864890248739524112920627353824133420353430982L, eps * 5000, __LINE__);
+
+   check_close_l(comp_ellint_3l(0.2L, 0), 1.586867847454166237308008033828114192951L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_3l(0.4L, 0), 1.639999865864511206865258329748601457626L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_3l(0.0L, 0), 1.57079632679489661923132169163975144209858469968755291048747L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_3l(0.0L, 0.5), 2.221441469079183123507940495030346849307L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_3l(0.3L, -4), 0.712708870925620061597924858162260293305195624270730660081949L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_3l(-0.5L, -1e+05), 0.00496944596485066055800109163256108604615568144080386919012831L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_3l(-0.75L, -1e+10), 0.0000157080225184890546939710019277357161497407143903832703317801L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_3l(-0.875L, 1 / 1024.0L), 2.18674503176462374414944618968850352696579451638002110619287L, eps * 5000, __LINE__);
+   check_close_l(comp_ellint_3l(-0.875L, 1023/1024.0L), 101.045289804941384100960063898569538919135722087486350366997L, eps * 5000, __LINE__);
+
+   check_close_l(cyl_bessel_il(2.25L, 1/(1024.0L*1024.0L)), 2.34379212133481347189068464680335815256364262507955635911656e-15L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_il(5.5L, 3.125), 0.0583514045989371500460946536220735787163510569634133670181210L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_il(-5 + 1.0L/1024.0L, 2.125), 0.0267920938009571023702933210070984416052633027166975342895062L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_il(-5.5L, 10), 597.577606961369169607937419869926705730305175364662688426534L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_il(-10486074.0L/(1024.0L*1024), 1/1024.0L), 1.41474005665181350367684623930576333542989766867888186478185e35L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_il(-10486074.0L/(1024.0L*1024), 50), 1.07153277202900671531087024688681954238311679648319534644743e20L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_il(144794.0L/1024.0L, 100), 2066.27694757392660413922181531984160871678224178890247540320L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_il(-144794.0L/1024.0L, 100), 2066.27694672763190927440969155740243346136463461655104698748L, eps * 5000, __LINE__);
+
+   check_close_l(cyl_bessel_jl(2457/1024.0L, 1/1024.0L), 3.80739920118603335646474073457326714709615200130620574875292e-9L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(5.5L, 3217.0L/1024), 0.0281933076257506091621579544064767140470089107926550720453038L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(-5.5L, 3217.0L/1024), -2.55820064470647911823175836997490971806135336759164272675969L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(-5.5L, 1e+04L), 2.449843111985605522111159013846599118397e-03L, eps * 50000, __LINE__);
+   check_close_l(cyl_bessel_jl(5.5L, 1e+04L), 0.00759343502722670361395585198154817047185480147294665270646578L, eps * 5000, __LINE__);
+   //check_close_l(cyl_bessel_jl(5.5L, 1e+06), -0.000747424248595630177396350688505919533097973148718960064663632L, eps * 5000, __LINE__);
+   //check_close_l(cyl_bessel_jl(5.125L, 1e+06), -0.000776600124835704280633640911329691642748783663198207360238214L, eps * 5000, __LINE__);
+   //check_close_l(cyl_bessel_jl(5.875L, 1e+06), -0.000466322721115193071631008581529503095819705088484386434589780L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(0.5L, 101), 0.0358874487875643822020496677692429287863419555699447066226409L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(-5.5L, 1e+04L), 0.00244984311198560552211115901384659911839737686676766460822577L, eps * 50000, __LINE__);
+   //check_close_l(cyl_bessel_jl(-5.5L, 1e+06), 0.000279243200433579511095229508894156656558211060453622750659554L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(-0.5L, 101), 0.0708184798097594268482290389188138201440114881159344944791454L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(-10486074 / (1024*1024.0L), 1/1024.0L), 1.41474013160494695750009004222225969090304185981836460288562e35L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(-10486074 / (1024*1024.0L), 15), -0.0902239288885423309568944543848111461724911781719692852541489L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(10486074 / (1024*1024.0L), 1e+02L), -0.0547064914615137807616774867984047583596945624129838091326863L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(10486074 / (1024*1024.0L), 2e+04L), -0.00556783614400875611650958980796060611309029233226596737701688L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_jl(-10486074 / (1024*1024.0L), 1e+02L), -0.0547613660316806551338637153942604550779513947674222863858713L, eps * 5000, __LINE__);
+
+   check_close_l(cyl_bessel_kl(0.5L, 0.875), 0.558532231646608646115729767013630967055657943463362504577189L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_kl(0.5L, 1.125), 0.383621010650189547146769320487006220295290256657827220786527L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_kl(2.25L, ldexpl(1.0L, -30)), 5.62397392719283271332307799146649700147907612095185712015604e20L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_kl(5.5L, 3217/1024.0L), 1.30623288775012596319554857587765179889689223531159532808379L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_kl(-5.5L, 10), 0.0000733045300798502164644836879577484533096239574909573072142667L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_kl(-5.5L, 100), 5.41274555306792267322084448693957747924412508020839543293369e-45L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_kl(10240/1024.0L, 1/1024.0L), 2.35522579263922076203415803966825431039900000000993410734978e38L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_kl(10240/1024.0L, 10), 0.00161425530039067002345725193091329085443750382929208307802221L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_kl(144793/1024.0L, 100), 1.39565245860302528069481472855619216759142225046370312329416e-6L, eps * 5000, __LINE__);
+   check_close_l(cyl_bessel_kl(144793/1024.0L, 200), 9.11950412043225432171915100042647230802198254567007382956336e-68L, eps * 5000, __LINE__);
+
+   check_close_l(cyl_neumannl(0.5L, 1 / (1024.0L*1024)), -817.033790261762580469303126467917092806755460418223776544122L, eps * 5000, __LINE__);
+   check_close_l(cyl_neumannl(5.5L, 3.125), -2.61489440328417468776474188539366752698192046890955453259866L, eps * 5000, __LINE__);
+   check_close_l(cyl_neumannl(-5.5L, 3.125), -0.0274994493896489729948109971802244976377957234563871795364056L, eps * 5000, __LINE__);
+   check_close_l(cyl_neumannl(-5.5L, 1e+04), -0.00759343502722670361395585198154817047185480147294665270646578L, eps * 5000, __LINE__);
+   check_close_l(cyl_neumannl(-10486074 / (1024*1024.0L), 1/1024.0L), -1.50382374389531766117868938966858995093408410498915220070230e38L, eps * 5000, __LINE__);
+   check_close_l(cyl_neumannl(-10486074 / (1024*1024.0L), 1e+02L), 0.0583041891319026009955779707640455341990844522293730214223545L, eps * 5000, __LINE__);
+   check_close_l(cyl_neumannl(141.75L, 1e+02), -5.38829231428696507293191118661269920130838607482708483122068e9L, eps * 5000, __LINE__);
+   check_close_l(cyl_neumannl(141.75L, 2e+04), -0.00376577888677186194728129112270988602876597726657372330194186L, eps * 50000, __LINE__);
+   check_close_l(cyl_neumannl(-141.75L, 1e+02), -3.81009803444766877495905954105669819951653361036342457919021e9L, eps * 5000, __LINE__);
+
+   check_close_l(ellint_1l(0, 0), 0, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0, -10), -10, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(-1, -1), -1.2261911708835170708130609674719067527242483502207L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0.875L, -4), -5.3190556182262405182189463092940736859067548232647L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(-0.625L, 8), 9.0419973860310100524448893214394562615252527557062L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0.875L, 1e-05L), 0.000010000000000127604166668510945638036143355898993088L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(10/1024.0L, 1e+05L), 100002.38431454899771096037307519328741455615271038L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(1, 1e-20L), 1.0000000000000000000000000000000000000000166666667e-20L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(1e-20L, 1e-20L), 1.000000000000000e-20L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(400/1024.0L, 1e+20L), 1.0418143796499216839719289963154558027005142709763e20L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0.5L, 2), 2.1765877052210673672479877957388515321497888026770L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0.5L, 4), 4.2543274975235836861894752787874633017836785640477L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0.5L, 6), 6.4588766202317746302999080620490579800463614807916L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0.5L, 10), 10.697409951222544858346795279378531495869386960090L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0.5L, -2), -2.1765877052210673672479877957388515321497888026770L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0.5L, -4), -4.2543274975235836861894752787874633017836785640477L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0.5L, -6), -6.4588766202317746302999080620490579800463614807916L, eps * 5000, __LINE__);
+   check_close_l(ellint_1l(0.5L, -10), -10.697409951222544858346795279378531495869386960090L, eps * 5000, __LINE__);
+
+   check_close_l(ellint_2l(0, 0), 0, eps * 5000, __LINE__);
+   check_close_l(ellint_2l(0, -10), -10, eps * 5000, __LINE__);
+   check_close_l(ellint_2l(-1, -1), -0.84147098480789650665250232163029899962256306079837L, eps * 5000, __LINE__);
+   check_close_l(ellint_2l(900 / 1024.0L, -4), -3.1756145986492562317862928524528520686391383168377L, eps * 5000, __LINE__);
+   check_close_l(ellint_2l(-600 / 1024.0L, 8), 7.2473147180505693037677015377802777959345489333465L, eps * 5000, __LINE__);
+   check_close_l(ellint_2l(800 / 1024.0L, 1e-05L), 9.999999999898274739584436515967055859383969942432E-6L, eps * 5000, __LINE__);
+   check_close_l(ellint_2l(100 / 1024.0L, 1e+05L), 99761.153306972066658135668386691227343323331995888L, eps * 5000, __LINE__);
+   check_close_l(ellint_2l(-0.5L, 1e+10L), 9.3421545766487137036576748555295222252286528414669e9L, eps * 5000, __LINE__);
+   check_close_l(ellint_2l(400 / 1024.0L, ldexpl(1, 66)), 7.0886102721911705466476846969992069994308167515242e19L, eps * 5000, __LINE__);
+
+   check_close_l(ellint_3l(0, 1, -1), -1.557407724654902230506974807458360173087L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.4L, 0, -4), -4.153623371196831087495427530365430979011L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(-0.6L, 0, 8), 8.935930619078575123490612395578518914416L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.25L, 0, 0.5L), 0.501246705365439492445236118603525029757890291780157969500480L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0, 0, 0.5L), 0.5L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0, -2, 0.5L), 0.437501067017546278595664813509803743009132067629603474488486L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0, 0.25L, 0.5L), 0.510269830229213412212501938035914557628394166585442994564135L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0, 0.75L, 0.5L), 0.533293253875952645421201146925578536430596894471541312806165L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0, 0.75L, 0.75), 0.871827580412760575085768367421866079353646112288567703061975L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0, 1, 0.25L), 0.255341921221036266504482236490473678204201638800822621740476L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0, 2, 0.25L), 0.261119051639220165094943572468224137699644963125853641716219L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0, 1023/1024.0L, 1.5), 13.2821612239764190363647953338544569682942329604483733197131L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.5L, 0.5L, -1), -1.228014414316220642611298946293865487807L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.5L, 0.5L, 1e+10L), 1.536591003599172091573590441336982730551e+10L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.75L, -1e+05L, 10), 0.0347926099493147087821620459290460547131012904008557007934290L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.875L, -1e+10L, 10), 0.000109956202759561502329123384755016959364346382187364656768212L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.875L, -1e+10L, 1e+20L), 1.00000626665567332602765201107198822183913978895904937646809e15L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.875L, -1e+10L, 1608/1024.0L), 0.0000157080616044072676127333183571107873332593142625043567690379L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.875L, 1-1 / 1024.0L, 1e+20L), 6.43274293944380717581167058274600202023334985100499739678963e21L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.25L, 50, 0.1L), 0.124573770342749525407523258569507331686458866564082916835900L, eps * 5000, __LINE__);
+   check_close_l(ellint_3l(0.25L, 1.125L, 1), 1.77299767784815770192352979665283069318388205110727241629752L, eps * 5000, __LINE__);
+
+   check_close_l(expintl(1/1024.0L), -6.35327933972759151358547423727042905862963067106751711596065L, eps * 5000, __LINE__);
+   check_close_l(expintl(0.125), -1.37320852494298333781545045921206470808223543321810480716122L, eps * 5000, __LINE__);
+   check_close_l(expintl(0.5), 0.454219904863173579920523812662802365281405554352642045162818L, eps * 5000, __LINE__);
+   check_close_l(expintl(1), 1.89511781635593675546652093433163426901706058173270759164623L, eps * 5000, __LINE__);
+   check_close_l(expintl(50.5), 1.72763195602911805201155668940185673806099654090456049881069e20L, eps * 5000, __LINE__);
+   check_close_l(expintl(-1/1024.0L), -6.35523246483107180261445551935803221293763008553775821607264L, eps * 5000, __LINE__);
+   check_close_l(expintl(-0.125), -1.62342564058416879145630692462440887363310605737209536579267L, eps * 5000, __LINE__);
+   check_close_l(expintl(-0.5), -0.559773594776160811746795939315085235226846890316353515248293L, eps * 5000, __LINE__);
+   check_close_l(expintl(-1), -0.219383934395520273677163775460121649031047293406908207577979L, eps * 5000, __LINE__);
+   check_close_l(expintl(-50.5), -2.27237132932219350440719707268817831250090574830769670186618e-24L, eps * 5000, __LINE__);
+
+   check_close_fraction_l(hermitel(0, 1), 1.L, 100 * eps, __LINE__);
+   check_close_fraction_l(hermitel(1, 1), 2.L, 100 * eps, __LINE__);
+   check_close_fraction_l(hermitel(1, 2), 4.L, 100 * eps, __LINE__);
+   check_close_fraction_l(hermitel(1, 10), 20, 100 * eps, __LINE__);
+   check_close_fraction_l(hermitel(1, 100), 200, 100 * eps, __LINE__);
+   check_close_fraction_l(hermitel(1, 1e6), 2e6L, 100 * eps, __LINE__);
+   //check_close_fraction_l(hermitel(10, 30), 5.896624628001300E+17L, 100 * eps, __LINE__);
+   //check_close_fraction_l(hermitel(10, 1000), 1.023976960161280E+33L, 100 * eps, __LINE__);
+   check_close_fraction_l(hermitel(10, 10), 8.093278209760000E+12L, 100 * eps, __LINE__);
+   check_close_fraction_l(hermitel(10, -10), 8.093278209760000E+12L, 100 * eps, __LINE__);
+   check_close_fraction_l(hermitel(3, -10), -7.880000000000000E+3L, 100 * eps, __LINE__);
+   check_close_fraction_l(hermitel(3, -1000), -7.999988000000000E+9L, 100 * eps, __LINE__);
+   check_close_fraction_l(hermitel(3, -1000000), -7.999999999988000E+18L, 100 * eps, __LINE__);
+
+   check_close_l(riemann_zetal(0.125), -0.63277562349869525529352526763564627152686379131122L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(1023 / 1024.0L), -1023.4228554489429786541032870895167448906103303056L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(1025 / 1024.0L), 1024.5772867695045940578681624248887776501597556226L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(0.5L), -1.46035450880958681288949915251529801246722933101258149054289L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(1.125L), 8.5862412945105752999607544082693023591996301183069L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(2), 1.6449340668482264364724151666460251892189499012068L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(3.5L), 1.1267338673170566464278124918549842722219969574036L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(4), 1.08232323371113819151600369654116790277475095191872690768298L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(4 + 1 / 1024.0L), 1.08225596856391369799036835439238249195298434901488518878804L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(4.5L), 1.05470751076145426402296728896028011727249383295625173068468L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(6.5L), 1.01200589988852479610078491680478352908773213619144808841031L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(7.5L), 1.00582672753652280770224164440459408011782510096320822989663L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(8.125L), 1.0037305205308161603183307711439385250181080293472L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(16.125L), 1.0000140128224754088474783648500235958510030511915L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(0), -0.5L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(-0.125L), -0.39906966894504503550986928301421235400280637468895L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(-1), -0.083333333333333333333333333333333333333333333333333L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(-2), 0, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(-2.5L), 0.0085169287778503305423585670283444869362759902200745L, eps * 5000 * 3, __LINE__);
+   check_close_l(riemann_zetal(-3), 0.0083333333333333333333333333333333333333333333333333L, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(-4), 0, eps * 5000, __LINE__);
+   check_close_l(riemann_zetal(-20), 0, eps * 5000 * 100, __LINE__);
+   check_close_l(riemann_zetal(-21), -281.46014492753623188405797101449275362318840579710L, eps * 5000 * 100, __LINE__);
+   check_close_l(riemann_zetal(-30.125L), 2.2762941726834511267740045451463455513839970804578e7L, eps * 5000 * 100, __LINE__);
+
+   check_close_l(sph_bessell(0, 0.1433600485324859619140625e-1L), 0.9999657468461303487880990241993035937654e0L,  eps * 5000 * 100, __LINE__);
+   check_close_l(sph_bessell(0, 0.1760916970670223236083984375e-1L), 0.9999483203249623334100130061926184665364e0L,  eps * 5000 * 100, __LINE__);
+   check_close_l(sph_bessell(2, 0.1433600485324859619140625e-1L), 0.1370120120703995134662099191103188366059e-4L,  eps * 5000 * 100, __LINE__);
+   check_close_l(sph_bessell(2, 0.1760916970670223236083984375e-1L), 0.2067173265753174063228459655801741280461e-4L,  eps * 5000 * 100, __LINE__);
+   check_close_l(sph_bessell(7, 0.1252804412841796875e3L), 0.7887555711993028736906736576314283291289e-2L,  eps * 5000 * 100, __LINE__);
+   check_close_l(sph_bessell(7, 0.25554705810546875e3L), -0.1463292767579579943284849187188066532514e-2L,  eps * 5000 * 100, __LINE__);
+
+   check_close_l(sph_neumannl(0, 0.408089816570281982421875e0L), -0.2249212131304610409189209411089291558038e1L, eps * 5000 * 100, __LINE__);
+   check_close_l(sph_neumannl(0, 0.6540834903717041015625e0L), -0.1213309779166084571756446746977955970241e1L,   eps * 5000 * 100, __LINE__);
+   check_close_l(sph_neumannl(2, 0.408089816570281982421875e0L), -0.4541702641837159203058389758895634766256e2L,   eps * 5000 * 100, __LINE__);
+   check_close_l(sph_neumannl(2, 0.6540834903717041015625e0L), -0.1156112621471167110574129561700037138981e2L,   eps * 5000 * 100, __LINE__);
+   check_close_l(sph_neumannl(10, 0.1097540378570556640625e1L), -0.2427889658115064857278886600528596240123e9L,   eps * 5000 * 100, __LINE__);
+   check_close_l(sph_neumannl(10, 0.30944411754608154296875e1L), -0.3394649246350136450439882104151313759251e4L,   eps * 5000 * 100, __LINE__);
+
+   check_close_fraction_l(sph_legendrel(3, 2, 0.5L), 0.2061460599687871330692286791802688341213L, eps * 5000, __LINE__);
+   check_close_fraction_l(sph_legendrel(40, 15, 0.75L), -0.406036847302819452666908966769096223205057182668333862900509L, eps * 5000, __LINE__);
+#endif
+#endif
+}
+
+int main(int argc, char* argv[])
+{
+#ifndef TEST_LD
+   test_values_f("float");
+   test_values("double");
+#else
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+   test_valuesl("long double");
+#endif
+#endif
+   return errors;
+}
+

From 386dc2ee93f3c28297d3701917f3c167d0160c89 Mon Sep 17 00:00:00 2001
From: John Maddock 
Date: Mon, 7 Feb 2011 13:29:39 +0000
Subject: [PATCH 12/82] Add Kolmogorov distro to TODO list and regenerate docs.

[SVN r68689]
---
 doc/sf_and_dist/html/index.html               |    4 +-
 doc/sf_and_dist/html/index/s12.html           |   26 +-
 doc/sf_and_dist/html/index/s13.html           |    2 +-
 doc/sf_and_dist/html/index/s14.html           |    2 +-
 doc/sf_and_dist/html/index/s15.html           | 1212 ++++++++++++-
 doc/sf_and_dist/html/index/s16.html           | 1558 ++++++++++++++++-
 .../backgrounders/implementation.html         |   30 +-
 .../math_toolkit/backgrounders/lanczos.html   |   10 +-
 .../html/math_toolkit/backgrounders/refs.html |    6 +-
 .../backgrounders/relative_error.html         |    2 +-
 .../math_toolkit/backgrounders/remez.html     |   16 +-
 .../dist/dist_ref/dist_algorithms.html        |    6 +-
 .../dist/dist_ref/dists/bernoulli_dist.html   |   10 +-
 .../dist/dist_ref/dists/beta_dist.html        |   20 +-
 .../dist/dist_ref/dists/binomial_dist.html    |   24 +-
 .../dist/dist_ref/dists/cauchy_dist.html      |   10 +-
 .../dist/dist_ref/dists/chi_squared_dist.html |   12 +-
 .../dist/dist_ref/dists/exp_dist.html         |   10 +-
 .../dist/dist_ref/dists/extreme_dist.html     |    8 +-
 .../dist/dist_ref/dists/f_dist.html           |   10 +-
 .../dist/dist_ref/dists/gamma_dist.html       |    8 +-
 .../dist/dist_ref/dists/geometric_dist.html   |   22 +-
 .../dist_ref/dists/hypergeometric_dist.html   |   10 +-
 .../dists/inverse_chi_squared_dist.html       |   10 +-
 .../dist_ref/dists/inverse_gamma_dist.html    |    8 +-
 .../dist_ref/dists/inverse_gaussian_dist.html |   10 +-
 .../dist/dist_ref/dists/laplace_dist.html     |   10 +-
 .../dist/dist_ref/dists/logistic_dist.html    |    8 +-
 .../dist/dist_ref/dists/lognormal_dist.html   |    8 +-
 .../dist/dist_ref/dists/nc_beta_dist.html     |   10 +-
 .../dist_ref/dists/nc_chi_squared_dist.html   |   12 +-
 .../dist/dist_ref/dists/nc_f_dist.html        |   10 +-
 .../dist/dist_ref/dists/nc_t_dist.html        |   10 +-
 .../dists/negative_binomial_dist.html         |   22 +-
 .../dist/dist_ref/dists/normal_dist.html      |    8 +-
 .../dist/dist_ref/dists/pareto.html           |   12 +-
 .../dist/dist_ref/dists/poisson_dist.html     |    8 +-
 .../dist/dist_ref/dists/rayleigh.html         |   12 +-
 .../dist/dist_ref/dists/students_t_dist.html  |   10 +-
 .../dist/dist_ref/dists/triangular_dist.html  |   10 +-
 .../dist/dist_ref/dists/uniform_dist.html     |   10 +-
 .../dist/dist_ref/dists/weibull_dist.html     |   12 +-
 .../html/math_toolkit/dist/dist_ref/nmp.html  |   54 +-
 .../html/math_toolkit/dist/future.html        |    8 +-
 .../weg/binom_eg/binomial_quiz_example.html   |    4 +-
 .../stat_tut/weg/cs_eg/chi_sq_intervals.html  |    2 +-
 .../dist/stat_tut/weg/dist_construct_eg.html  |    2 +-
 .../weg/find_eg/find_location_eg.html         |    2 +-
 .../weg/find_eg/find_mean_and_sd_eg.html      |    6 +-
 .../stat_tut/weg/find_eg/find_scale_eg.html   |    2 +-
 .../dist/stat_tut/weg/geometric_eg.html       |    8 +-
 .../weg/normal_example/normal_misc.html       |   14 +-
 .../html/math_toolkit/extern_c/c99.html       |    4 +-
 .../html/math_toolkit/extern_c/tr1.html       |   10 +-
 .../html/math_toolkit/extern_c/tr1_ref.html   |    6 +-
 .../math_toolkit/main_overview/building.html  |    6 +-
 .../main_overview/directories.html            |    4 +-
 .../main_overview/error_handling.html         |   24 +-
 .../math_toolkit/main_overview/history1.html  |   28 +-
 .../math_toolkit/main_overview/intro.html     |    6 +-
 .../main_overview/navigation.html             |    2 +-
 .../html/math_toolkit/main_overview/tr1.html  |   10 +-
 .../html/math_toolkit/perf/comparisons.html   |   54 +-
 .../policy/pol_ref/discrete_quant_ref.html    |   12 +-
 .../pol_ref/error_handling_policies.html      |   14 +-
 .../policy/pol_ref/internal_promotion.html    |    2 +-
 .../policy/pol_ref/policy_defaults.html       |   32 +-
 .../pol_tutorial/understand_dis_quant.html    |    2 +-
 .../math_toolkit/special/bessel/bessel.html   |   10 +-
 .../special/bessel/bessel_over.html           |    6 +-
 .../math_toolkit/special/bessel/mbessel.html  |   10 +-
 .../special/bessel/sph_bessel.html            |   10 +-
 .../math_toolkit/special/ellint/ellint_1.html |   10 +-
 .../math_toolkit/special/ellint/ellint_2.html |   10 +-
 .../math_toolkit/special/ellint/ellint_3.html |   14 +-
 .../special/ellint/ellint_carlson.html        |   10 +-
 .../special/ellint/ellint_intro.html          |   12 +-
 .../math_toolkit/special/expint/expint_i.html |   14 +-
 .../math_toolkit/special/expint/expint_n.html |   10 +-
 .../special/factorials/sf_binomial.html       |    6 +-
 .../factorials/sf_double_factorial.html       |    6 +-
 .../special/factorials/sf_factorial.html      |   10 +-
 .../factorials/sf_falling_factorial.html      |    6 +-
 .../factorials/sf_rising_factorial.html       |    6 +-
 .../math_toolkit/special/inv_hyper/acosh.html |    6 +-
 .../math_toolkit/special/inv_hyper/asinh.html |    6 +-
 .../math_toolkit/special/inv_hyper/atanh.html |    6 +-
 .../math_toolkit/special/powers/cbrt.html     |    4 +-
 .../math_toolkit/special/powers/ct_pow.html   |   14 +-
 .../math_toolkit/special/powers/expm1.html    |    4 +-
 .../math_toolkit/special/powers/hypot.html    |    2 +-
 .../math_toolkit/special/powers/log1p.html    |    4 +-
 .../math_toolkit/special/powers/powm1.html    |    4 +-
 .../math_toolkit/special/powers/sqrt1pm1.html |    4 +-
 .../special/sf_beta/beta_derivative.html      |    8 +-
 .../special/sf_beta/beta_function.html        |   10 +-
 .../special/sf_beta/ibeta_function.html       |   10 +-
 .../special/sf_beta/ibeta_inv_function.html   |   10 +-
 .../special/sf_erf/error_function.html        |   10 +-
 .../special/sf_erf/error_inv.html             |   10 +-
 .../special/sf_gamma/digamma.html             |   10 +-
 .../special/sf_gamma/gamma_derivatives.html   |    8 +-
 .../special/sf_gamma/gamma_ratios.html        |    8 +-
 .../math_toolkit/special/sf_gamma/igamma.html |   12 +-
 .../special/sf_gamma/igamma_inv.html          |   10 +-
 .../math_toolkit/special/sf_gamma/lgamma.html |   10 +-
 .../math_toolkit/special/sf_gamma/tgamma.html |   10 +-
 .../math_toolkit/special/sf_poly/hermite.html |   10 +-
 .../special/sf_poly/laguerre.html             |   10 +-
 .../special/sf_poly/legendre.html             |   10 +-
 .../special/sf_poly/sph_harm.html             |   10 +-
 .../html/math_toolkit/special/zetas/zeta.html |   10 +-
 .../html/math_toolkit/status/history1.html    |   28 +-
 .../html/math_toolkit/status/issues.html      |   48 +-
 .../math_toolkit/toolkit/internals1/cf.html   |    8 +-
 .../toolkit/internals1/constants.html         |    4 +-
 .../toolkit/internals1/minima.html            |    6 +-
 .../toolkit/internals1/rational.html          |    6 +-
 .../toolkit/internals1/roots.html             |   12 +-
 .../toolkit/internals1/roots2.html            |   12 +-
 .../toolkit/internals1/series_evaluation.html |    6 +-
 .../toolkit/internals1/tuples.html            |    4 +-
 .../toolkit/internals2/error_test.html        |    6 +-
 .../toolkit/internals2/polynomials.html       |    4 +-
 .../toolkit/internals2/test_data.html         |   12 +-
 .../math_toolkit/using_udt/archetypes.html    |    8 +-
 .../html/math_toolkit/using_udt/concepts.html |    4 +-
 .../html/math_toolkit/utils/fpclass.html      |    4 +-
 .../utils/next_float/float_advance.html       |    4 +-
 .../utils/next_float/float_distance.html      |    4 +-
 .../utils/next_float/float_next.html          |    4 +-
 .../utils/next_float/float_prior.html         |    4 +-
 .../utils/next_float/nextafter.html           |    6 +-
 .../math_toolkit/utils/sign_functions.html    |    4 +-
 doc/sf_and_dist/issues.qbk                    |    4 +
 135 files changed, 3430 insertions(+), 688 deletions(-)

diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html
index 2ab46aaa7..2ed71e5e0 100644
--- a/doc/sf_and_dist/html/index.html
+++ b/doc/sf_and_dist/html/index.html
@@ -53,7 +53,7 @@
       Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and
       Thijs van den Berg

-

+

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

@@ -502,7 +502,7 @@

- +

Last revised: January 24, 2011 at 18:57:01 GMT

Last revised: February 07, 2011 at 13:23:28 GMT


diff --git a/doc/sf_and_dist/html/index/s12.html b/doc/sf_and_dist/html/index/s12.html index 09f22935f..29f041e3e 100644 --- a/doc/sf_and_dist/html/index/s12.html +++ b/doc/sf_and_dist/html/index/s12.html @@ -24,7 +24,7 @@

-Function Index

+Function Index

A B C D E F G H I K L M N P Q R S T U V Z

@@ -107,12 +107,36 @@

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_2f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_2l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

comp_ellint_3

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_3f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_3l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

continued_fraction_a

Continued Fraction Evaluation

continued_fraction_b
diff --git a/doc/sf_and_dist/html/index/s13.html b/doc/sf_and_dist/html/index/s13.html index e1ef31851..31f8326df 100644 --- a/doc/sf_and_dist/html/index/s13.html +++ b/doc/sf_and_dist/html/index/s13.html @@ -24,7 +24,7 @@

-Class Index

+Class Index

B C D E F G H I L M N P R S T U W

diff --git a/doc/sf_and_dist/html/index/s14.html b/doc/sf_and_dist/html/index/s14.html index d3492b27b..3d49e710d 100644 --- a/doc/sf_and_dist/html/index/s14.html +++ b/doc/sf_and_dist/html/index/s14.html @@ -24,7 +24,7 @@

-Typedef Index

+Typedef Index

A B C D E F G H I L N O P R S T U V W

diff --git a/doc/sf_and_dist/html/index/s15.html b/doc/sf_and_dist/html/index/s15.html index 1bc808470..387b1acaf 100644 --- a/doc/sf_and_dist/html/index/s15.html +++ b/doc/sf_and_dist/html/index/s15.html @@ -24,13 +24,160 @@

-Macro Index

-

B F

+Macro Index
+

A B C E F H I L N R S T

-B +A
+
acosh
+
+ + + + +

acosh

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
acoshf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
acoshl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
asinh
+
+ + + + +

asinh

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
asinhf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
asinhl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
assoc_laguerre
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
assoc_laguerref
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
assoc_laguerrel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
assoc_legendre
+
+ + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Legendre (and Associated) Polynomials

TR1 C Functions Quick Reference

+
assoc_legendref
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
assoc_legendrel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
atanh
+
+ + + + +

atanh

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
atanhf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
atanhl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
+
+B +
+
+
beta
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

About the Math Toolkit

Additional Implementation Notes

Beta

Beta Distribution

Binomial Coefficients

Binomial Distribution

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Chi Squared Distribution

Conceptual Requirements for Real Number Types

Credits and Acknowledgements

Derivative of the Incomplete Beta Function

Directory and File Structure

Distribution Construction Example

Distributions are Objects

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 the Required Sample Sizes for a Chi-Square Test for the Standard Deviation

F Distribution

Graphing, Profiling, and Generating Test Data for Special Functions

History and What's New

Incomplete Beta Functions

Negative Binomial Distribution

Noncentral Beta Distribution

Noncentral F Distribution

Noncentral T Distribution

Ratios of Gamma Functions

Students t Distribution

Tables of the power function of the χ 2 test.

The Incomplete Beta Function Inverses

The Lanczos Approximation

TR1 C Functions Quick Reference

Triangular Distribution

Weibull Distribution

+
betaf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
betal
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

BOOST_DEFINE_MATH_CONSTANT

Additional Implementation Notes

BOOST_FPU_EXCEPTION_GUARD
@@ -165,9 +312,447 @@

Configuration Macros

-F +C
+
cbrt
+
+ + + + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

cbrt

Comparisons to Other Open Source Libraries

Directory and File Structure

Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder

+
cbrtf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
cbrtl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
comp_ellint_1
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_1f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_1l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_2
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_2f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_2l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_3
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_3f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_3l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
copysign
+
+ + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Sign Manipulation Functions

+
copysignf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
copysignl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
cyl_bessel_i
+
+ + + + + + + + +

Bessel Function Overview

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Comparisons to Other Open Source Libraries

History and What's New

Modified Bessel Functions of the First and Second Kinds

Noncentral Chi-Squared Distribution

TR1 C Functions Quick Reference

+
cyl_bessel_if
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_bessel_il
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_bessel_j
+
+ + + + + + + + + +

Bessel Function Overview

Bessel Functions of the First and Second Kinds

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Calculation of the Type of the Result

Comparisons to Other Open Source Libraries

Modified Bessel Functions of the First and Second Kinds

Spherical Bessel Functions of the First and Second Kinds

TR1 C Functions Quick Reference

+
cyl_bessel_jf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_bessel_jl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_bessel_k
+
+ + + + + + +

Bessel Function Overview

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Comparisons to Other Open Source Libraries

Modified Bessel Functions of the First and Second Kinds

TR1 C Functions Quick Reference

+
cyl_bessel_kf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_bessel_kl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_neumann
+
+ + + + + + + + +

Bessel Function Overview

Bessel Functions of the First and Second Kinds

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Comparisons to Other Open Source Libraries

Modified Bessel Functions of the First and Second Kinds

Spherical Bessel Functions of the First and Second Kinds

TR1 C Functions Quick Reference

+
cyl_neumannf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_neumannl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
+
+E +
+
+
ellint_1
+
+ + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Elliptic Integrals of the First Kind - Legendre Form

TR1 C Functions Quick Reference

+
ellint_1f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
ellint_1l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
ellint_2
+
+ + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Elliptic Integrals of the Second Kind - Legendre Form

TR1 C Functions Quick Reference

+
ellint_2f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
ellint_2l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
ellint_3
+
+ + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Elliptic Integrals of the Third Kind - Legendre Form

Known Issues, and TODO List

TR1 C Functions Quick Reference

+
ellint_3f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
ellint_3l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
erf
+
+ + + + + + + + + + + + + + + +

About the Math Toolkit

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Calling User Defined Error Handlers

Comparing Compilers

Comparisons to Other Open Source Libraries

Conceptual Requirements for Real Number Types

Credits and Acknowledgements

Directory and File Structure

Error Function Inverses

Error Functions

Getting the Best Performance from this Library

History and What's New

Performance Tuning Macros

+
erfc
+
+ + + + + + + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Comparisons to Other Open Source Libraries

Error Function Inverses

Error Functions

History and What's New

Incomplete Gamma Functions

Normal (Gaussian) Distribution

The Remez Method

+
erfcf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
erfcl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
erff
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
erfl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
exp2
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
exp2f
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
exp2l
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
expint
+
+ + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Exponential Integral Ei

Exponential Integral En

TR1 C Functions Quick Reference

+
expintf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
expintl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
expm1
+
+ + + + + + + + + + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Comparisons to Other Open Source Libraries

expm1

Exponential Distribution

Extreme Value Distribution

Gamma

Pareto Distribution

powm1

Rayleigh Distribution

sqrt1pm1

Weibull Distribution

+
expm1f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
expm1l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
+
+F +
+
+
+H +
+
+
+I +
+
+
+L +
+
+
laguerre
+
+ + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Laguerre (and Associated) Polynomials

TR1 C Functions Quick Reference

+
laguerref
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
laguerrel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
legendre
+
+ + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Legendre (and Associated) Polynomials

TR1 C Functions Quick Reference

+
legendref
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
legendrel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
lgamma
+
+ + + + + + + + + + + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Comparisons to Other Open Source Libraries

Directory and File Structure

Gamma

Graphing, Profiling, and Generating Test Data for Special Functions

History and What's New

Hypergeometric Distribution

Log Gamma

Negative Binomial Distribution

Relative Error and Testing

Setting Polices at Namespace Scope

The Lanczos Approximation

+
lgammaf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
lgammal
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
llrint
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
llrintf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
llrintl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
llround
+
+ + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Conceptual Requirements for Real Number Types

Rounding Functions

+
llroundf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
llroundl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
log1p
+
+ + + + + + + + + + + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Comparisons to Other Open Source Libraries

Exponential Distribution

Extreme Value Distribution

Geometric Distribution

Known Issues, and TODO List

Log Gamma

log1p

Rayleigh Distribution

Series Evaluation

sqrt1pm1

Weibull Distribution

+
log1pf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
log1pl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
log2
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Compile Time Power of a Runtime Base

+
log2f
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
log2l
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
logb
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
logbf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
logbl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
lrint
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
lrintf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
lrintl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
lround
+
+ + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Conceptual Requirements for Real Number Types

Rounding Functions

+
lroundf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
lroundl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
+
+N +
+
+
+R +
+
+
remainder
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

The Remez Method

+
remainderf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
remainderl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
remquo
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
remquof
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
remquol
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
riemann_zeta
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
riemann_zetaf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
riemann_zetal
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
rint
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
rintf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
rintl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
round
+
+ + + + + + + + + + + + + + + + + + + + + +

Additional Implementation Notes

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Conceptual Requirements for Real Number Types

Discrete Quantile Policies

Error Function Inverses

Error Functions

Error Handling

Error Handling Policies

Find Scale (Standard Deviation) Example

Generic operations common to all distributions are non-member functions

Geometric Distribution Examples

Incomplete Gamma Function Inverses

Root Finding Without Derivatives: Bisection, Bracket and TOMS748

Rounding Functions

The Incomplete Beta Function Inverses

The Remez Method

Truncation Functions

Understanding Quantiles of Discrete Distributions

Using Macros to Change the Policy Defaults

+
roundf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
roundl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
+
+S +
+
+
scalbln
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
scalblnf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
scalblnl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
scalbn
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
scalbnf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
scalbnl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
sph_bessel
+
+ + + + + + +

Bessel Function Overview

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Calculation of the Type of the Result

Spherical Bessel Functions of the First and Second Kinds

TR1 C Functions Quick Reference

+
sph_besself
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_bessell
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_legendre
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_legendref
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_legendrel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_neumann
+
+ + + + + +

Bessel Function Overview

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Spherical Bessel Functions of the First and Second Kinds

TR1 C Functions Quick Reference

+
sph_neumannf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_neumannl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
+
+T +
+
diff --git a/doc/sf_and_dist/html/index/s16.html b/doc/sf_and_dist/html/index/s16.html index c0510249c..be396886a 100644 --- a/doc/sf_and_dist/html/index/s16.html +++ b/doc/sf_and_dist/html/index/s16.html @@ -23,13 +23,18 @@

-Index

-

A B C D E F G H I K L M N O P Q R S T U V W Z

+Index
+

A B C D E F G H I K L M N O P Q R S T U V W Z

-A +A
+
About the Math Toolkit
+
+ + +

beta

erf

acosh
@@ -37,6 +42,18 @@

acosh

C99 and TR1 C Functions Overview

C99 C Functions

+
acoshf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
acoshl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance

float_advance

asinh
@@ -46,8 +63,57 @@

C99 and TR1 C Functions Overview

C99 C Functions

+
asinhf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
asinhl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

assert_undefined_type

Policy Class Reference

+
assoc_laguerre
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
assoc_laguerref
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
assoc_laguerrel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
assoc_legendre
+
+ + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Legendre (and Associated) Polynomials

TR1 C Functions Quick Reference

+
assoc_legendref
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
assoc_legendrel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

atanh
@@ -55,9 +121,21 @@

atanh

C99 and TR1 C Functions Overview

C99 C Functions

+
atanhf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
atanhl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

-B +B
bernoulli
@@ -71,6 +149,15 @@
bernoulli_distribution

Bernoulli Distribution

+
Bessel Function Overview
+
+ + + + + + +

cyl_bessel_i

cyl_bessel_j

cyl_bessel_k

cyl_neumann

sph_bessel

sph_neumann

Bessel Functions of the First and Second Kinds
@@ -83,12 +170,39 @@

cyl_bessel_j

beta
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

About the Math Toolkit

Additional Implementation Notes

Beta

Beta Distribution

Binomial Coefficients

Binomial Distribution

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Chi Squared Distribution

Conceptual Requirements for Real Number Types

Credits and Acknowledgements

Derivative of the Incomplete Beta Function

Directory and File Structure

Distribution Construction Example

Distributions are Objects

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 the Required Sample Sizes for a Chi-Square Test for the Standard Deviation

F Distribution

Graphing, Profiling, and Generating Test Data for Special Functions

History and What's New

Incomplete Beta Functions

Negative Binomial Distribution

Noncentral Beta Distribution

Noncentral F Distribution

Noncentral T Distribution

Ratios of Gamma Functions

Students t Distribution

Tables of the power function of the χ 2 test.

The Incomplete Beta Function Inverses

The Lanczos Approximation

TR1 C Functions Quick Reference

Triangular Distribution

Weibull Distribution

Beta Distribution
@@ -106,14 +220,24 @@

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
betal
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

beta_distribution

Beta Distribution

binomial

Binomial Distribution

Binomial Coefficients
-

binomial_coefficient

+
+ + +

beta

binomial_coefficient

Binomial Distribution
+ @@ -259,107 +383,435 @@

beta

binomial

binomial_distribution

find_lower_bound_on_p

Configuration Macros

-C +C
C99 and C++ TR1 C-style Functions
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

acosh

acoshf

acoshl

asinh

asinhf

asinhl

assoc_laguerre

assoc_laguerref

assoc_laguerrel

assoc_legendre

assoc_legendref

assoc_legendrel

atanh

atanhf

atanhl

beta

betaf

betal

cbrt

cbrtf

cbrtl

comp_ellint_1

comp_ellint_1f

comp_ellint_1l

comp_ellint_2

comp_ellint_2f

comp_ellint_2l

comp_ellint_3

comp_ellint_3f

comp_ellint_3l

copysign

copysignf

copysignl

cyl_bessel_i

cyl_bessel_if

cyl_bessel_il

cyl_bessel_j

cyl_bessel_jf

cyl_bessel_jl

cyl_bessel_k

cyl_bessel_kf

cyl_bessel_kl

cyl_neumann

cyl_neumannf

cyl_neumannl

double_t

ellint_1

ellint_1f

ellint_1l

ellint_2

ellint_2f

ellint_2l

ellint_3

ellint_3f

ellint_3l

erf

erfc

erfcf

erfcl

erff

erfl

exp2

exp2f

exp2l

expint

expintf

expintl

expm1

expm1f

expm1l

fdim

fdimf

fdiml

float_t

fma

fmaf

fmal

fmax

fmaxf

fmaxl

fmin

fminf

fminl

hermite

hermitef

hermitel

hyperg

hypergf

hypergl

hypot

hypotf

hypotl

ilogb

ilogbf

ilogbl

laguerre

laguerref

laguerrel

legendre

legendref

legendrel

lgamma

lgammaf

lgammal

llrint

llrintf

llrintl

llround

llroundf

llroundl

log1p

log1pf

log1pl

log2

log2f

log2l

logb

logbf

logbl

lrint

lrintf

lrintl

lround

lroundf

lroundl

nan

nanf

nanl

nearbyint

nearbyintf

nearbyintl

nextafter

nextafterf

nextafterl

nexttoward

nexttowardf

nexttowardl

remainder

remainderf

remainderl

remquo

remquof

remquol

riemann_zeta

riemann_zetaf

riemann_zetal

rint

rintf

rintl

round

roundf

roundl

scalbln

scalblnf

scalblnl

scalbn

scalbnf

scalbnl

sph_bessel

sph_besself

sph_bessell

sph_legendre

sph_legendref

sph_legendrel

sph_neumann

sph_neumannf

sph_neumannl

tgamma

tgammaf

tgammal

trunc

truncf

truncl

C99 and TR1 C Functions Overview
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

acosh

acoshf

acoshl

asinh

asinhf

asinhl

assoc_laguerre

assoc_laguerref

assoc_laguerrel

assoc_legendre

assoc_legendref

assoc_legendrel

atanh

atanhf

atanhl

beta

betaf

betal

cbrt

cbrtf

cbrtl

comp_ellint_1

comp_ellint_1f

comp_ellint_1l

comp_ellint_2

comp_ellint_2f

comp_ellint_2l

comp_ellint_3

comp_ellint_3f

comp_ellint_3l

copysign

copysignf

copysignl

cyl_bessel_i

cyl_bessel_if

cyl_bessel_il

cyl_bessel_j

cyl_bessel_jf

cyl_bessel_jl

cyl_bessel_k

cyl_bessel_kf

cyl_bessel_kl

cyl_neumann

cyl_neumannf

cyl_neumannl

double_t

ellint_1

ellint_1f

ellint_1l

ellint_2

ellint_2f

ellint_2l

ellint_3

ellint_3f

ellint_3l

erf

erfc

erfcf

erfcl

erff

erfl

exp2

exp2f

exp2l

expint

expintf

expintl

expm1

expm1f

expm1l

fdim

fdimf

fdiml

float_t

fma

fmaf

fmal

fmax

fmaxf

fmaxl

fmin

fminf

fminl

hermite

hermitef

hermitel

hyperg

hypergf

hypergl

hypot

hypotf

hypotl

ilogb

ilogbf

ilogbl

laguerre

laguerref

laguerrel

legendre

legendref

legendrel

lgamma

lgammaf

lgammal

llrint

llrintf

llrintl

llround

llroundf

llroundl

log1p

log1pf

log1pl

log2

log2f

log2l

logb

logbf

logbl

lrint

lrintf

lrintl

lround

lroundf

lroundl

nan

nanf

nanl

nearbyint

nearbyintf

nearbyintl

nextafter

nextafterf

nextafterl

nexttoward

nexttowardf

nexttowardl

remainder

remainderf

remainderl

remquo

remquof

remquol

riemann_zeta

riemann_zetaf

riemann_zetal

rint

rintf

rintl

round

roundf

roundl

scalbln

scalblnf

scalblnl

scalbn

scalbnf

scalbnl

sph_bessel

sph_besself

sph_bessell

sph_legendre

sph_legendref

sph_legendrel

sph_neumann

sph_neumannf

sph_neumannl

tgamma

tgammaf

tgammal

trunc

truncf

truncl

C99 C Functions
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

acosh

acoshf

acoshl

asinh

asinhf

asinhl

atanh

atanhf

atanhl

cbrt

cbrtf

cbrtl

copysign

copysignf

copysignl

double_t

erf

erfc

erfcf

erfcl

erff

erfl

expm1

expm1f

expm1l

float_t

fmax

fmaxf

fmaxl

fmin

fminf

fminl

hypot

hypotf

hypotl

lgamma

lgammaf

lgammal

llround

llroundf

llroundl

log1p

log1pf

log1pl

lround

lroundf

lroundl

nextafter

nextafterf

nextafterl

nexttoward

nexttowardf

nexttowardl

round

roundf

roundl

tgamma

tgammaf

tgammal

trunc

truncf

truncl

+
Calculation of the Type of the Result
+
+ +

cyl_bessel_j

sph_bessel

Calling User Defined Error Handlers
+ @@ -395,8 +847,22 @@ + +

BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS

erf

msg

promote_args

tgamma

C99 and TR1 C Functions Overview

C99 C Functions

cbrt

Comparisons to Other Open Source Libraries

Directory and File Structure

Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder

+
cbrtf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
cbrtl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

cdf
@@ -416,6 +882,7 @@

Extras/Future Directions

Non-Member Properties

Chi Squared Distribution
+ @@ -426,27 +893,94 @@

beta

chi_squared

chi_squared_distribution

find_degrees_of_freedom

Chi Squared Distribution

chi_squared_distribution

Chi Squared Distribution

+
Comparing Compilers
+

erf

+
Comparisons to Other Open Source Libraries
+
+ + + + + + + + + + + +

cbrt

cyl_bessel_i

cyl_bessel_j

cyl_bessel_k

cyl_neumann

erf

erfc

expm1

lgamma

log1p

tgamma

Compile Time Power of a Runtime Base
+

BOOST_MATH_OVERFLOW_ERROR_POLICY

log2

user_overflow_error

Compilers

BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS

+
comp_ellint_1
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_1f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_1l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

comp_ellint_2

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_2f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_2l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

comp_ellint_3

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_3f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
comp_ellint_3l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

Conceptual Requirements for Real Number Types
-

Lanczos approximation

+
+ + + + + + + +

beta

erf

Lanczos approximation

llround

lround

round

trunc

Configuration Macros
@@ -480,37 +1014,124 @@

BOOST_FPU_EXCEPTION_GUARD

Continued Fraction Evaluation

continued_fraction_b

Continued Fraction Evaluation

-
cyl_bessel_i
+
copysign
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Sign Manipulation Functions

+
copysignf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
copysignl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
Credits and Acknowledgements
+
+ + +

beta

erf

+
cyl_bessel_i
+
+ + + + + + + +

Bessel Function Overview

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Comparisons to Other Open Source Libraries

History and What's New

Modified Bessel Functions of the First and Second Kinds

Noncentral Chi-Squared Distribution

TR1 C Functions Quick Reference

+
cyl_bessel_if
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_bessel_il
+
+ +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

cyl_bessel_j
+ + + + + + +

Bessel Function Overview

Bessel Functions of the First and Second Kinds

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Calculation of the Type of the Result

Comparisons to Other Open Source Libraries

Modified Bessel Functions of the First and Second Kinds

Spherical Bessel Functions of the First and Second Kinds

TR1 C Functions Quick Reference

+
cyl_bessel_jf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_bessel_jl
+
+ +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

cyl_bessel_k
+ +

Bessel Function Overview

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Comparisons to Other Open Source Libraries

Modified Bessel Functions of the First and Second Kinds

TR1 C Functions Quick Reference

+
cyl_bessel_kf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_bessel_kl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

cyl_neumann
+ + + + + +

Bessel Function Overview

Bessel Functions of the First and Second Kinds

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Comparisons to Other Open Source Libraries

Modified Bessel Functions of the First and Second Kinds

Spherical Bessel Functions of the First and Second Kinds

TR1 C Functions Quick Reference

+
cyl_neumannf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
cyl_neumannl
+
+ +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

-D +D
default_policy
@@ -518,7 +1139,10 @@
denorm_error_type

Policy Class Reference

Derivative of the Incomplete Beta Function
-

ibeta_derivative

+
+ + +

beta

ibeta_derivative

Derivative of the Incomplete Gamma Function

gamma_p_derivative

Digamma
@@ -528,6 +1152,16 @@
digamma

Digamma

+
Directory and File Structure
+
+ + + + + +

beta

cbrt

erf

lgamma

tgamma

+
Discrete Quantile Policies
+

round

discrete_quantile_type

Policy Class Reference

Distribution Algorithms
@@ -535,6 +1169,8 @@

find_location

find_scale

+
Distributions are Objects
+

beta

domain_error_type

Policy Class Reference

Double Factorial
@@ -549,7 +1185,7 @@
-E +E
+
ellint_1f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
ellint_1l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

ellint_2
@@ -568,11 +1216,36 @@

C99 and C++ TR1 C-style Functions

Elliptic Integrals of the Second Kind - Legendre Form

TR1 C Functions Quick Reference

+
ellint_2f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
ellint_2l
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

ellint_3
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Elliptic Integrals of the Third Kind - Legendre Form

Known Issues, and TODO List

TR1 C Functions Quick Reference

+
ellint_3f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
ellint_3l
+
+ +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

Elliptic Integrals of the First Kind - Legendre Form
@@ -591,36 +1264,89 @@

Root Finding Without Derivatives: Bisection, Bracket and TOMS748

erf
+ + + + + + + + + + +

About the Math Toolkit

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Calling User Defined Error Handlers

Comparing Compilers

Comparisons to Other Open Source Libraries

Conceptual Requirements for Real Number Types

Credits and Acknowledgements

Directory and File Structure

Error Function Inverses

Error Functions

Getting the Best Performance from this Library

History and What's New

Performance Tuning Macros

erfc
+ + + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Comparisons to Other Open Source Libraries

Error Function Inverses

Error Functions

History and What's New

Incomplete Gamma Functions

Normal (Gaussian) Distribution

The Remez Method

+
erfcf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
erfcl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

erfc_inv

Error Function Inverses

+
erff
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
erfl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

erf_inv

Error Function Inverses

Error Function Inverses
+ + +

erf

erfc

erfc_inv

erf_inv

round

Error Functions
+

erf

erfc

round

Error Handling
-

checked_narrowing_cast

+
+ + + + +

checked_narrowing_cast

round

tgamma

trunc

Error Handling Policies
+ + + @@ -642,12 +1368,29 @@

round

tgamma

trunc

user_denorm_error

user_domain_error

user_evaluation_error

Policy Class Reference

Examples
+ + +

beta

BOOST_MATH_DISCRETE_QUANTILE_POLICY

BOOST_MATH_DOMAIN_ERROR_POLICY

BOOST_MATH_OVERFLOW_ERROR_POLICY

cauchy

negative_binomial

normal

round

+
exp2
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
exp2f
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
exp2l
+
+ +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

expint
@@ -657,19 +1400,54 @@

Exponential Integral En

TR1 C Functions Quick Reference

+
expintf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
expintl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

expm1
+ + + + + + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Comparisons to Other Open Source Libraries

expm1

Exponential Distribution

Extreme Value Distribution

Gamma

Pareto Distribution

powm1

Rayleigh Distribution

sqrt1pm1

Weibull Distribution

+
expm1f
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
expm1l
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

exponential

Exponential Distribution

Exponential Distribution
+ +

expm1

exponential

exponential_distribution

log1p

policy_type

value_type

@@ -683,8 +1461,10 @@

cdf

Extreme Value Distribution
+ +

expm1

extreme_value

extreme_value_distribution

log1p

value_type

extreme_value
@@ -693,11 +1473,12 @@

Extreme Value Distribution

-F +F
F Distribution
+ @@ -706,6 +1487,7 @@

beta

fisher_f

fisher_f_distribution

value_type

+

factorial

max_factorial

tgamma

factorial

Factorial

@@ -713,12 +1495,36 @@

falling_factorial

falling_factorial

Falling Factorial

+
fdim
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
fdimf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
fdiml
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Finding the Next Greater Representable Value (float_next)
-

float_next

+
+ + +

float_next

nextafter

Finding the Next Representable Value in a Specific Direction (nextafter)
-

nextafter

+
+ + +

nextafter

nexttoward

Finding the Next Smaller Representable Value (float_prior)
-

float_prior

+
+ + +

float_prior

nextafter

find_beta

Beta Distribution

find_degrees_of_freedom
@@ -775,6 +1581,57 @@

C99 and TR1 C Functions Overview

C99 C Functions

+
fma
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
fmaf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
fmal
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
fmax
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
fmaxf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
fmaxl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
fmin
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
fminf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
fminl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

FP_INFINITE

Floating-Point Classification: Infinities and NaN's

FP_NAN
@@ -787,12 +1644,14 @@

Floating-Point Classification: Infinities and NaN's

-G +G
Gamma
+ +

expm1

Lanczos approximation

lgamma

tgamma

tgamma1pm1

@@ -825,6 +1684,8 @@

Incomplete Gamma Function Inverses

gamma_q_inva

Incomplete Gamma Function Inverses

+
Generic operations common to all distributions are non-member functions
+

round

geometric

Geometric Distribution

Geometric Distribution
@@ -833,23 +1694,28 @@

find_upper_bound_on_p

geometric

geometric_distribution

+

log1p

policy_type

value_type

geometric_distribution

Geometric Distribution

+
Getting the Best Performance from this Library
+

erf

get_user_parameter_info

Graphing, Profiling, and Generating Test Data for Special Functions

Graphing, Profiling, and Generating Test Data for Special Functions
+ +

beta

get_user_parameter_info

lgamma

test_data

upper_incomplete_gamma_fract

value_type

-H +H
halley_iterate
@@ -868,10 +1734,35 @@

hermite

hermite_next

+
hermitef
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
hermitel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

hermite_next

Hermite Polynomials

History and What's New
-

Lanczos approximation

+
+ + + + + + +

beta

cyl_bessel_i

erf

erfc

Lanczos approximation

lgamma

+
hyperg
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

hypergeometric

Hypergeometric Distribution

Hypergeometric Distribution
@@ -879,11 +1770,24 @@

hypergeometric

hypergeometric_distribution

Lanczos approximation

+

lgamma

policy_type

value_type

hypergeometric_distribution

Hypergeometric Distribution

+
hypergf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
hypergl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

hypot
@@ -891,9 +1795,21 @@

C99 and C++ TR1 C-style Functions

C99 C Functions

hypot

+
hypotf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
hypotl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

-I +I
ibeta
@@ -914,21 +1830,40 @@

The Incomplete Beta Function Inverses

ibeta_invb

The Incomplete Beta Function Inverses

+
ilogb
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
ilogbf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
ilogbl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Implementation Notes
+ +

beta

BOOST_DEFINE_MATH_CONSTANT

BOOST_MATH_DOMAIN_ERROR_POLICY

round

scale

triangular_distribution

Incomplete Beta Function Inverses
+ +

beta

ibetac_inv

ibetac_inva

ibetac_invb

ibeta_inv

ibeta_inva

ibeta_invb

round

Incomplete Beta Functions
@@ -943,9 +1878,11 @@ +

gamma_p_inva

gamma_q_inv

gamma_q_inva

round

Incomplete Gamma Functions
+ @@ -954,6 +1891,8 @@

erfc

gamma_p

gamma_q

Lanczos approximation

indeterminate_result_error_type

Policy Class Reference

+
Internal Floating-point Promotion Policies
+

tgamma

Inverse Chi Squared Distribution
@@ -998,20 +1937,25 @@

inverse_chi_squared

Truncation Functions

-K +K
kahan_sum_series

Series Evaluation

Known Issues, and TODO List
-

Lanczos approximation

+
+ + + + +

ellint_3

Lanczos approximation

log1p

tgamma

kurtosis

Non-Member Properties

kurtosis_excess

Non-Member Properties

-L +L
laguerre
@@ -1026,6 +1970,18 @@

laguerre

laguerre_next

+
laguerref
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
laguerrel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

laguerre_next

Laguerre (and Associated) Polynomials

Lanczos approximation
@@ -1039,6 +1995,7 @@

Incomplete Gamma Functions

Known Issues, and TODO List

Lanczos approximation

+

lgamma

Log Gamma

Negative Binomial Distribution

Performance Tuning Macros

@@ -1058,12 +2015,33 @@
laplace_distribution

Laplace Distribution

+
legendre
+
+ + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Legendre (and Associated) Polynomials

TR1 C Functions Quick Reference

Legendre (and Associated) Polynomials
+ +

assoc_legendre

legendre

legendre_next

legendre_p

legendre_q

+
legendref
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
legendrel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

legendre_next

Legendre (and Associated) Polynomials

legendre_p
@@ -1075,22 +2053,73 @@

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+

Comparisons to Other Open Source Libraries

+

Directory and File Structure

+

Gamma

+

Graphing, Profiling, and Generating Test Data for Special Functions

+

History and What's New

+

Hypergeometric Distribution

Log Gamma

+

Negative Binomial Distribution

+

Relative Error and Testing

Setting Polices at Namespace Scope

+

The Lanczos Approximation

+ +
lgammaf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
lgammal
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
llrint
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
llrintf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
llrintl
+
+ +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

llround
+

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Conceptual Requirements for Real Number Types

Rounding Functions

+
llroundf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
llroundl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

lltrunc

Truncation Functions

Log Gamma
+ +

Lanczos approximation

lgamma

log1p

tgamma

Log Normal Distribution
@@ -1105,11 +2134,63 @@ + + + + + + + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Comparisons to Other Open Source Libraries

Exponential Distribution

Extreme Value Distribution

Geometric Distribution

Known Issues, and TODO List

Log Gamma

log1p

Rayleigh Distribution

Series Evaluation

sqrt1pm1

Weibull Distribution

+
log1pf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
log1pl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

log1p_series

Series Evaluation

+
log2
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Compile Time Power of a Runtime Base

+
log2f
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
log2l
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
logb
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
logbf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
logbl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

logistic

Logistic Distribution

Logistic Distribution
@@ -1125,18 +2206,46 @@

Log Normal Distribution

lognormal_distribution

Log Normal Distribution

+
lrint
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
lrintf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
lrintl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

lround
+

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Conceptual Requirements for Real Number Types

Rounding Functions

+
lroundf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
lroundl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

ltrunc

Truncation Functions

-M +M
make_policy
@@ -1154,22 +2263,56 @@
Modified Bessel Functions of the First and Second Kinds
+ +

cyl_bessel_i

cyl_bessel_j

cyl_bessel_k

cyl_neumann

msg

Calling User Defined Error Handlers

-N +N
Namespaces

students_t

+
nan
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
nanf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
nanl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
nearbyint
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
nearbyintf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
nearbyintl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Negative Binomial Distribution
+ + @@ -1189,7 +2332,40 @@ + + +

beta

find_lower_bound_on_p

find_upper_bound_on_p

Lanczos approximation

lgamma

negative_binomial

negative_binomial_distribution

policy_type

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Finding the Next Greater Representable Value (float_next)

Finding the Next Representable Value in a Specific Direction (nextafter)

Finding the Next Smaller Representable Value (float_prior)

+
nextafterf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
nextafterl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
nexttoward
+
+ + + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Finding the Next Representable Value in a Specific Direction (nextafter)

+
nexttowardf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
nexttowardl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Non-Member Properties
@@ -1209,6 +2385,7 @@
Noncentral Beta Distribution
+ @@ -1216,6 +2393,7 @@

beta

non_central_beta

non_central_beta_distribution

policy_type

Noncentral Chi-Squared Distribution
+ @@ -1225,6 +2403,7 @@

cyl_bessel_i

find_degrees_of_freedom

find_non_centrality

non_central_chi_squared

Noncentral F Distribution
+ @@ -1232,6 +2411,7 @@

beta

non_central_f

non_central_f_distribution

policy_type

Noncentral T Distribution
+ @@ -1263,6 +2443,7 @@

beta

non_central_t

non_central_t_distribution

policy_type

Normal (Gaussian) Distribution
+ @@ -1276,20 +2457,21 @@

erfc

normal

normal_distribution

policy_type

e

-O +O
overflow_error_type

Policy Class Reference

-P +P
pareto

Pareto Distribution

Pareto Distribution
+ @@ -1305,6 +2487,7 @@ +

expm1

pareto

pareto_distribution

value_type

BOOST_MATH_POLY_METHOD

BOOST_MATH_PROMOTE_DOUBLE_POLICY

BOOST_MATH_RATIONAL_METHOD

erf

Lanczos approximation

poisson
@@ -1379,7 +2562,12 @@
Polynomials

value_type

powm1
-

powm1

+
+ + +

expm1

powm1

+
Precision Policies
+

tgamma

precision_type

Policy Class Reference

promote_args
@@ -1393,18 +2581,19 @@

Policy Class Reference

-Q +Q
-R +R
Ratios of Gamma Functions
+

beta

tgamma_delta_ratio

tgamma_ratio

@@ -1412,6 +2601,8 @@

Rayleigh Distribution

Rayleigh Distribution
+ + @@ -1422,13 +2613,87 @@
References

expm1

log1p

policy_type

rayleigh

rayleigh_distribution

Lanczos approximation

Relative Error and Testing
-

relative_error

+
+ + + +

lgamma

relative_error

tgamma

relative_error

Relative Error and Testing

+
remainder
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

The Remez Method

+
remainderf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
remainderl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
Remez Method
+
+ + + +

erfc

remainder

round

+
remquo
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
remquof
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
remquol
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Representation Distance Between Two Floating Point Values (ULP) float_distance

float_distance

Riemann Zeta Function

zeta

+
riemann_zeta
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
riemann_zetaf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
riemann_zetal
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
rint
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
rintf
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

+
rintl
+
+ + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Rising Factorial

rising_factorial

rising_factorial
@@ -1447,13 +2712,37 @@

equal_ceil

equal_floor

equal_nearest_integer

+

round

round
+ + + + + + + + + + + + + + + + + + + + + +

Additional Implementation Notes

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Conceptual Requirements for Real Number Types

Discrete Quantile Policies

Error Function Inverses

Error Functions

Error Handling

Error Handling Policies

Find Scale (Standard Deviation) Example

Generic operations common to all distributions are non-member functions

Geometric Distribution Examples

Incomplete Gamma Function Inverses

Root Finding Without Derivatives: Bisection, Bracket and TOMS748

Rounding Functions

The Incomplete Beta Function Inverses

The Remez Method

Truncation Functions

Understanding Quantiles of Discrete Distributions

Using Macros to Change the Policy Defaults

+
roundf
+
-

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Rounding Functions

Rounding Functions
@@ -1464,11 +2753,47 @@
rounding_error_type

Policy Class Reference

+
roundl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

-S +S
Setting Policies for Distributions on an Ad Hoc Basis

fisher_f

+
Sign Manipulation Functions
+

copysign

sinc_pi

sinc_pi

sinhc_pi
@@ -1509,6 +2836,8 @@

Non-Member Properties

Spherical Bessel Functions of the First and Second Kinds
+ +

cyl_bessel_j

cyl_neumann

sph_bessel

sph_neumann

@@ -1523,24 +2852,74 @@

Spherical Harmonics

sph_bessel
+ +

Bessel Function Overview

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Calculation of the Type of the Result

Spherical Bessel Functions of the First and Second Kinds

TR1 C Functions Quick Reference

+
sph_besself
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_bessell
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_legendre
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_legendref
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_legendrel
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

sph_neumann
+

Bessel Function Overview

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

Spherical Bessel Functions of the First and Second Kinds

TR1 C Functions Quick Reference

+
sph_neumannf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

+
sph_neumannl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

TR1 C Functions Quick Reference

sqrt1pm1
-

sqrt1pm1

+
+ + + +

expm1

log1p

sqrt1pm1

standard_deviation

Non-Member Properties

Students t Distribution
+ @@ -1558,7 +2937,7 @@

beta

find_degrees_of_freedom

policy_type

students_t

Series Evaluation

-T +T
tgamma1pm1

Gamma

+
tgammaf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
tgammal
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

tgamma_delta_ratio

Ratios of Gamma Functions

tgamma_lower
@@ -1587,27 +2989,78 @@

Ratios of Gamma Functions

TR1 C Functions Quick Reference
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

assoc_laguerre

assoc_laguerref

assoc_laguerrel

assoc_legendre

assoc_legendref

assoc_legendrel

beta

betaf

betal

comp_ellint_1

comp_ellint_1f

comp_ellint_1l

comp_ellint_2

comp_ellint_2f

comp_ellint_2l

comp_ellint_3

comp_ellint_3f

comp_ellint_3l

cyl_bessel_i

cyl_bessel_if

cyl_bessel_il

cyl_bessel_j

cyl_bessel_jf

cyl_bessel_jl

cyl_bessel_k

cyl_bessel_kf

cyl_bessel_kl

cyl_neumann

cyl_neumannf

cyl_neumannl

ellint_1

ellint_1f

ellint_1l

ellint_2

ellint_2f

ellint_2l

ellint_3

ellint_3f

ellint_3l

expint

expintf

expintl

hermite

hermitef

hermitel

hyperg

hypergf

hypergl

laguerre

laguerref

laguerrel

legendre

legendref

legendrel

riemann_zeta

riemann_zetaf

riemann_zetal

sph_bessel

sph_besself

sph_bessell

sph_legendre

sph_legendref

sph_legendrel

sph_neumann

sph_neumannf

sph_neumannl

triangular

Triangular Distribution

Triangular Distribution
+ @@ -1623,6 +3076,9 @@ + + +

beta

policy_type

triangular

triangular_distribution

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

Conceptual Requirements for Real Number Types

Error Handling

Error Handling Policies

Truncation Functions

Truncation Functions
@@ -1630,15 +3086,30 @@

itrunc

lltrunc

ltrunc

+

round

trunc

+
truncf
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

+
truncl
+
+ + + +

C99 and C++ TR1 C-style Functions

C99 and TR1 C Functions Overview

C99 C Functions

-U +U
underflow_error_type

Policy Class Reference

+
Understanding Quantiles of Discrete Distributions
+

round

uniform

Uniform Distribution

Uniform Distribution
@@ -1709,14 +3180,18 @@

BOOST_MATH_PROMOTE_FLOAT_POLICY

BOOST_MATH_ROUNDING_ERROR_POLICY

BOOST_MATH_UNDERFLOW_ERROR_POLICY

+

round

Using With MPFR / GMP - a High-Precision Floating-Point Library
-

Lanczos approximation

+
+ + +

Lanczos approximation

tgamma

Using With NTL - a High-Precision Floating-Point Library

Lanczos approximation

-V +V
value_type
@@ -1758,13 +3233,16 @@

Non-Member Properties

-W +W
weibull

Weibull Distribution

Weibull Distribution
+ + + @@ -1774,7 +3252,7 @@

beta

expm1

log1p

policy_type

value_type

weibull

Weibull Distribution

-Z +Z
z
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index a76c2e19d..b058ff96b 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

- + Implemention philosophy
@@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

- + Accuracy and Representation of Test Values
@@ -130,7 +130,7 @@ binary value).

- + Tolerance of Tests
@@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

- + Handling Unsuitable Arguments
@@ -224,7 +224,7 @@

- + Handling of Functions that are Not Mathematically defined
@@ -258,7 +258,7 @@

- + Median of distributions
@@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

- + Handling of Floating-Point Infinity
@@ -337,7 +337,7 @@ handling policies.

- + Scale, Shape and Location
@@ -364,7 +364,7 @@ functions, they can be added if required.

- + Notes on Implementation of Specific Functions & Distributions
@@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
- + Rational Approximations Used
@@ -419,7 +419,7 @@ to the "true" minimax solution.

- + Representation of Mathematical Constants
@@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
- + Thread safety
@@ -505,7 +505,7 @@ the right thing here at some point.

- + Sources of Test Data
@@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

- + Creating and Managing the Equations
@@ -731,7 +731,7 @@ done HTML: this needs further investigation.

- + Producing Graphs
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index 8320a41e7..cd5770f01 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
- + Motivation

@@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

- + The Approximation
@@ -161,7 +161,7 @@

- + Computing the Coefficients
@@ -205,7 +205,7 @@ multiplied by F as the last step.

- + Choosing the Right Parameters
@@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index 8fc5907cd..d34582fd8 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
- + General references
@@ -98,7 +98,7 @@ Library (version 2), Walter E. Brown

- + Calculators

@@ -120,7 +120,7 @@ Binomial Probability Distribution Calculator.

- + Other Libraries

diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index 45573e002..b00d2b179 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

- + The Impossibility of Zero Error
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index 9e634ebaa..cb665c727 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

- + The Remez Method
@@ -174,7 +174,7 @@
- + Remez Step 1
@@ -205,7 +205,7 @@ to 5.6x10-4.

- + Remez Step 2
@@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

- + Iteration

@@ -250,7 +250,7 @@ remez-4

- + Rational Approximations
@@ -299,7 +299,7 @@ number of terms overall.

- + Practical Considerations
@@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

- + Remez Method Checklist
@@ -461,7 +461,7 @@
- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index 06003cb16..154c5e2e9 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms

- + Finding the Location and Scale for Normal and similar distributions
@@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
- + find_location function
@@ -80,7 +80,7 @@ }} // namespaces
- + find_scale function
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index 8f1c28857..3f5800825 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

- + Member Functions
@@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

- + Non-member Accessors
@@ -128,7 +128,7 @@ exception and make an error message available.

- + Accuracy

@@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

- + Implementation

@@ -327,7 +327,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index bf0fe610c..9d27a9238 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

    - + Member Functions
    - + Constructor
    beta_distribution(RealType alpha, RealType beta);
    @@ -164,7 +164,7 @@
                 yellow in the graph above).
               

    - + Parameter Accessors
    @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
    - + Parameter Estimators
    @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

    - + Non-member Accessor Functions
    @@ -263,7 +263,7 @@ Mathworld.

    - + Applications

    @@ -276,7 +276,7 @@ statistical inference.

    - + Related distributions
    @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

    - + Accuracy

    @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -594,7 +594,7 @@

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index 00c24e460..09a4e3067 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

- + Member Functions
- + Construct
binomial_distribution(RealType n, RealType p);
@@ -183,7 +183,7 @@
             otherwise calls domain_error.
           

- + Accessors
RealType success_fraction() const;
@@ -199,7 +199,7 @@
             was constructed.
           

- + Lower Bound on the Success Fraction
@@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

- + Upper Bound on the Success Fraction
@@ -383,7 +383,7 @@
- + Estimating the Number of Trials Required for a Certain Number of Successes
@@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

- + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

- + Non-member Accessors
@@ -622,7 +622,7 @@
- + Examples

@@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

- + Accuracy

@@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

- + Implementation

@@ -884,7 +884,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index 0e366cd40..06da83621 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

    - + Member Functions
    @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

    - + Non-member Accessors
    @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

    - + Accuracy

    @@ -157,7 +157,7 @@ have very low error rates.

    - + Implementation

    @@ -273,7 +273,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index 610bcfbb3..c59572402 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

    - + Member Functions
    @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

    - + Non-member Accessors
    @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

    - + Examples

    @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

    - + Accuracy

    @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

    - + Implementation

    @@ -379,7 +379,7 @@ independent, normally distributed random

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index dde82d0b6..7b7acc22f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

    - + Member Functions
    @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

    - + Non-member Accessors
    @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

    - + Accuracy

    @@ -122,7 +122,7 @@ should have very low error rates.

    - + Implementation

    @@ -283,7 +283,7 @@

- + references
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index b498201d7..21eaca0f6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

    - + Member Functions
    @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

    - + Non-member Accessors
    @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

    - + Accuracy

    @@ -154,7 +154,7 @@ very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index d36483090..23951ec85 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

    - + Member Functions
    @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

    - + Non-member Accessors
    @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

    - + Examples

    @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

    - + Accuracy

    @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index 0bde415e0..d4b39b369 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

    - + Member Functions
    @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

    - + Accuracy

    @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index 41617b0d8..ff6755daf 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

    - + Related Distributions
    @@ -206,12 +206,12 @@
- + Member Functions
- + Constructor
geometric_distribution(RealType p);
@@ -226,7 +226,7 @@
             1.
           

- + Accessors
RealType success_fraction() const; // successes / trials (0 <= p <= 1)
@@ -253,7 +253,7 @@
             Binomial Distribution for more discussion.
           

- + Lower Bound on success_fraction Parameter p
@@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

- + Upper Bound on success_fraction Parameter p
@@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

- + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
@@ -415,7 +415,7 @@ probability of observing k failures or fewer.

- + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
@@ -463,7 +463,7 @@ probability of observing more than k failures.

- + Non-member Accessors
@@ -611,7 +611,7 @@
- + Accuracy

@@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index 81d2c9cd3..7279485ef 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

- + Member Functions
@@ -131,7 +131,7 @@ from the population N.

- + Non-member Accessors
@@ -185,7 +185,7 @@
- + Accuracy

@@ -211,7 +211,7 @@ meaningless for N >= 1015.

- + Testing

@@ -223,7 +223,7 @@ this implementation and NTL::RR.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index 56c53105f..554f997ad 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

- + Member Functions
@@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

- + Non-member Accessors
@@ -255,7 +255,7 @@

- + Accuracy

@@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

- + Implementation

@@ -452,7 +452,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index d88633c72..a0513ebaa 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

    - + Member Functions
    @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

    - + Non-member Accessors
    @@ -184,7 +184,7 @@

- + Accuracy

@@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index cae119365..d60272188 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -146,7 +146,7 @@ the __wald_distrib (where mean μ is unity) is also provided.

- + Member Functions
@@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

- + Non-member Accessors
@@ -201,7 +201,7 @@

- + Accuracy

@@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

- + Implementation

@@ -390,7 +390,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index b0a45f113..593d14842 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

    - + Member Functions
    @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

    - + Accuracy

    @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

    - + Implementation

    @@ -329,7 +329,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index 8a1362ddc..3884c7628 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

    - + Member Functions
    @@ -98,7 +98,7 @@ Returns the scale of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

    - + Accuracy

    @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

    - + Implementation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index de607a94f..143aaea19 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index e9a445440..025c81be4 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

    - + Member Functions
    @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

    - + Non-member Accessors
    @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

    - + Accuracy

    @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

    - + Tests

    @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index 9f73eba32..29d05aed6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

    - + Member Functions
    @@ -183,7 +183,7 @@ == q.

    - + Non-member Accessors
    @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

    - + Examples

    @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

    - + Accuracy

    @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

    - + Tests

    @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index 5f8c26b81..5f0f69c52 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

    - + Member Functions
    @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

    - + Non-member Accessors
    @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

    - + Accuracy

    @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

    - + Tests

    @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index cd1619fe1..edcf8297c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

    - + Member Functions
    @@ -111,7 +111,7 @@ which this object was constructed.

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

    - + Accuracy

    @@ -255,7 +255,7 @@ epsilon.

    - + Tests

    @@ -270,7 +270,7 @@ least 50 decimal places.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index eb29ef746..3f979bfa8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

    - + Related Distributions
    @@ -195,12 +195,12 @@
    - + Member Functions
    - + Construct
    negative_binomial_distribution(RealType r, RealType p);
    @@ -216,7 +216,7 @@
                 <= 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -237,7 +237,7 @@
                 Distribution for more discussion.
               

    - + Lower Bound on Parameter p
    @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on Parameter p
    @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -457,7 +457,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -606,7 +606,7 @@

- + Accuracy

@@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index d85f9acc9..5835d946e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

- + Member Functions
@@ -109,7 +109,7 @@ be used generically).

- + Non-member Accessors
@@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

- + Accuracy

@@ -139,7 +139,7 @@ function, and as such should have very low error rates.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index 0b18708ce..80901628a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

- + Related distributions
- + Member Functions
@@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

- + Non-member Accessors
@@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

- + Accuracy

@@ -150,7 +150,7 @@ zero) see also why complements?.

- + Implementation

@@ -318,7 +318,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index ac60ffe74..adfde38b5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
- + Member Functions
@@ -131,7 +131,7 @@ Returns the mean of this distribution.

- + Non-member Accessors
@@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

- + Accuracy

@@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index c66130ea7..f14b555e6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

- + Related distributions
@@ -102,7 +102,7 @@ distribution.

- + Member Functions
@@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

- + Non-member Accessors
@@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

- + Accuracy

@@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

- + Implementation

@@ -320,7 +320,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index 4f81a29f1..129e2baaa 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

    - + Member Functions
    @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

    - + Non-member Accessors
    @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

    - + Examples

    @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

    - + Accuracy

    @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index 042e2ca06..f69a19771 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

    - + Member Functions
    @@ -163,7 +163,7 @@ (default+1).

    - + Non-member Accessors
    @@ -184,7 +184,7 @@ range is lower <= x <= upper.

    - + Accuracy

    @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

    - + Implementation

    @@ -378,7 +378,7 @@ Calculate and plot probability distributions

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index 635432166..58965ab4f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

      - + Member Functions
      @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

      - + Non-member Accessors
      @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

      - + Accuracy

      @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

      - + Implementation

      @@ -337,7 +337,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index cde570f97..4ca06d301 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

      - + Related distributions
      @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

      - + Member Functions
      @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

      - + Accuracy

      @@ -170,7 +170,7 @@ as such should have very low error rates.

      - + Implementation

      @@ -337,7 +337,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index 7d755a1a9..90480a6e2 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

      - + Function Index
        @@ -94,7 +94,7 @@
      - + Conceptual Index
        @@ -180,7 +180,7 @@
      - + Cumulative Distribution Function
      template <class RealType, class Policy>
      @@ -203,7 +203,7 @@
                 cdf
               

      - + Complement of the Cumulative Distribution Function
      template <class Distribution, class RealType>
      @@ -243,7 +243,7 @@
                 complement is useful and when it should be used.
               

      - + Hazard Function
      template <class RealType, class Policy>
      @@ -271,7 +271,7 @@
                 

    - + Cumulative Hazard Function
    template <class RealType, class Policy>
    @@ -298,7 +298,7 @@
               

- + mean
template<class RealType, class Policy>
@@ -313,7 +313,7 @@
           distribution).
         

- + median
template<class RealType, class Policy>
@@ -323,7 +323,7 @@
           Returns the median of the distribution dist.
         

- + mode
template<class RealType, Policy>
@@ -337,7 +337,7 @@
           if the distribution does not have a defined mode.
         

- + Probability Density Function
template <class RealType, class Policy>
@@ -365,7 +365,7 @@
           pdf
         

- + Range
template<class RealType, class Policy>
@@ -375,7 +375,7 @@
           Returns the valid range of the random variable over distribution dist.
         

- + Quantile
template <class RealType, class Policy>
@@ -405,7 +405,7 @@
           quantile
         

- + Quantile from the complement of the probability.

@@ -450,7 +450,7 @@ survival_inv

- + Standard Deviation
template <class RealType, class Policy>
@@ -464,7 +464,7 @@
           if the distribution does not have a defined standard deviation.
         

- + support
template<class RealType, class Policy>
@@ -481,7 +481,7 @@
           where the pdf is zero, and the cdf zero or unity.
         

- + Variance
template <class RealType, class Policy>
@@ -495,7 +495,7 @@
           if the distribution does not have a defined variance.
         

- + Skewness
template <class RealType, class Policy>
@@ -509,7 +509,7 @@
           if the distribution does not have a defined skewness.
         

- + Kurtosis
template <class RealType, class Policy>
@@ -551,7 +551,7 @@
           'Proper' kurtosis can have a value from zero to + infinity.
         

- + Kurtosis excess
template <class RealType, Policy>
@@ -585,7 +585,7 @@
           The kurtosis excess of a normal distribution is zero.
         

- + P and Q

@@ -595,7 +595,7 @@ returned by these functions.

- + Percent Point Function or Percentile

@@ -603,7 +603,7 @@ the Quantile.

- + Inverse CDF Function.

@@ -611,14 +611,14 @@ Quantile.

- + Inverse Survival Function.

The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

- + Probability Mass Function

@@ -631,7 +631,7 @@ applies to continuous distributions.

- + Lower Critical Value.

@@ -640,7 +640,7 @@ the Quantile.

- + Upper Critical Value.

@@ -650,7 +650,7 @@ complement of the probability.

- + Survival Function

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index ad607bfdc..00245409b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

- + Adding Additional Location and Scale Parameters
@@ -55,7 +55,7 @@ functions.

- + An "any_distribution" class
@@ -91,7 +91,7 @@ investigation.

- + Higher Level Hypothesis Tests
@@ -111,7 +111,7 @@ expected_mean.

- + Integration With Statistical Accumulators
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index 147bcec8e..0cf91c0e8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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
- + Using Binomial distribution moments
@@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
- + Quantiles

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index 48a10063b..6e4f025be 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

- + Confidence intervals as a function of the number of observations
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index ba03c669d..0bd329a40 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
 
- + Default arguments to distribution constructors.
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index 42fad58dc..12a1a7d56 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
- + Controlling Error Handling from find_location
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index 16cd23207..48ea52d47 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

- + Using find_location and find_scale to meet dispensing and measurement specifications
@@ -193,7 +193,7 @@

- + Using Cauchy-Lorentz instead of normal distribution
@@ -305,7 +305,7 @@ of estimating these intervals.

- + Changing the scale or standard deviation
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index ade006274..696fb2537 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
- + Controlling how Errors from find_scale are handled
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index 628fea38f..657069794 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

- + Throwing a dice
@@ -288,7 +288,7 @@ replicated in C++ if desired.

- + Surveying customers to find one with a faulty product
@@ -333,7 +333,7 @@

- + Basket Ball Shooters
@@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

- + Estimating failures
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index 96fb688e6..0f0bfede4 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

- + Traditional Tables
@@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

- + Standard deviations either side of the Mean
@@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

- + Some simple examples
- + Life of light bulbs
@@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

- + How many onions?
@@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

- + Packing beef
@@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

- + Length of bolts
diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index b0e8e382b..230295c98 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
- + Supported C99 Functions
@@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
- + Quick Reference

diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index bbb06c425..df3d70bf8 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

- + Usage Recomendations

@@ -295,7 +295,7 @@ this can be a big win.

- + Supported C99 Functions
@@ -391,7 +391,7 @@ }}}} // namespaces
- + Supported TR1 Functions
@@ -520,7 +520,7 @@ type calculation rules
.

- + Currently Unsupported C99 Functions
@@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index 03fedad71..d09da4c67 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
- + Supported TR1 Functions
@@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
- + Quick Reference
// [5.2.1.1] associated Laguerre polynomials:
@@ -494,7 +494,7 @@
         for the full template (header only) version of this function.
       

- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index 845a8d29a..bb82dd3bd 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
- + Building a Library (shared, dynamic .dll or static .lib)
@@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

- + Building the Examples
@@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

- + Building the Tests
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index 36e7c949f..c2daa77c8 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
- + boost/math
@@ -73,7 +73,7 @@
- + boost/libs
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index 25685c4d0..74a8210f4 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
- + Quick Reference
@@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

- + Rationale

@@ -766,7 +766,7 @@

- + Finding More Information
@@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

- + Domain Errors

@@ -859,7 +859,7 @@ for more details.

- + Evaluation at a pole

@@ -897,7 +897,7 @@ for more details.

- + Numeric Overflow

@@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

- + Numeric Underflow

@@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

- + Denormalisation Errors

@@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

- + Evaluation Errors

@@ -1001,7 +1001,7 @@ for more details.

- + Indeterminate Result Errors

@@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

- + Rounding Errors

@@ -1068,7 +1068,7 @@ for more details.

- + Errors from typecasts

diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index 8c215be2e..3268e82be 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -28,7 +28,7 @@ New

- + Boost-1.47.0
  • @@ -36,7 +36,7 @@ #5113.
- + Boost-1.46.0
    @@ -51,7 +51,7 @@
- + Boost-1.45.0
    @@ -68,7 +68,7 @@
- + Boost-1.44.0
    @@ -82,7 +82,7 @@
- + Boost-1.41.0
  • @@ -90,7 +90,7 @@ and its inverse.
- + Boost-1.40.0
    @@ -127,7 +127,7 @@
- + Boost-1.38.0
    @@ -139,14 +139,14 @@
- + Boost-1.37.0
  • Improved accuracy and testing of the inverse hypergeometric functions.
- + Boost-1.36.0
    @@ -179,7 +179,7 @@
- + Boost-1.35.0: Post Review First Official Release
@@ -211,7 +211,7 @@
- + Milestone 4: Second Review Candidate (1st March 2007)
@@ -225,7 +225,7 @@
- + Milestone 3: First Review Candidate (31st Dec 2006)
@@ -253,7 +253,7 @@
- + Milestone 2: Released September 10th 2006
@@ -289,7 +289,7 @@
- + Milestone 1: Released March 31st 2006
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index e94cb7319..d993685dc 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

- + Statistical Distributions
@@ -56,7 +56,7 @@ tests.

- + Mathematical Special Functions
@@ -83,7 +83,7 @@ double.

- + Implementation Toolkit
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index cffd610c5..49635ef37 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

- + Shortcuts
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index c9757d99d..a7858edb2 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

- + Usage Recomendations
@@ -297,7 +297,7 @@ this can be a big win.

- + Supported C99 Functions
@@ -393,7 +393,7 @@ }}}} // namespaces
- + Supported TR1 Functions
@@ -522,7 +522,7 @@ type calculation rules
.

- + Currently Unsupported C99 Functions
@@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index 93795ba87..915e7cc36 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

- + Comparison to GSL-1.13 and Cephes
@@ -344,7 +344,7 @@

- +INF [1] + +INF [1]

@@ -423,7 +423,7 @@

-

17.89[2]

+

17.89[2]

(4.248e-005s)

@@ -548,11 +548,11 @@ -

[1] +

[1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

-

[2] +

[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 @@ -563,7 +563,7 @@

- + Comparison to the R and DCDFLIB Statistical Libraries on Windows
@@ -659,7 +659,7 @@

-

67.66[1]

+

67.66[1]

(3.366e-004s)

@@ -1088,7 +1088,7 @@

-

3.60[2]

+

3.60[2]

(5.987e-007s)

@@ -1317,7 +1317,7 @@

-

43.43[3]

+

43.43[3]

(3.732e-004s)

@@ -1387,7 +1387,7 @@

-

393.90[4]

+

393.90[4]

(2.673e-002s)

@@ -1523,7 +1523,7 @@

-

1.00[5]

+

1.00[5]

(4.411e-004s)

@@ -1809,28 +1809,28 @@ -

[1] +

[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.

-

[2] +

[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 much slower, albeit with much improved precision.

-

[3] +

[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

-

[4] +

[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.

-

[5] +

[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. @@ -1839,7 +1839,7 @@


- + Comparison to the R Statistical Library on Linux
@@ -1934,7 +1934,7 @@

-

30.51[1]

+

30.51[1]

(3.616e-004s)

@@ -2363,7 +2363,7 @@

-

2.20[2]

+

2.20[2]

(3.522e-007s)

@@ -2592,7 +2592,7 @@

-

25.92[3]

+

25.92[3]

(4.407e-004s)

@@ -2662,7 +2662,7 @@

-

144.91[4]

+

144.91[4]

(3.214e-002s)

@@ -2798,7 +2798,7 @@

-

1.00[5]

+

1.00[5]

(5.916e-004s)

@@ -3084,28 +3084,28 @@ -

[1] +

[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.

-

[2] +

[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 much slower, albeit with much improved precision.

-

[3] +

[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

-

[4] +

[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.

-

[5] +

[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. diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index 83af5da74..0227680fc 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

- + real

@@ -89,7 +89,7 @@ = 68.1584.

- + integer_round_outwards

@@ -143,7 +143,7 @@ in each tail.

- + integer_round_inwards

@@ -202,7 +202,7 @@ in each tail.

- + integer_round_down

@@ -210,7 +210,7 @@ or a lower quantile.

- + integer_round_up

@@ -218,7 +218,7 @@ a lower quantile.

- + integer_round_nearest

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index 34c02655d..c274df33f 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

- + Available Actions When an Error is Raised
@@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

- + throw_on_error

@@ -174,7 +174,7 @@

- + errno_on_error

@@ -289,7 +289,7 @@

- + ignore_error

@@ -402,7 +402,7 @@

- + user_error

@@ -451,7 +451,7 @@ here.

- + Kinds of Error Raised
@@ -691,7 +691,7 @@
- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index 89edd2071..6e9b97942 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index 73b5a7971..2cb3ec405 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

- + BOOST_MATH_DOMAIN_ERROR_POLICY

@@ -71,7 +71,7 @@ ignore_error or user_error.

- + BOOST_MATH_POLE_ERROR_POLICY

@@ -81,7 +81,7 @@ ignore_error or user_error.

- + BOOST_MATH_OVERFLOW_ERROR_POLICY

@@ -91,7 +91,7 @@ ignore_error or user_error.

- + BOOST_MATH_ROUNDING_ERROR_POLICY

@@ -101,7 +101,7 @@ ignore_error or user_error.

- + BOOST_MATH_EVALUATION_ERROR_POLICY

@@ -111,7 +111,7 @@ ignore_error or user_error.

- + BOOST_MATH_UNDERFLOW_ERROR_POLICY

@@ -121,7 +121,7 @@ ignore_error or user_error.

- + BOOST_MATH_DENORM_ERROR_POLICY

@@ -131,7 +131,7 @@ ignore_error or user_error.

- + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

@@ -142,7 +142,7 @@ ignore_error or user_error.

- + BOOST_MATH_DIGITS10_POLICY

@@ -153,7 +153,7 @@ recommended that you change this from the default.

- + BOOST_MATH_PROMOTE_FLOAT_POLICY

@@ -165,7 +165,7 @@ off.

- + BOOST_MATH_PROMOTE_DOUBLE_POLICY

@@ -177,7 +177,7 @@ off.

- + BOOST_MATH_DISCRETE_QUANTILE_POLICY

@@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

- + BOOST_MATH_ASSERT_UNDEFINED_POLICY

@@ -201,7 +201,7 @@ whether or not a particular property is well defined.

- + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

@@ -210,7 +210,7 @@ Defaults to 1000000.

- + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

@@ -219,7 +219,7 @@ Defaults to 200.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index 549b486e9..3743453b2 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

- + Other Rounding Policies are Available
diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index 872619239..1ba45df95 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
 
- + Description

@@ -105,7 +105,7 @@

- + Testing

@@ -114,7 +114,7 @@ (with all the special case handling removed).

- + Accuracy

@@ -489,7 +489,7 @@ were found.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index a49c8ecbe..21bb7046f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

- + Ordinary Bessel Functions
@@ -103,7 +103,7 @@ and is known as either a Bessel

- + Modified Bessel Functions
@@ -167,7 +167,7 @@ respectively:

- + Spherical Bessel Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index 60f7d1a03..52d6f40d8 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
 
- + Description

@@ -104,7 +104,7 @@

- + Testing

@@ -113,7 +113,7 @@ (with all the special case handling removed).

- + Accuracy

@@ -321,7 +321,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index 00cff5b65..49d4db7e3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
 
- + Description

@@ -92,7 +92,7 @@ for small x:

- + Testing

@@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

- + Accuracy

@@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index 8a48103cc..27dbf5d99 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -225,7 +225,7 @@

- + Testing

@@ -235,7 +235,7 @@ this implementation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index d863d68fb..08dbc9b85 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -225,7 +225,7 @@

- + Testing

@@ -235,7 +235,7 @@ this implementation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index 9079b7bb7..fd438441e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -231,7 +231,7 @@

- + Testing

@@ -241,7 +241,7 @@ this implementation.

- + Implementation

@@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

- Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



-

[1] +

[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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index 844eef19e..5ac3c747a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

- + Synopsis

@@ -100,7 +100,7 @@ }} // namespaces

- + Description

@@ -216,7 +216,7 @@

- + Testing

@@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

- + Accuracy

@@ -393,7 +393,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index ef3ad091e..dfb786a01 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

- + Notation

All variables are real numbers unless otherwise noted.

- + Definition

@@ -245,7 +245,7 @@

- + Duplication Theorem

@@ -256,7 +256,7 @@

- + Carlson's Formulas

@@ -273,7 +273,7 @@

- + Numerical Algorithms
@@ -287,7 +287,7 @@ integrals with satisfactory precisions.

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index 403f5bfe3..e268dbc06 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

- + Synopsis

@@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -78,7 +78,7 @@
           
         

- + Accuracy

@@ -202,7 +202,7 @@ slightly over the range [4,6].

- + Testing

@@ -217,7 +217,7 @@ check.

- + Implementation

@@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



-

[2] +

[2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index 3a9cbe242..055b8f54a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

- + Synopsis

@@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -78,7 +78,7 @@
           
         

- + Accuracy

@@ -220,7 +220,7 @@

- + Testing

@@ -235,7 +235,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index 82dd34913..f4f20c222 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

- + Accuracy

@@ -99,14 +99,14 @@ function for larger arguments.

- + Testing

The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index 60d82e74f..89267499c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

- + Accuracy

@@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

- + Testing

The spot tests for the double factorial use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index 9c3813f28..15b167349 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description
@@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

- + Accuracy

@@ -166,7 +166,7 @@ will be the same as for tgamma.

- + Testing

@@ -175,7 +175,7 @@ function handle those cases already.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index 185f972b5..5869b8eb0 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

- + Accuracy

@@ -79,14 +79,14 @@ function.

- + Testing

The spot tests for the falling factorials use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index 2177a6fc6..b9cc71cb3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

- + Accuracy

@@ -83,14 +83,14 @@ function.

- + Testing

The spot tests for the rising factorials use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index 6f258991a..e5e74ba69 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -85,7 +85,7 @@ to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index ed1c6f0c6..ffd6d2d3f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -80,7 +80,7 @@ to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index aea2622c1..d839f146d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index d8976dedc..b6b402de0 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

- + Accuracy

@@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index 9ca40eeb8..45c352171 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

- + Synopsis

@@ -49,7 +49,7 @@ }}

- + Rationale and Usage
@@ -91,7 +91,7 @@ Only 3 different products were actually computed.

- + Return Type

@@ -112,7 +112,7 @@

- + Policies

@@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Error Handling
@@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
- + Acknowledgements

@@ -238,7 +238,7 @@ improving the implementation.

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index deccc50ab..ea24ccbb9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

- + Accuracy

@@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index e20a5718d..b6ed0b6dc 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index 71ae121f7..2f48d7cd8 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

- + Accuracy

@@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index fea592557..3182c6131 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

- + Accuracy

Should have approximately 2-3 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index 63f8088e5..c9e4c89a6 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

- + Accuracy

@@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index ac4bfc663..408a33636 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

- + Synopsis

@@ -49,7 +49,7 @@ }} // namespaces

- + Description

@@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

Almost identical to the incomplete beta function ibeta.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index 91e4d2523..4fc793d40 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

- + Synopsis

@@ -48,7 +48,7 @@ }} // namespaces

- + Description

@@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

- + Accuracy

@@ -239,7 +239,7 @@ very small.

- + Testing

@@ -248,7 +248,7 @@ at 1000-bit precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index 26f619dd1..b6c6d4363 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -158,7 +158,7 @@

- + Accuracy

@@ -865,7 +865,7 @@


- + Testing

@@ -883,7 +883,7 @@ have test data that is fully independent of the code.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index 60aaf5e3f..001c8b06b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

- + Description

@@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -300,7 +300,7 @@ or 1.

- + Testing

@@ -324,7 +324,7 @@

- + Implementation of ibeta_inv and ibetac_inv
@@ -492,7 +492,7 @@ rapidly converges on the true value.

- + Implementation of inverses on the a and b parameters
diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index 290bf9ef9..40b45b38c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
- + Synopsis

@@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -100,7 +100,7 @@
           
         

- + Accuracy

@@ -525,7 +525,7 @@

- + Testing

@@ -540,7 +540,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index adec47384..6dd014098 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

- + Synopsis

@@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -98,7 +98,7 @@
           
         

- + Accuracy

@@ -108,7 +108,7 @@ error functions.

- + Testing

@@ -131,7 +131,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index 32019eb42..b5b282170 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

- + Synopsis

@@ -48,7 +48,7 @@ }} // namespaces

- + Description

@@ -77,7 +77,7 @@ T otherwise.

- + Accuracy

@@ -265,7 +265,7 @@ absolute error will remain very low.

- + Testing

@@ -275,7 +275,7 @@ see below).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index 63ff378d1..d19dfd6b0 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

- + Synopsis

@@ -49,7 +49,7 @@ }} // namespaces

- + Description

@@ -75,7 +75,7 @@ otherwise the return type is simply T1.

- + Accuracy

@@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index daa13d0d6..b50987904 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

- + Description
template <class T1, class T2> 
@@ -107,7 +107,7 @@
           
         

- + Accuracy

@@ -317,7 +317,7 @@

- + Testing

@@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index 0568a7171..df3dd1098 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -155,7 +155,7 @@

- + Accuracy

@@ -823,7 +823,7 @@

- + Testing

@@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

- + Implementation

@@ -1008,7 +1008,7 @@ by Temme (see references below).

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index f1d1fb32e..ef434a140 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -168,7 +168,7 @@ 0.

- + Accuracy

@@ -182,7 +182,7 @@ functions.

- + Testing

@@ -206,7 +206,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index dbd0e72eb..31185f65d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description

@@ -93,7 +93,7 @@ T otherwise.

- + Accuracy

@@ -344,7 +344,7 @@

- + Testing

@@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index f22a0507b..18756776c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description
template <class T>
@@ -119,7 +119,7 @@
           it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
         

- + Accuracy

@@ -374,7 +374,7 @@

- + Testing

@@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index 93a499ded..77d12cde8 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

- + Synopsis

@@ -51,7 +51,7 @@ }} // namespaces

- + Description

@@ -131,7 +131,7 @@

- + Accuracy

@@ -248,7 +248,7 @@ is very close to a root.

- + Testing

@@ -258,7 +258,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index 3f119ba1f..f8454409b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

- + Synopsis

@@ -62,7 +62,7 @@ }} // namespaces

- + Description

@@ -205,7 +205,7 @@

- + Accuracy

@@ -422,7 +422,7 @@ is very close to a root.

- + Testing

@@ -432,7 +432,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index 0295f4d52..4b2636b9f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

- + Synopsis

@@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -295,7 +295,7 @@
 
 
 
- + Accuracy

@@ -676,7 +676,7 @@ given here.

- + Testing

@@ -686,7 +686,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index c9b9cbaf5..c554cc683 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

- + Synopsis

@@ -60,7 +60,7 @@ }} // namespaces

- + Description

@@ -150,7 +150,7 @@

- + Accuracy

@@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

- + Testing

@@ -281,7 +281,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index 2135d9aa9..95cbcfa0a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

- + Synopsis

@@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -80,7 +80,7 @@
           
         

- + Accuracy

@@ -229,7 +229,7 @@

- + Testing

@@ -244,7 +244,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index 096bdd13d..850c37fc1 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -27,7 +27,7 @@ History and What's New

- + Boost-1.47.0
  • @@ -35,7 +35,7 @@ #5113.
- + Boost-1.46.0
    @@ -50,7 +50,7 @@
- + Boost-1.45.0
    @@ -67,7 +67,7 @@
- + Boost-1.44.0
    @@ -81,7 +81,7 @@
- + Boost-1.41.0
  • @@ -89,7 +89,7 @@ and its inverse.
- + Boost-1.40.0
    @@ -126,7 +126,7 @@
- + Boost-1.38.0
    @@ -138,14 +138,14 @@
- + Boost-1.37.0
  • Improved accuracy and testing of the inverse hypergeometric functions.
- + Boost-1.36.0
    @@ -178,7 +178,7 @@
- + Boost-1.35.0: Post Review First Official Release
@@ -210,7 +210,7 @@
- + Milestone 4: Second Review Candidate (1st March 2007)
@@ -224,7 +224,7 @@
- + Milestone 3: First Review Candidate (31st Dec 2006)
@@ -252,7 +252,7 @@
- + Milestone 2: Released September 10th 2006
@@ -288,7 +288,7 @@
- + Milestone 1: Released March 31st 2006
diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index b770bb608..eb8ccde81 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

- + tgamma
  • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
- + Incomplete Beta
  • @@ -56,7 +56,7 @@ b (medium priority).
- + Inverse Gamma
  • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
- + Polynomials
  • @@ -74,7 +74,7 @@ not (Low Priority).
- + Elliptic Integrals
    @@ -127,7 +127,7 @@
- + Inverse Hyperbolic Functions
@@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
- + Statistical distributions
@@ -146,7 +146,7 @@ for very large degrees of freedom?
- + Feature Requests

@@ -1156,6 +1156,38 @@

+ + +

+ Kolmogorov Distribution +

+ + +

+ - +

+ + +

+ - +

+ + +

+ - +

+ + +

+ - +

+ + +

+ - +

+ +

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index a97808d80..3cefeceaf 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

- + Synopsis

@@ -78,7 +78,7 @@ }}} // namespaces

- + Description

@@ -178,7 +178,7 @@ a continued fraction for convergence.

- + Implementation

@@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index f5b2f53db..96e2f6b28 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

- + Synopsis

@@ -59,7 +59,7 @@ }}} // namespaces

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index 4cc8a5711..cd200492d 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

- + synopsis

@@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

- + Description

@@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index d8f25f192..12a045842 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

- + synopsis

@@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

- + Description

@@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index da7faf28f..ac6b54358 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

- + Synopsis

@@ -62,7 +62,7 @@ }}} // namespaces

- + Description

@@ -206,7 +206,7 @@

- + Newton Raphson Method
@@ -224,7 +224,7 @@ iteration.

- + Halley's Method
@@ -246,7 +246,7 @@ iteration.

- + Schroeder's Method
@@ -270,7 +270,7 @@ iteration.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index 970adc63d..3deb9ef91 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

- + Synopsis

@@ -144,7 +144,7 @@ }}} // namespaces

- + Description

@@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

- + Bisection
template <class F, class T, class Tol>
@@ -280,7 +280,7 @@
           tol was satisfied.
         

- + Bracket and solve
@@ -388,7 +388,7 @@ was satisfied.

- + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
@@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index 687023000..b3052236e 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

- + Synopsis

@@ -70,7 +70,7 @@ }}} // namespaces

- + Description

@@ -127,7 +127,7 @@ summation in this way.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index 2a3f76155..47f4c1166 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

- + Synopsis

@@ -38,7 +38,7 @@

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index 05ba5b67a..5f90f2216 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

- + Synopsis

@@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

- + Description
template <class T>
@@ -157,7 +157,7 @@
           is mainly a debugging/development aid (and a good place for a breakpoint).
         

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index 21746bb92..bff2e06fd 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

- + Synopsis

@@ -103,7 +103,7 @@ }}} // namespaces

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index 01e93fdcd..566438b7f 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

- + Synopsis
namespace boost{ namespace math{ namespace tools{
@@ -147,7 +147,7 @@
 }}} // namespaces
 
- + Description

@@ -177,7 +177,7 @@

- + Example 1: Output Data for Graph Plotting
@@ -211,7 +211,7 @@

- + Example 2: Creating Test Data
@@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

- + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
@@ -482,7 +482,7 @@ of a and z.

- + reference

diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index 1f1b3d871..67a34522c 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@

- + Real concept

@@ -84,7 +84,7 @@ declaration.

- + Testing the real concept

@@ -130,7 +130,7 @@ double, also tests real_concept.

- + Distribution Concept

@@ -166,7 +166,7 @@ class for distribution types.

- + Testing the distribution concept

diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index c860bc43f..8d9c75331 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

- + Basic Arithmetic Requirements
@@ -1035,7 +1035,7 @@
- + Standard Library Support Requirements
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index ea3a4f4b3..a2c2b61b4 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -28,7 +28,7 @@ Infinities and NaN's
- + Synopsis
#define FP_ZERO        /* implementation specific value */
@@ -58,7 +58,7 @@
         to use these functions.
       

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index 0a99ab7ac..fa178cfa7 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

- + Synopsis

@@ -50,7 +50,7 @@ }} // namespaces

- + Description - float_advance
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index 1acb1dc1f..4f27bdd4e 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

- + Synopsis

@@ -52,7 +52,7 @@ }} // namespaces

- + Description - float_distance
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index c91162137..27fce3fbb 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - float_next
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index 9ac12d097..c99842ada 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - float_prior
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index 16ca58cf4..82fd914a1 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - nextafter
@@ -76,7 +76,7 @@ returns an overflow_error.

- + Examples - nextafter
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index a807237b9..4bea734e6 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -28,7 +28,7 @@ Functions
- + Synopsis

@@ -52,7 +52,7 @@ }} // namespaces

- + Description
template<class T> 
diff --git a/doc/sf_and_dist/issues.qbk b/doc/sf_and_dist/issues.qbk
index b46ad8a28..e8466ea47 100644
--- a/doc/sf_and_dist/issues.qbk
+++ b/doc/sf_and_dist/issues.qbk
@@ -123,6 +123,9 @@ is found, the higher the priority for implementing it:
 [[Bradford][-][-][-][X][-]]
 [[Birr / Fisk][-][-][-][X][-]]
 [[Reciprocal][-][-][-][X][-]]
+
+[/0 votes but useful anyway?]
+[[Kolmogorov Distribution][-][-][-][-][-]]
 ]
 
 Also asked for more than once:
@@ -143,3 +146,4 @@ by returning the log of the result.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
 ]
+

From 331db8622d690c99630870afc2d380179fe5b1d9 Mon Sep 17 00:00:00 2001
From: John Maddock 
Date: Thu, 3 Mar 2011 11:04:25 +0000
Subject: [PATCH 13/82] Fix typo in inverse_gausian.qbk. Fixes #5254.

[SVN r69508]
---
 .../distributions/inverse_gaussian.qbk        |  2 +-
 doc/sf_and_dist/html/index.html               |  4 +-
 doc/sf_and_dist/html/index/s12.html           |  2 +-
 doc/sf_and_dist/html/index/s13.html           |  2 +-
 doc/sf_and_dist/html/index/s14.html           |  2 +-
 doc/sf_and_dist/html/index/s15.html           |  2 +-
 doc/sf_and_dist/html/index/s16.html           |  2 +-
 .../backgrounders/implementation.html         | 30 +++++------
 .../math_toolkit/backgrounders/lanczos.html   | 10 ++--
 .../html/math_toolkit/backgrounders/refs.html |  6 +--
 .../backgrounders/relative_error.html         |  2 +-
 .../math_toolkit/backgrounders/remez.html     | 16 +++---
 .../dist/dist_ref/dist_algorithms.html        |  6 +--
 .../dist/dist_ref/dists/bernoulli_dist.html   | 10 ++--
 .../dist/dist_ref/dists/beta_dist.html        | 20 +++----
 .../dist/dist_ref/dists/binomial_dist.html    | 24 ++++-----
 .../dist/dist_ref/dists/cauchy_dist.html      | 10 ++--
 .../dist/dist_ref/dists/chi_squared_dist.html | 12 ++---
 .../dist/dist_ref/dists/exp_dist.html         | 10 ++--
 .../dist/dist_ref/dists/extreme_dist.html     |  8 +--
 .../dist/dist_ref/dists/f_dist.html           | 10 ++--
 .../dist/dist_ref/dists/gamma_dist.html       |  8 +--
 .../dist/dist_ref/dists/geometric_dist.html   | 22 ++++----
 .../dist_ref/dists/hypergeometric_dist.html   | 10 ++--
 .../dists/inverse_chi_squared_dist.html       | 10 ++--
 .../dist_ref/dists/inverse_gamma_dist.html    |  8 +--
 .../dist_ref/dists/inverse_gaussian_dist.html | 12 ++---
 .../dist/dist_ref/dists/laplace_dist.html     | 10 ++--
 .../dist/dist_ref/dists/logistic_dist.html    |  8 +--
 .../dist/dist_ref/dists/lognormal_dist.html   |  8 +--
 .../dist/dist_ref/dists/nc_beta_dist.html     | 10 ++--
 .../dist_ref/dists/nc_chi_squared_dist.html   | 12 ++---
 .../dist/dist_ref/dists/nc_f_dist.html        | 10 ++--
 .../dist/dist_ref/dists/nc_t_dist.html        | 10 ++--
 .../dists/negative_binomial_dist.html         | 22 ++++----
 .../dist/dist_ref/dists/normal_dist.html      |  8 +--
 .../dist/dist_ref/dists/pareto.html           | 12 ++---
 .../dist/dist_ref/dists/poisson_dist.html     |  8 +--
 .../dist/dist_ref/dists/rayleigh.html         | 12 ++---
 .../dist/dist_ref/dists/students_t_dist.html  | 10 ++--
 .../dist/dist_ref/dists/triangular_dist.html  | 10 ++--
 .../dist/dist_ref/dists/uniform_dist.html     | 10 ++--
 .../dist/dist_ref/dists/weibull_dist.html     | 12 ++---
 .../html/math_toolkit/dist/dist_ref/nmp.html  | 54 +++++++++----------
 .../html/math_toolkit/dist/future.html        |  8 +--
 .../weg/binom_eg/binomial_quiz_example.html   |  4 +-
 .../stat_tut/weg/cs_eg/chi_sq_intervals.html  |  2 +-
 .../dist/stat_tut/weg/dist_construct_eg.html  |  2 +-
 .../weg/find_eg/find_location_eg.html         |  2 +-
 .../weg/find_eg/find_mean_and_sd_eg.html      |  6 +--
 .../stat_tut/weg/find_eg/find_scale_eg.html   |  2 +-
 .../dist/stat_tut/weg/geometric_eg.html       |  8 +--
 .../weg/normal_example/normal_misc.html       | 14 ++---
 .../html/math_toolkit/extern_c/c99.html       |  4 +-
 .../html/math_toolkit/extern_c/tr1.html       | 10 ++--
 .../html/math_toolkit/extern_c/tr1_ref.html   |  6 +--
 .../math_toolkit/main_overview/building.html  |  6 +--
 .../main_overview/directories.html            |  4 +-
 .../main_overview/error_handling.html         | 24 ++++-----
 .../math_toolkit/main_overview/history1.html  | 28 +++++-----
 .../math_toolkit/main_overview/intro.html     |  6 +--
 .../main_overview/navigation.html             |  2 +-
 .../html/math_toolkit/main_overview/tr1.html  | 10 ++--
 .../html/math_toolkit/perf/comparisons.html   | 54 +++++++++----------
 .../policy/pol_ref/discrete_quant_ref.html    | 12 ++---
 .../pol_ref/error_handling_policies.html      | 14 ++---
 .../policy/pol_ref/internal_promotion.html    |  2 +-
 .../policy/pol_ref/policy_defaults.html       | 32 +++++------
 .../pol_tutorial/understand_dis_quant.html    |  2 +-
 .../math_toolkit/special/bessel/bessel.html   | 10 ++--
 .../special/bessel/bessel_over.html           |  6 +--
 .../math_toolkit/special/bessel/mbessel.html  | 10 ++--
 .../special/bessel/sph_bessel.html            | 10 ++--
 .../math_toolkit/special/ellint/ellint_1.html | 10 ++--
 .../math_toolkit/special/ellint/ellint_2.html | 10 ++--
 .../math_toolkit/special/ellint/ellint_3.html | 14 ++---
 .../special/ellint/ellint_carlson.html        | 10 ++--
 .../special/ellint/ellint_intro.html          | 12 ++---
 .../math_toolkit/special/expint/expint_i.html | 14 ++---
 .../math_toolkit/special/expint/expint_n.html | 10 ++--
 .../special/factorials/sf_binomial.html       |  6 +--
 .../factorials/sf_double_factorial.html       |  6 +--
 .../special/factorials/sf_factorial.html      | 10 ++--
 .../factorials/sf_falling_factorial.html      |  6 +--
 .../factorials/sf_rising_factorial.html       |  6 +--
 .../math_toolkit/special/inv_hyper/acosh.html |  6 +--
 .../math_toolkit/special/inv_hyper/asinh.html |  6 +--
 .../math_toolkit/special/inv_hyper/atanh.html |  6 +--
 .../math_toolkit/special/powers/cbrt.html     |  4 +-
 .../math_toolkit/special/powers/ct_pow.html   | 14 ++---
 .../math_toolkit/special/powers/expm1.html    |  4 +-
 .../math_toolkit/special/powers/hypot.html    |  2 +-
 .../math_toolkit/special/powers/log1p.html    |  4 +-
 .../math_toolkit/special/powers/powm1.html    |  4 +-
 .../math_toolkit/special/powers/sqrt1pm1.html |  4 +-
 .../special/sf_beta/beta_derivative.html      |  8 +--
 .../special/sf_beta/beta_function.html        | 10 ++--
 .../special/sf_beta/ibeta_function.html       | 10 ++--
 .../special/sf_beta/ibeta_inv_function.html   | 10 ++--
 .../special/sf_erf/error_function.html        | 10 ++--
 .../special/sf_erf/error_inv.html             | 10 ++--
 .../special/sf_gamma/digamma.html             | 10 ++--
 .../special/sf_gamma/gamma_derivatives.html   |  8 +--
 .../special/sf_gamma/gamma_ratios.html        |  8 +--
 .../math_toolkit/special/sf_gamma/igamma.html | 12 ++---
 .../special/sf_gamma/igamma_inv.html          | 10 ++--
 .../math_toolkit/special/sf_gamma/lgamma.html | 10 ++--
 .../math_toolkit/special/sf_gamma/tgamma.html | 10 ++--
 .../math_toolkit/special/sf_poly/hermite.html | 10 ++--
 .../special/sf_poly/laguerre.html             | 10 ++--
 .../special/sf_poly/legendre.html             | 10 ++--
 .../special/sf_poly/sph_harm.html             | 10 ++--
 .../html/math_toolkit/special/zetas/zeta.html | 10 ++--
 .../html/math_toolkit/status/history1.html    | 28 +++++-----
 .../html/math_toolkit/status/issues.html      | 16 +++---
 .../math_toolkit/toolkit/internals1/cf.html   |  8 +--
 .../toolkit/internals1/constants.html         |  4 +-
 .../toolkit/internals1/minima.html            |  6 +--
 .../toolkit/internals1/rational.html          |  6 +--
 .../toolkit/internals1/roots.html             | 12 ++---
 .../toolkit/internals1/roots2.html            | 12 ++---
 .../toolkit/internals1/series_evaluation.html |  6 +--
 .../toolkit/internals1/tuples.html            |  4 +-
 .../toolkit/internals2/error_test.html        |  6 +--
 .../toolkit/internals2/polynomials.html       |  4 +-
 .../toolkit/internals2/test_data.html         | 12 ++---
 .../math_toolkit/using_udt/archetypes.html    |  8 +--
 .../html/math_toolkit/using_udt/concepts.html |  4 +-
 .../html/math_toolkit/utils/fpclass.html      |  4 +-
 .../utils/next_float/float_advance.html       |  4 +-
 .../utils/next_float/float_distance.html      |  4 +-
 .../utils/next_float/float_next.html          |  4 +-
 .../utils/next_float/float_prior.html         |  4 +-
 .../utils/next_float/nextafter.html           |  6 +--
 .../math_toolkit/utils/sign_functions.html    |  4 +-
 135 files changed, 648 insertions(+), 648 deletions(-)

diff --git a/doc/sf_and_dist/distributions/inverse_gaussian.qbk b/doc/sf_and_dist/distributions/inverse_gaussian.qbk
index 92a217138..4d41eadd3 100644
--- a/doc/sf_and_dist/distributions/inverse_gaussian.qbk
+++ b/doc/sf_and_dist/distributions/inverse_gaussian.qbk
@@ -1,6 +1,6 @@
 [section:inverse_gaussian_dist Inverse Gaussian (or Inverse Normal) Distribution]
 
-``#include ``
+``#include ``
 
    namespace boost{ namespace math{ 
       
diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html
index 2ed71e5e0..633950488 100644
--- a/doc/sf_and_dist/html/index.html
+++ b/doc/sf_and_dist/html/index.html
@@ -53,7 +53,7 @@
       Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and
       Thijs van den Berg

-

+

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

@@ -502,7 +502,7 @@

- +

Last revised: February 07, 2011 at 13:23:28 GMT

Last revised: March 03, 2011 at 10:42:22 GMT


diff --git a/doc/sf_and_dist/html/index/s12.html b/doc/sf_and_dist/html/index/s12.html index 29f041e3e..7f0a80e5f 100644 --- a/doc/sf_and_dist/html/index/s12.html +++ b/doc/sf_and_dist/html/index/s12.html @@ -24,7 +24,7 @@

-Function Index

+Function Index

A B C D E F G H I K L M N P Q R S T U V Z

diff --git a/doc/sf_and_dist/html/index/s13.html b/doc/sf_and_dist/html/index/s13.html index 31f8326df..910f12145 100644 --- a/doc/sf_and_dist/html/index/s13.html +++ b/doc/sf_and_dist/html/index/s13.html @@ -24,7 +24,7 @@

-Class Index

+Class Index

B C D E F G H I L M N P R S T U W

diff --git a/doc/sf_and_dist/html/index/s14.html b/doc/sf_and_dist/html/index/s14.html index 3d49e710d..848be5a70 100644 --- a/doc/sf_and_dist/html/index/s14.html +++ b/doc/sf_and_dist/html/index/s14.html @@ -24,7 +24,7 @@

-Typedef Index

+Typedef Index

A B C D E F G H I L N O P R S T U V W

diff --git a/doc/sf_and_dist/html/index/s15.html b/doc/sf_and_dist/html/index/s15.html index 387b1acaf..584982b77 100644 --- a/doc/sf_and_dist/html/index/s15.html +++ b/doc/sf_and_dist/html/index/s15.html @@ -24,7 +24,7 @@

-Macro Index

+Macro Index

A B C E F H I L N R S T

diff --git a/doc/sf_and_dist/html/index/s16.html b/doc/sf_and_dist/html/index/s16.html index be396886a..1cc5db830 100644 --- a/doc/sf_and_dist/html/index/s16.html +++ b/doc/sf_and_dist/html/index/s16.html @@ -23,7 +23,7 @@

-Index

+Index

A B C D E F G H I K L M N O P Q R S T U V W Z

diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index b058ff96b..f54c75378 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

- + Implemention philosophy
@@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

- + Accuracy and Representation of Test Values
@@ -130,7 +130,7 @@ binary value).

- + Tolerance of Tests
@@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

- + Handling Unsuitable Arguments
@@ -224,7 +224,7 @@

- + Handling of Functions that are Not Mathematically defined
@@ -258,7 +258,7 @@

- + Median of distributions
@@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

- + Handling of Floating-Point Infinity
@@ -337,7 +337,7 @@ handling policies.

- + Scale, Shape and Location
@@ -364,7 +364,7 @@ functions, they can be added if required.

- + Notes on Implementation of Specific Functions & Distributions
@@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
- + Rational Approximations Used
@@ -419,7 +419,7 @@ to the "true" minimax solution.

- + Representation of Mathematical Constants
@@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
- + Thread safety
@@ -505,7 +505,7 @@ the right thing here at some point.

- + Sources of Test Data
@@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

- + Creating and Managing the Equations
@@ -731,7 +731,7 @@ done HTML: this needs further investigation.

- + Producing Graphs
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index cd5770f01..f5c21e0ff 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
- + Motivation

@@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

- + The Approximation
@@ -161,7 +161,7 @@

- + Computing the Coefficients
@@ -205,7 +205,7 @@ multiplied by F as the last step.

- + Choosing the Right Parameters
@@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index d34582fd8..5a7ec0663 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
- + General references
@@ -98,7 +98,7 @@ Library (version 2), Walter E. Brown

- + Calculators

@@ -120,7 +120,7 @@ Binomial Probability Distribution Calculator.

- + Other Libraries

diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index b00d2b179..5cd5cffef 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

- + The Impossibility of Zero Error
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index cb665c727..4e8ae7ab4 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

- + The Remez Method
@@ -174,7 +174,7 @@
- + Remez Step 1
@@ -205,7 +205,7 @@ to 5.6x10-4.

- + Remez Step 2
@@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

- + Iteration

@@ -250,7 +250,7 @@ remez-4

- + Rational Approximations
@@ -299,7 +299,7 @@ number of terms overall.

- + Practical Considerations
@@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

- + Remez Method Checklist
@@ -461,7 +461,7 @@
- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index 154c5e2e9..088a91ebc 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms

- + Finding the Location and Scale for Normal and similar distributions
@@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
- + find_location function
@@ -80,7 +80,7 @@ }} // namespaces
- + find_scale function
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index 3f5800825..f32fa7cca 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

- + Member Functions
@@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

- + Non-member Accessors
@@ -128,7 +128,7 @@ exception and make an error message available.

- + Accuracy

@@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

- + Implementation

@@ -327,7 +327,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index 9d27a9238..1988f82c8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

    - + Member Functions
    - + Constructor
    beta_distribution(RealType alpha, RealType beta);
    @@ -164,7 +164,7 @@
                 yellow in the graph above).
               

    - + Parameter Accessors
    @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
    - + Parameter Estimators
    @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

    - + Non-member Accessor Functions
    @@ -263,7 +263,7 @@ Mathworld.

    - + Applications

    @@ -276,7 +276,7 @@ statistical inference.

    - + Related distributions
    @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

    - + Accuracy

    @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -594,7 +594,7 @@

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index 09a4e3067..2550b4609 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

- + Member Functions
- + Construct
binomial_distribution(RealType n, RealType p);
@@ -183,7 +183,7 @@
             otherwise calls domain_error.
           

- + Accessors
RealType success_fraction() const;
@@ -199,7 +199,7 @@
             was constructed.
           

- + Lower Bound on the Success Fraction
@@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

- + Upper Bound on the Success Fraction
@@ -383,7 +383,7 @@
- + Estimating the Number of Trials Required for a Certain Number of Successes
@@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

- + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

- + Non-member Accessors
@@ -622,7 +622,7 @@
- + Examples

@@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

- + Accuracy

@@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

- + Implementation

@@ -884,7 +884,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index 06da83621..184d04398 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

    - + Member Functions
    @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

    - + Non-member Accessors
    @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

    - + Accuracy

    @@ -157,7 +157,7 @@ have very low error rates.

    - + Implementation

    @@ -273,7 +273,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index c59572402..1127c73b2 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

    - + Member Functions
    @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

    - + Non-member Accessors
    @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

    - + Examples

    @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

    - + Accuracy

    @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

    - + Implementation

    @@ -379,7 +379,7 @@ independent, normally distributed random

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index 7b7acc22f..224fd5320 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

    - + Member Functions
    @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

    - + Non-member Accessors
    @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

    - + Accuracy

    @@ -122,7 +122,7 @@ should have very low error rates.

    - + Implementation

    @@ -283,7 +283,7 @@

- + references
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index 21eaca0f6..dfb855b44 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

    - + Member Functions
    @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

    - + Non-member Accessors
    @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

    - + Accuracy

    @@ -154,7 +154,7 @@ very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index 23951ec85..73d2eae85 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

    - + Member Functions
    @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

    - + Non-member Accessors
    @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

    - + Examples

    @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

    - + Accuracy

    @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index d4b39b369..78661949c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

    - + Member Functions
    @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

    - + Accuracy

    @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index ff6755daf..975d7aa2e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

    - + Related Distributions
    @@ -206,12 +206,12 @@
- + Member Functions
- + Constructor
geometric_distribution(RealType p);
@@ -226,7 +226,7 @@
             1.
           

- + Accessors
RealType success_fraction() const; // successes / trials (0 <= p <= 1)
@@ -253,7 +253,7 @@
             Binomial Distribution for more discussion.
           

- + Lower Bound on success_fraction Parameter p
@@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

- + Upper Bound on success_fraction Parameter p
@@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

- + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
@@ -415,7 +415,7 @@ probability of observing k failures or fewer.

- + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
@@ -463,7 +463,7 @@ probability of observing more than k failures.

- + Non-member Accessors
@@ -611,7 +611,7 @@
- + Accuracy

@@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index 7279485ef..effa0140a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

- + Member Functions
@@ -131,7 +131,7 @@ from the population N.

- + Non-member Accessors
@@ -185,7 +185,7 @@
- + Accuracy

@@ -211,7 +211,7 @@ meaningless for N >= 1015.

- + Testing

@@ -223,7 +223,7 @@ this implementation and NTL::RR.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index 554f997ad..1c0232446 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

- + Member Functions
@@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

- + Non-member Accessors
@@ -255,7 +255,7 @@

- + Accuracy

@@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

- + Implementation

@@ -452,7 +452,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index a0513ebaa..7f6a0b5b2 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

    - + Member Functions
    @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

    - + Non-member Accessors
    @@ -184,7 +184,7 @@

- + Accuracy

@@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index d60272188..dee9bd9c8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -30,7 +30,7 @@

-
#include <boost/math/distributions/wald.hpp>
+
#include <boost/math/distributions/inverse_gaussian.hpp>

namespace boost{ namespace math{ 
@@ -146,7 +146,7 @@
             the __wald_distrib (where mean μ is unity) is also provided.
           

- + Member Functions
@@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

- + Non-member Accessors
@@ -201,7 +201,7 @@

- + Accuracy

@@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

- + Implementation

@@ -390,7 +390,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index 593d14842..91253579f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

    - + Member Functions
    @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

    - + Accuracy

    @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

    - + Implementation

    @@ -329,7 +329,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index 3884c7628..f8ff2ff41 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

    - + Member Functions
    @@ -98,7 +98,7 @@ Returns the scale of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

    - + Accuracy

    @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

    - + Implementation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index 143aaea19..ae6b485a2 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index 025c81be4..3855fc6e7 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

    - + Member Functions
    @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

    - + Non-member Accessors
    @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

    - + Accuracy

    @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

    - + Tests

    @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index 29d05aed6..2e07b5b31 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

    - + Member Functions
    @@ -183,7 +183,7 @@ == q.

    - + Non-member Accessors
    @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

    - + Examples

    @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

    - + Accuracy

    @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

    - + Tests

    @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index 5f0f69c52..7d4e55a22 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

    - + Member Functions
    @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

    - + Non-member Accessors
    @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

    - + Accuracy

    @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

    - + Tests

    @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index edcf8297c..cc2603ad3 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

    - + Member Functions
    @@ -111,7 +111,7 @@ which this object was constructed.

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

    - + Accuracy

    @@ -255,7 +255,7 @@ epsilon.

    - + Tests

    @@ -270,7 +270,7 @@ least 50 decimal places.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index 3f979bfa8..655d65962 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

    - + Related Distributions
    @@ -195,12 +195,12 @@
    - + Member Functions
    - + Construct
    negative_binomial_distribution(RealType r, RealType p);
    @@ -216,7 +216,7 @@
                 <= 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -237,7 +237,7 @@
                 Distribution for more discussion.
               

    - + Lower Bound on Parameter p
    @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on Parameter p
    @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -457,7 +457,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -606,7 +606,7 @@

- + Accuracy

@@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index 5835d946e..35993eac8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

- + Member Functions
@@ -109,7 +109,7 @@ be used generically).

- + Non-member Accessors
@@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

- + Accuracy

@@ -139,7 +139,7 @@ function, and as such should have very low error rates.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index 80901628a..7224a4da5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

- + Related distributions
- + Member Functions
@@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

- + Non-member Accessors
@@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

- + Accuracy

@@ -150,7 +150,7 @@ zero) see also why complements?.

- + Implementation

@@ -318,7 +318,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index adfde38b5..94676dd7f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
- + Member Functions
@@ -131,7 +131,7 @@ Returns the mean of this distribution.

- + Non-member Accessors
@@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

- + Accuracy

@@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index f14b555e6..d0b8e835d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

- + Related distributions
@@ -102,7 +102,7 @@ distribution.

- + Member Functions
@@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

- + Non-member Accessors
@@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

- + Accuracy

@@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

- + Implementation

@@ -320,7 +320,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index 129e2baaa..4a6b40530 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

    - + Member Functions
    @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

    - + Non-member Accessors
    @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

    - + Examples

    @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

    - + Accuracy

    @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index f69a19771..c85b215fd 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

    - + Member Functions
    @@ -163,7 +163,7 @@ (default+1).

    - + Non-member Accessors
    @@ -184,7 +184,7 @@ range is lower <= x <= upper.

    - + Accuracy

    @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

    - + Implementation

    @@ -378,7 +378,7 @@ Calculate and plot probability distributions

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index 58965ab4f..4e6969662 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

      - + Member Functions
      @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

      - + Non-member Accessors
      @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

      - + Accuracy

      @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

      - + Implementation

      @@ -337,7 +337,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index 4ca06d301..e4fd1440d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

      - + Related distributions
      @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

      - + Member Functions
      @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

      - + Accuracy

      @@ -170,7 +170,7 @@ as such should have very low error rates.

      - + Implementation

      @@ -337,7 +337,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index 90480a6e2..c0373c4b6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

      - + Function Index
        @@ -94,7 +94,7 @@
      - + Conceptual Index
        @@ -180,7 +180,7 @@
      - + Cumulative Distribution Function
      template <class RealType, class Policy>
      @@ -203,7 +203,7 @@
                 cdf
               

      - + Complement of the Cumulative Distribution Function
      template <class Distribution, class RealType>
      @@ -243,7 +243,7 @@
                 complement is useful and when it should be used.
               

      - + Hazard Function
      template <class RealType, class Policy>
      @@ -271,7 +271,7 @@
                 

    - + Cumulative Hazard Function
    template <class RealType, class Policy>
    @@ -298,7 +298,7 @@
               

- + mean
template<class RealType, class Policy>
@@ -313,7 +313,7 @@
           distribution).
         

- + median
template<class RealType, class Policy>
@@ -323,7 +323,7 @@
           Returns the median of the distribution dist.
         

- + mode
template<class RealType, Policy>
@@ -337,7 +337,7 @@
           if the distribution does not have a defined mode.
         

- + Probability Density Function
template <class RealType, class Policy>
@@ -365,7 +365,7 @@
           pdf
         

- + Range
template<class RealType, class Policy>
@@ -375,7 +375,7 @@
           Returns the valid range of the random variable over distribution dist.
         

- + Quantile
template <class RealType, class Policy>
@@ -405,7 +405,7 @@
           quantile
         

- + Quantile from the complement of the probability.

@@ -450,7 +450,7 @@ survival_inv

- + Standard Deviation
template <class RealType, class Policy>
@@ -464,7 +464,7 @@
           if the distribution does not have a defined standard deviation.
         

- + support
template<class RealType, class Policy>
@@ -481,7 +481,7 @@
           where the pdf is zero, and the cdf zero or unity.
         

- + Variance
template <class RealType, class Policy>
@@ -495,7 +495,7 @@
           if the distribution does not have a defined variance.
         

- + Skewness
template <class RealType, class Policy>
@@ -509,7 +509,7 @@
           if the distribution does not have a defined skewness.
         

- + Kurtosis
template <class RealType, class Policy>
@@ -551,7 +551,7 @@
           'Proper' kurtosis can have a value from zero to + infinity.
         

- + Kurtosis excess
template <class RealType, Policy>
@@ -585,7 +585,7 @@
           The kurtosis excess of a normal distribution is zero.
         

- + P and Q

@@ -595,7 +595,7 @@ returned by these functions.

- + Percent Point Function or Percentile

@@ -603,7 +603,7 @@ the Quantile.

- + Inverse CDF Function.

@@ -611,14 +611,14 @@ Quantile.

- + Inverse Survival Function.

The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

- + Probability Mass Function

@@ -631,7 +631,7 @@ applies to continuous distributions.

- + Lower Critical Value.

@@ -640,7 +640,7 @@ the Quantile.

- + Upper Critical Value.

@@ -650,7 +650,7 @@ complement of the probability.

- + Survival Function

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index 00245409b..9e423af41 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

- + Adding Additional Location and Scale Parameters
@@ -55,7 +55,7 @@ functions.

- + An "any_distribution" class
@@ -91,7 +91,7 @@ investigation.

- + Higher Level Hypothesis Tests
@@ -111,7 +111,7 @@ expected_mean.

- + Integration With Statistical Accumulators
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index 0cf91c0e8..fdfb17377 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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
- + Using Binomial distribution moments
@@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
- + Quantiles

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index 6e4f025be..1f83a6371 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

- + Confidence intervals as a function of the number of observations
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index 0bd329a40..05dc39702 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
 
- + Default arguments to distribution constructors.
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index 12a1a7d56..4bd612e30 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
- + Controlling Error Handling from find_location
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index 48ea52d47..4e964195c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

- + Using find_location and find_scale to meet dispensing and measurement specifications
@@ -193,7 +193,7 @@

- + Using Cauchy-Lorentz instead of normal distribution
@@ -305,7 +305,7 @@ of estimating these intervals.

- + Changing the scale or standard deviation
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index 696fb2537..d6acb1563 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
- + Controlling how Errors from find_scale are handled
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index 657069794..f6e0aa95c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

- + Throwing a dice
@@ -288,7 +288,7 @@ replicated in C++ if desired.

- + Surveying customers to find one with a faulty product
@@ -333,7 +333,7 @@

- + Basket Ball Shooters
@@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

- + Estimating failures
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index 0f0bfede4..0ced387bd 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

- + Traditional Tables
@@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

- + Standard deviations either side of the Mean
@@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

- + Some simple examples
- + Life of light bulbs
@@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

- + How many onions?
@@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

- + Packing beef
@@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

- + Length of bolts
diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index 230295c98..d7a6c6873 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
- + Supported C99 Functions
@@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
- + Quick Reference

diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index df3d70bf8..646685ee6 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

- + Usage Recomendations

@@ -295,7 +295,7 @@ this can be a big win.

- + Supported C99 Functions
@@ -391,7 +391,7 @@ }}}} // namespaces
- + Supported TR1 Functions
@@ -520,7 +520,7 @@ type calculation rules
.

- + Currently Unsupported C99 Functions
@@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index d09da4c67..28330687e 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
- + Supported TR1 Functions
@@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
- + Quick Reference
// [5.2.1.1] associated Laguerre polynomials:
@@ -494,7 +494,7 @@
         for the full template (header only) version of this function.
       

- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index bb82dd3bd..d2ce1d306 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
- + Building a Library (shared, dynamic .dll or static .lib)
@@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

- + Building the Examples
@@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

- + Building the Tests
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index c2daa77c8..e8bfcd42f 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
- + boost/math
@@ -73,7 +73,7 @@
- + boost/libs
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index 74a8210f4..62b2ef694 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
- + Quick Reference
@@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

- + Rationale

@@ -766,7 +766,7 @@

- + Finding More Information
@@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

- + Domain Errors

@@ -859,7 +859,7 @@ for more details.

- + Evaluation at a pole

@@ -897,7 +897,7 @@ for more details.

- + Numeric Overflow

@@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

- + Numeric Underflow

@@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

- + Denormalisation Errors

@@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

- + Evaluation Errors

@@ -1001,7 +1001,7 @@ for more details.

- + Indeterminate Result Errors

@@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

- + Rounding Errors

@@ -1068,7 +1068,7 @@ for more details.

- + Errors from typecasts

diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index 3268e82be..7c16baf02 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -28,7 +28,7 @@ New

- + Boost-1.47.0
  • @@ -36,7 +36,7 @@ #5113.
- + Boost-1.46.0
    @@ -51,7 +51,7 @@
- + Boost-1.45.0
    @@ -68,7 +68,7 @@
- + Boost-1.44.0
    @@ -82,7 +82,7 @@
- + Boost-1.41.0
  • @@ -90,7 +90,7 @@ and its inverse.
- + Boost-1.40.0
    @@ -127,7 +127,7 @@
- + Boost-1.38.0
    @@ -139,14 +139,14 @@
- + Boost-1.37.0
  • Improved accuracy and testing of the inverse hypergeometric functions.
- + Boost-1.36.0
    @@ -179,7 +179,7 @@
- + Boost-1.35.0: Post Review First Official Release
@@ -211,7 +211,7 @@
- + Milestone 4: Second Review Candidate (1st March 2007)
@@ -225,7 +225,7 @@
- + Milestone 3: First Review Candidate (31st Dec 2006)
@@ -253,7 +253,7 @@
- + Milestone 2: Released September 10th 2006
@@ -289,7 +289,7 @@
- + Milestone 1: Released March 31st 2006
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index d993685dc..247eb8c15 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

- + Statistical Distributions
@@ -56,7 +56,7 @@ tests.

- + Mathematical Special Functions
@@ -83,7 +83,7 @@ double.

- + Implementation Toolkit
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index 49635ef37..60f1dd709 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

- + Shortcuts
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index a7858edb2..7a26d6a3f 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

- + Usage Recomendations
@@ -297,7 +297,7 @@ this can be a big win.

- + Supported C99 Functions
@@ -393,7 +393,7 @@ }}}} // namespaces
- + Supported TR1 Functions
@@ -522,7 +522,7 @@ type calculation rules
.

- + Currently Unsupported C99 Functions
@@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index 915e7cc36..cf3f7eb5f 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

- + Comparison to GSL-1.13 and Cephes
@@ -344,7 +344,7 @@

- +INF [1] + +INF [1]

@@ -423,7 +423,7 @@

-

17.89[2]

+

17.89[2]

(4.248e-005s)

@@ -548,11 +548,11 @@ -

[1] +

[1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

-

[2] +

[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 @@ -563,7 +563,7 @@

- + Comparison to the R and DCDFLIB Statistical Libraries on Windows
@@ -659,7 +659,7 @@

-

67.66[1]

+

67.66[1]

(3.366e-004s)

@@ -1088,7 +1088,7 @@

-

3.60[2]

+

3.60[2]

(5.987e-007s)

@@ -1317,7 +1317,7 @@

-

43.43[3]

+

43.43[3]

(3.732e-004s)

@@ -1387,7 +1387,7 @@

-

393.90[4]

+

393.90[4]

(2.673e-002s)

@@ -1523,7 +1523,7 @@

-

1.00[5]

+

1.00[5]

(4.411e-004s)

@@ -1809,28 +1809,28 @@ -

[1] +

[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.

-

[2] +

[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 much slower, albeit with much improved precision.

-

[3] +

[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

-

[4] +

[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.

-

[5] +

[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. @@ -1839,7 +1839,7 @@


- + Comparison to the R Statistical Library on Linux
@@ -1934,7 +1934,7 @@

-

30.51[1]

+

30.51[1]

(3.616e-004s)

@@ -2363,7 +2363,7 @@

-

2.20[2]

+

2.20[2]

(3.522e-007s)

@@ -2592,7 +2592,7 @@

-

25.92[3]

+

25.92[3]

(4.407e-004s)

@@ -2662,7 +2662,7 @@

-

144.91[4]

+

144.91[4]

(3.214e-002s)

@@ -2798,7 +2798,7 @@

-

1.00[5]

+

1.00[5]

(5.916e-004s)

@@ -3084,28 +3084,28 @@ -

[1] +

[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.

-

[2] +

[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 much slower, albeit with much improved precision.

-

[3] +

[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

-

[4] +

[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.

-

[5] +

[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. diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index 0227680fc..225960941 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

- + real

@@ -89,7 +89,7 @@ = 68.1584.

- + integer_round_outwards

@@ -143,7 +143,7 @@ in each tail.

- + integer_round_inwards

@@ -202,7 +202,7 @@ in each tail.

- + integer_round_down

@@ -210,7 +210,7 @@ or a lower quantile.

- + integer_round_up

@@ -218,7 +218,7 @@ a lower quantile.

- + integer_round_nearest

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index c274df33f..4f43c3abc 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

- + Available Actions When an Error is Raised
@@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

- + throw_on_error

@@ -174,7 +174,7 @@

- + errno_on_error

@@ -289,7 +289,7 @@

- + ignore_error

@@ -402,7 +402,7 @@

- + user_error

@@ -451,7 +451,7 @@ here.

- + Kinds of Error Raised
@@ -691,7 +691,7 @@
- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index 6e9b97942..daec4737c 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index 2cb3ec405..37bef0cea 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

- + BOOST_MATH_DOMAIN_ERROR_POLICY

@@ -71,7 +71,7 @@ ignore_error or user_error.

- + BOOST_MATH_POLE_ERROR_POLICY

@@ -81,7 +81,7 @@ ignore_error or user_error.

- + BOOST_MATH_OVERFLOW_ERROR_POLICY

@@ -91,7 +91,7 @@ ignore_error or user_error.

- + BOOST_MATH_ROUNDING_ERROR_POLICY

@@ -101,7 +101,7 @@ ignore_error or user_error.

- + BOOST_MATH_EVALUATION_ERROR_POLICY

@@ -111,7 +111,7 @@ ignore_error or user_error.

- + BOOST_MATH_UNDERFLOW_ERROR_POLICY

@@ -121,7 +121,7 @@ ignore_error or user_error.

- + BOOST_MATH_DENORM_ERROR_POLICY

@@ -131,7 +131,7 @@ ignore_error or user_error.

- + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

@@ -142,7 +142,7 @@ ignore_error or user_error.

- + BOOST_MATH_DIGITS10_POLICY

@@ -153,7 +153,7 @@ recommended that you change this from the default.

- + BOOST_MATH_PROMOTE_FLOAT_POLICY

@@ -165,7 +165,7 @@ off.

- + BOOST_MATH_PROMOTE_DOUBLE_POLICY

@@ -177,7 +177,7 @@ off.

- + BOOST_MATH_DISCRETE_QUANTILE_POLICY

@@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

- + BOOST_MATH_ASSERT_UNDEFINED_POLICY

@@ -201,7 +201,7 @@ whether or not a particular property is well defined.

- + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

@@ -210,7 +210,7 @@ Defaults to 1000000.

- + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

@@ -219,7 +219,7 @@ Defaults to 200.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index 3743453b2..11a1e902c 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

- + Other Rounding Policies are Available
diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index 1ba45df95..87ee6c23b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
 
- + Description

@@ -105,7 +105,7 @@

- + Testing

@@ -114,7 +114,7 @@ (with all the special case handling removed).

- + Accuracy

@@ -489,7 +489,7 @@ were found.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index 21bb7046f..59be121c6 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

- + Ordinary Bessel Functions
@@ -103,7 +103,7 @@ and is known as either a Bessel

- + Modified Bessel Functions
@@ -167,7 +167,7 @@ respectively:

- + Spherical Bessel Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index 52d6f40d8..7e19c6672 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
 
- + Description

@@ -104,7 +104,7 @@

- + Testing

@@ -113,7 +113,7 @@ (with all the special case handling removed).

- + Accuracy

@@ -321,7 +321,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index 49d4db7e3..cf1fb5d7d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
 
- + Description

@@ -92,7 +92,7 @@ for small x:

- + Testing

@@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

- + Accuracy

@@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index 27dbf5d99..c8ec46b1d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -225,7 +225,7 @@

- + Testing

@@ -235,7 +235,7 @@ this implementation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index 08dbc9b85..14517f7fb 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -225,7 +225,7 @@

- + Testing

@@ -235,7 +235,7 @@ this implementation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index fd438441e..381034e3b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -231,7 +231,7 @@

- + Testing

@@ -241,7 +241,7 @@ this implementation.

- + Implementation

@@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

- Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



-

[1] +

[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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index 5ac3c747a..5bd13a42d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

- + Synopsis

@@ -100,7 +100,7 @@ }} // namespaces

- + Description

@@ -216,7 +216,7 @@

- + Testing

@@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

- + Accuracy

@@ -393,7 +393,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index dfb786a01..926f8c9ed 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

- + Notation

All variables are real numbers unless otherwise noted.

- + Definition

@@ -245,7 +245,7 @@

- + Duplication Theorem

@@ -256,7 +256,7 @@

- + Carlson's Formulas

@@ -273,7 +273,7 @@

- + Numerical Algorithms
@@ -287,7 +287,7 @@ integrals with satisfactory precisions.

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index e268dbc06..f1a89d832 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

- + Synopsis

@@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -78,7 +78,7 @@
           
         

- + Accuracy

@@ -202,7 +202,7 @@ slightly over the range [4,6].

- + Testing

@@ -217,7 +217,7 @@ check.

- + Implementation

@@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



-

[2] +

[2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index 055b8f54a..9d9bd11ff 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

- + Synopsis

@@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -78,7 +78,7 @@
           
         

- + Accuracy

@@ -220,7 +220,7 @@

- + Testing

@@ -235,7 +235,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index f4f20c222..15a3bf19f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

- + Accuracy

@@ -99,14 +99,14 @@ function for larger arguments.

- + Testing

The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index 89267499c..ca92117af 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

- + Accuracy

@@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

- + Testing

The spot tests for the double factorial use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index 15b167349..d0a81e666 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description
@@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

- + Accuracy

@@ -166,7 +166,7 @@ will be the same as for tgamma.

- + Testing

@@ -175,7 +175,7 @@ function handle those cases already.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index 5869b8eb0..192461109 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

- + Accuracy

@@ -79,14 +79,14 @@ function.

- + Testing

The spot tests for the falling factorials use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index b9cc71cb3..f095feeb4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

- + Accuracy

@@ -83,14 +83,14 @@ function.

- + Testing

The spot tests for the rising factorials use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index e5e74ba69..e1c1607a4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -85,7 +85,7 @@ to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index ffd6d2d3f..06adc082f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -80,7 +80,7 @@ to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index d839f146d..4c5888ced 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index b6b402de0..384971287 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

- + Accuracy

@@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index 45c352171..0b636f24f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

- + Synopsis

@@ -49,7 +49,7 @@ }}

- + Rationale and Usage
@@ -91,7 +91,7 @@ Only 3 different products were actually computed.

- + Return Type

@@ -112,7 +112,7 @@

- + Policies

@@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Error Handling
@@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
- + Acknowledgements

@@ -238,7 +238,7 @@ improving the implementation.

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index ea24ccbb9..b2a3b9b67 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

- + Accuracy

@@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index b6ed0b6dc..3abe7c99f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index 2f48d7cd8..339705334 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

- + Accuracy

@@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index 3182c6131..3b4f6f8df 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

- + Accuracy

Should have approximately 2-3 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index c9e4c89a6..85b9970eb 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

- + Accuracy

@@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index 408a33636..23e33d289 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

- + Synopsis

@@ -49,7 +49,7 @@ }} // namespaces

- + Description

@@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

Almost identical to the incomplete beta function ibeta.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index 4fc793d40..81f49db20 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

- + Synopsis

@@ -48,7 +48,7 @@ }} // namespaces

- + Description

@@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

- + Accuracy

@@ -239,7 +239,7 @@ very small.

- + Testing

@@ -248,7 +248,7 @@ at 1000-bit precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index b6c6d4363..1e686ca55 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -158,7 +158,7 @@

- + Accuracy

@@ -865,7 +865,7 @@


- + Testing

@@ -883,7 +883,7 @@ have test data that is fully independent of the code.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index 001c8b06b..44fd73edf 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

- + Description

@@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -300,7 +300,7 @@ or 1.

- + Testing

@@ -324,7 +324,7 @@

- + Implementation of ibeta_inv and ibetac_inv
@@ -492,7 +492,7 @@ rapidly converges on the true value.

- + Implementation of inverses on the a and b parameters
diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index 40b45b38c..51f979c4e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
- + Synopsis

@@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -100,7 +100,7 @@
           
         

- + Accuracy

@@ -525,7 +525,7 @@

- + Testing

@@ -540,7 +540,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index 6dd014098..65bd911f3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

- + Synopsis

@@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -98,7 +98,7 @@
           
         

- + Accuracy

@@ -108,7 +108,7 @@ error functions.

- + Testing

@@ -131,7 +131,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index b5b282170..28ceeebb9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

- + Synopsis

@@ -48,7 +48,7 @@ }} // namespaces

- + Description

@@ -77,7 +77,7 @@ T otherwise.

- + Accuracy

@@ -265,7 +265,7 @@ absolute error will remain very low.

- + Testing

@@ -275,7 +275,7 @@ see below).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index d19dfd6b0..824526556 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

- + Synopsis

@@ -49,7 +49,7 @@ }} // namespaces

- + Description

@@ -75,7 +75,7 @@ otherwise the return type is simply T1.

- + Accuracy

@@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index b50987904..92e0c1719 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

- + Description
template <class T1, class T2> 
@@ -107,7 +107,7 @@
           
         

- + Accuracy

@@ -317,7 +317,7 @@

- + Testing

@@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index df3dd1098..1a8506dcb 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -155,7 +155,7 @@

- + Accuracy

@@ -823,7 +823,7 @@

- + Testing

@@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

- + Implementation

@@ -1008,7 +1008,7 @@ by Temme (see references below).

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index ef434a140..ff46f0ebb 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -168,7 +168,7 @@ 0.

- + Accuracy

@@ -182,7 +182,7 @@ functions.

- + Testing

@@ -206,7 +206,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index 31185f65d..cbe5159fb 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description

@@ -93,7 +93,7 @@ T otherwise.

- + Accuracy

@@ -344,7 +344,7 @@

- + Testing

@@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index 18756776c..903019cc1 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description
template <class T>
@@ -119,7 +119,7 @@
           it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
         

- + Accuracy

@@ -374,7 +374,7 @@

- + Testing

@@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index 77d12cde8..78715abec 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

- + Synopsis

@@ -51,7 +51,7 @@ }} // namespaces

- + Description

@@ -131,7 +131,7 @@

- + Accuracy

@@ -248,7 +248,7 @@ is very close to a root.

- + Testing

@@ -258,7 +258,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index f8454409b..0cd261366 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

- + Synopsis

@@ -62,7 +62,7 @@ }} // namespaces

- + Description

@@ -205,7 +205,7 @@

- + Accuracy

@@ -422,7 +422,7 @@ is very close to a root.

- + Testing

@@ -432,7 +432,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index 4b2636b9f..623ed90da 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

- + Synopsis

@@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -295,7 +295,7 @@
 
 
 
- + Accuracy

@@ -676,7 +676,7 @@ given here.

- + Testing

@@ -686,7 +686,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index c554cc683..b339d721a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

- + Synopsis

@@ -60,7 +60,7 @@ }} // namespaces

- + Description

@@ -150,7 +150,7 @@

- + Accuracy

@@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

- + Testing

@@ -281,7 +281,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index 95cbcfa0a..2b879a091 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

- + Synopsis

@@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -80,7 +80,7 @@
           
         

- + Accuracy

@@ -229,7 +229,7 @@

- + Testing

@@ -244,7 +244,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index 850c37fc1..280629c9f 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -27,7 +27,7 @@ History and What's New

- + Boost-1.47.0
  • @@ -35,7 +35,7 @@ #5113.
- + Boost-1.46.0
    @@ -50,7 +50,7 @@
- + Boost-1.45.0
    @@ -67,7 +67,7 @@
- + Boost-1.44.0
    @@ -81,7 +81,7 @@
- + Boost-1.41.0
  • @@ -89,7 +89,7 @@ and its inverse.
- + Boost-1.40.0
    @@ -126,7 +126,7 @@
- + Boost-1.38.0
    @@ -138,14 +138,14 @@
- + Boost-1.37.0
  • Improved accuracy and testing of the inverse hypergeometric functions.
- + Boost-1.36.0
    @@ -178,7 +178,7 @@
- + Boost-1.35.0: Post Review First Official Release
@@ -210,7 +210,7 @@
- + Milestone 4: Second Review Candidate (1st March 2007)
@@ -224,7 +224,7 @@
- + Milestone 3: First Review Candidate (31st Dec 2006)
@@ -252,7 +252,7 @@
- + Milestone 2: Released September 10th 2006
@@ -288,7 +288,7 @@
- + Milestone 1: Released March 31st 2006
diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index eb8ccde81..ca72d92b3 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

- + tgamma
  • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
- + Incomplete Beta
  • @@ -56,7 +56,7 @@ b (medium priority).
- + Inverse Gamma
  • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
- + Polynomials
  • @@ -74,7 +74,7 @@ not (Low Priority).
- + Elliptic Integrals
    @@ -127,7 +127,7 @@
- + Inverse Hyperbolic Functions
@@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
- + Statistical distributions
@@ -146,7 +146,7 @@ for very large degrees of freedom?
- + Feature Requests

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index 3cefeceaf..c244a82b3 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

- + Synopsis

@@ -78,7 +78,7 @@ }}} // namespaces

- + Description

@@ -178,7 +178,7 @@ a continued fraction for convergence.

- + Implementation

@@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index 96e2f6b28..727c1a62b 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

- + Synopsis

@@ -59,7 +59,7 @@ }}} // namespaces

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index cd200492d..4187eece5 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

- + synopsis

@@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

- + Description

@@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index 12a045842..a0e4c4ff4 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

- + synopsis

@@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

- + Description

@@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index ac6b54358..8b34ce8a4 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

- + Synopsis

@@ -62,7 +62,7 @@ }}} // namespaces

- + Description

@@ -206,7 +206,7 @@

- + Newton Raphson Method
@@ -224,7 +224,7 @@ iteration.

- + Halley's Method
@@ -246,7 +246,7 @@ iteration.

- + Schroeder's Method
@@ -270,7 +270,7 @@ iteration.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index 3deb9ef91..1e9779eaa 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

- + Synopsis

@@ -144,7 +144,7 @@ }}} // namespaces

- + Description

@@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

- + Bisection
template <class F, class T, class Tol>
@@ -280,7 +280,7 @@
           tol was satisfied.
         

- + Bracket and solve
@@ -388,7 +388,7 @@ was satisfied.

- + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
@@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index b3052236e..a159c750a 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

- + Synopsis

@@ -70,7 +70,7 @@ }}} // namespaces

- + Description

@@ -127,7 +127,7 @@ summation in this way.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index 47f4c1166..533ab8375 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

- + Synopsis

@@ -38,7 +38,7 @@

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index 5f90f2216..bb9973089 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

- + Synopsis

@@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

- + Description
template <class T>
@@ -157,7 +157,7 @@
           is mainly a debugging/development aid (and a good place for a breakpoint).
         

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index bff2e06fd..0a6f1b5ab 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

- + Synopsis

@@ -103,7 +103,7 @@ }}} // namespaces

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index 566438b7f..097b48d38 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

- + Synopsis
namespace boost{ namespace math{ namespace tools{
@@ -147,7 +147,7 @@
 }}} // namespaces
 
- + Description

@@ -177,7 +177,7 @@

- + Example 1: Output Data for Graph Plotting
@@ -211,7 +211,7 @@

- + Example 2: Creating Test Data
@@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

- + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
@@ -482,7 +482,7 @@ of a and z.

- + reference

diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index 67a34522c..062924cf8 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@

- + Real concept

@@ -84,7 +84,7 @@ declaration.

- + Testing the real concept

@@ -130,7 +130,7 @@ double, also tests real_concept.

- + Distribution Concept

@@ -166,7 +166,7 @@ class for distribution types.

- + Testing the distribution concept

diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index 8d9c75331..20bc738a7 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

- + Basic Arithmetic Requirements
@@ -1035,7 +1035,7 @@
- + Standard Library Support Requirements
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index a2c2b61b4..a9ddf2fce 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -28,7 +28,7 @@ Infinities and NaN's
- + Synopsis
#define FP_ZERO        /* implementation specific value */
@@ -58,7 +58,7 @@
         to use these functions.
       

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index fa178cfa7..7f25b1383 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

- + Synopsis

@@ -50,7 +50,7 @@ }} // namespaces

- + Description - float_advance
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index 4f27bdd4e..337338a00 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

- + Synopsis

@@ -52,7 +52,7 @@ }} // namespaces

- + Description - float_distance
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index 27fce3fbb..8f40dc80d 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - float_next
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index c99842ada..8e9a13f43 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - float_prior
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index 82fd914a1..4474c3fcf 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - nextafter
@@ -76,7 +76,7 @@ returns an overflow_error.

- + Examples - nextafter
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index 4bea734e6..3173c1fa8 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -28,7 +28,7 @@ Functions
- + Synopsis

@@ -52,7 +52,7 @@ }} // namespaces

- + Description
template<class T> 

From 13bd3e54ccf7b0380bfc3bd935193ec05868b5b1 Mon Sep 17 00:00:00 2001
From: John Maddock 
Date: Thu, 3 Mar 2011 11:09:23 +0000
Subject: [PATCH 14/82] MSVC warning suppression.

[SVN r69509]
---
 include/boost/math/common_factor_rt.hpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/include/boost/math/common_factor_rt.hpp b/include/boost/math/common_factor_rt.hpp
index 1a70bffbc..4582a96c7 100644
--- a/include/boost/math/common_factor_rt.hpp
+++ b/include/boost/math/common_factor_rt.hpp
@@ -22,6 +22,10 @@
 #include            // for CHAR_MIN
 #include 
 
+#ifdef BOOST_MSVC
+#pragma warning(push)
+#pragma warning(disable:4127 4244)  // Conditional expression is constant
+#endif
 
 namespace boost
 {
@@ -519,5 +523,8 @@ lcm
 }  // namespace math
 }  // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
 
 #endif  // BOOST_MATH_COMMON_FACTOR_RT_HPP

From 5ba171ee12168a0032e41ca5c202edabe1467f14 Mon Sep 17 00:00:00 2001
From: John Maddock 
Date: Thu, 3 Mar 2011 11:23:57 +0000
Subject: [PATCH 15/82] Fix PDF build from within boost-root/doc/pdf.

[SVN r69512]
---
 doc/sf_and_dist/Jamfile.v2 | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/doc/sf_and_dist/Jamfile.v2 b/doc/sf_and_dist/Jamfile.v2
index 930ee159c..3e168fc16 100644
--- a/doc/sf_and_dist/Jamfile.v2
+++ b/doc/sf_and_dist/Jamfile.v2
@@ -6,6 +6,7 @@
 using quickbook ;
 
 path-constant images_location : html ;
+path-constant here : . ;
 
 import modules ;
 
@@ -16,8 +17,8 @@ if --enable-index in  [ modules.peek : ARGV ]
    project : requirements
         on pdf:off
         html:on
-        index.idx
-        ../../../.. 
+        $(here)/index.idx
+        $(here)/../../../.. 
         enable_index 
         pdf:index.on.type=1 ;
 }
@@ -90,3 +91,4 @@ install pdf-install : standalone : . PDF math.pdf
 
 
 
+

From 490499415a5c517a3dc9359b011ae43a4a2596bb Mon Sep 17 00:00:00 2001
From: John Maddock 
Date: Sun, 6 Mar 2011 17:15:58 +0000
Subject: [PATCH 16/82] Correct version number for last set of fixes,
 regenerate docs.

[SVN r69608]
---
 doc/sf_and_dist/html/index.html               |  4 +-
 doc/sf_and_dist/html/index/s12.html           |  2 +-
 doc/sf_and_dist/html/index/s13.html           |  2 +-
 doc/sf_and_dist/html/index/s14.html           |  2 +-
 doc/sf_and_dist/html/index/s15.html           |  2 +-
 doc/sf_and_dist/html/index/s16.html           |  2 +-
 .../backgrounders/implementation.html         | 30 +++++------
 .../math_toolkit/backgrounders/lanczos.html   | 10 ++--
 .../html/math_toolkit/backgrounders/refs.html |  6 +--
 .../backgrounders/relative_error.html         |  2 +-
 .../math_toolkit/backgrounders/remez.html     | 16 +++---
 .../dist/dist_ref/dist_algorithms.html        |  6 +--
 .../dist/dist_ref/dists/bernoulli_dist.html   | 10 ++--
 .../dist/dist_ref/dists/beta_dist.html        | 20 +++----
 .../dist/dist_ref/dists/binomial_dist.html    | 24 ++++-----
 .../dist/dist_ref/dists/cauchy_dist.html      | 10 ++--
 .../dist/dist_ref/dists/chi_squared_dist.html | 12 ++---
 .../dist/dist_ref/dists/exp_dist.html         | 10 ++--
 .../dist/dist_ref/dists/extreme_dist.html     |  8 +--
 .../dist/dist_ref/dists/f_dist.html           | 10 ++--
 .../dist/dist_ref/dists/gamma_dist.html       |  8 +--
 .../dist/dist_ref/dists/geometric_dist.html   | 22 ++++----
 .../dist_ref/dists/hypergeometric_dist.html   | 10 ++--
 .../dists/inverse_chi_squared_dist.html       | 10 ++--
 .../dist_ref/dists/inverse_gamma_dist.html    |  8 +--
 .../dist_ref/dists/inverse_gaussian_dist.html | 10 ++--
 .../dist/dist_ref/dists/laplace_dist.html     | 10 ++--
 .../dist/dist_ref/dists/logistic_dist.html    |  8 +--
 .../dist/dist_ref/dists/lognormal_dist.html   |  8 +--
 .../dist/dist_ref/dists/nc_beta_dist.html     | 10 ++--
 .../dist_ref/dists/nc_chi_squared_dist.html   | 12 ++---
 .../dist/dist_ref/dists/nc_f_dist.html        | 10 ++--
 .../dist/dist_ref/dists/nc_t_dist.html        | 10 ++--
 .../dists/negative_binomial_dist.html         | 22 ++++----
 .../dist/dist_ref/dists/normal_dist.html      |  8 +--
 .../dist/dist_ref/dists/pareto.html           | 12 ++---
 .../dist/dist_ref/dists/poisson_dist.html     |  8 +--
 .../dist/dist_ref/dists/rayleigh.html         | 12 ++---
 .../dist/dist_ref/dists/students_t_dist.html  | 10 ++--
 .../dist/dist_ref/dists/triangular_dist.html  | 10 ++--
 .../dist/dist_ref/dists/uniform_dist.html     | 10 ++--
 .../dist/dist_ref/dists/weibull_dist.html     | 12 ++---
 .../html/math_toolkit/dist/dist_ref/nmp.html  | 54 +++++++++----------
 .../html/math_toolkit/dist/future.html        |  8 +--
 .../weg/binom_eg/binomial_quiz_example.html   |  4 +-
 .../stat_tut/weg/cs_eg/chi_sq_intervals.html  |  2 +-
 .../dist/stat_tut/weg/dist_construct_eg.html  |  2 +-
 .../weg/find_eg/find_location_eg.html         |  2 +-
 .../weg/find_eg/find_mean_and_sd_eg.html      |  6 +--
 .../stat_tut/weg/find_eg/find_scale_eg.html   |  2 +-
 .../dist/stat_tut/weg/geometric_eg.html       |  8 +--
 .../weg/normal_example/normal_misc.html       | 14 ++---
 .../html/math_toolkit/extern_c/c99.html       |  4 +-
 .../html/math_toolkit/extern_c/tr1.html       | 10 ++--
 .../html/math_toolkit/extern_c/tr1_ref.html   |  6 +--
 .../math_toolkit/main_overview/building.html  |  6 +--
 .../main_overview/directories.html            |  4 +-
 .../main_overview/error_handling.html         | 24 ++++-----
 .../math_toolkit/main_overview/history1.html  | 32 +++++------
 .../math_toolkit/main_overview/intro.html     |  6 +--
 .../main_overview/navigation.html             |  2 +-
 .../html/math_toolkit/main_overview/tr1.html  | 10 ++--
 .../html/math_toolkit/perf/comparisons.html   | 54 +++++++++----------
 .../policy/pol_ref/discrete_quant_ref.html    | 12 ++---
 .../pol_ref/error_handling_policies.html      | 14 ++---
 .../policy/pol_ref/internal_promotion.html    |  2 +-
 .../policy/pol_ref/policy_defaults.html       | 32 +++++------
 .../pol_tutorial/understand_dis_quant.html    |  2 +-
 .../math_toolkit/special/bessel/bessel.html   | 10 ++--
 .../special/bessel/bessel_over.html           |  6 +--
 .../math_toolkit/special/bessel/mbessel.html  | 10 ++--
 .../special/bessel/sph_bessel.html            | 10 ++--
 .../math_toolkit/special/ellint/ellint_1.html | 10 ++--
 .../math_toolkit/special/ellint/ellint_2.html | 10 ++--
 .../math_toolkit/special/ellint/ellint_3.html | 14 ++---
 .../special/ellint/ellint_carlson.html        | 10 ++--
 .../special/ellint/ellint_intro.html          | 12 ++---
 .../math_toolkit/special/expint/expint_i.html | 14 ++---
 .../math_toolkit/special/expint/expint_n.html | 10 ++--
 .../special/factorials/sf_binomial.html       |  6 +--
 .../factorials/sf_double_factorial.html       |  6 +--
 .../special/factorials/sf_factorial.html      | 10 ++--
 .../factorials/sf_falling_factorial.html      |  6 +--
 .../factorials/sf_rising_factorial.html       |  6 +--
 .../math_toolkit/special/inv_hyper/acosh.html |  6 +--
 .../math_toolkit/special/inv_hyper/asinh.html |  6 +--
 .../math_toolkit/special/inv_hyper/atanh.html |  6 +--
 .../math_toolkit/special/powers/cbrt.html     |  4 +-
 .../math_toolkit/special/powers/ct_pow.html   | 14 ++---
 .../math_toolkit/special/powers/expm1.html    |  4 +-
 .../math_toolkit/special/powers/hypot.html    |  2 +-
 .../math_toolkit/special/powers/log1p.html    |  4 +-
 .../math_toolkit/special/powers/powm1.html    |  4 +-
 .../math_toolkit/special/powers/sqrt1pm1.html |  4 +-
 .../special/sf_beta/beta_derivative.html      |  8 +--
 .../special/sf_beta/beta_function.html        | 10 ++--
 .../special/sf_beta/ibeta_function.html       | 10 ++--
 .../special/sf_beta/ibeta_inv_function.html   | 10 ++--
 .../special/sf_erf/error_function.html        | 10 ++--
 .../special/sf_erf/error_inv.html             | 10 ++--
 .../special/sf_gamma/digamma.html             | 10 ++--
 .../special/sf_gamma/gamma_derivatives.html   |  8 +--
 .../special/sf_gamma/gamma_ratios.html        |  8 +--
 .../math_toolkit/special/sf_gamma/igamma.html | 12 ++---
 .../special/sf_gamma/igamma_inv.html          | 10 ++--
 .../math_toolkit/special/sf_gamma/lgamma.html | 10 ++--
 .../math_toolkit/special/sf_gamma/tgamma.html | 10 ++--
 .../math_toolkit/special/sf_poly/hermite.html | 10 ++--
 .../special/sf_poly/laguerre.html             | 10 ++--
 .../special/sf_poly/legendre.html             | 10 ++--
 .../special/sf_poly/sph_harm.html             | 10 ++--
 .../html/math_toolkit/special/zetas/zeta.html | 10 ++--
 .../html/math_toolkit/status/history1.html    | 32 +++++------
 .../html/math_toolkit/status/issues.html      | 16 +++---
 .../math_toolkit/toolkit/internals1/cf.html   |  8 +--
 .../toolkit/internals1/constants.html         |  4 +-
 .../toolkit/internals1/minima.html            |  6 +--
 .../toolkit/internals1/rational.html          |  6 +--
 .../toolkit/internals1/roots.html             | 12 ++---
 .../toolkit/internals1/roots2.html            | 12 ++---
 .../toolkit/internals1/series_evaluation.html |  6 +--
 .../toolkit/internals1/tuples.html            |  4 +-
 .../toolkit/internals2/error_test.html        |  6 +--
 .../toolkit/internals2/polynomials.html       |  4 +-
 .../toolkit/internals2/test_data.html         | 12 ++---
 .../math_toolkit/using_udt/archetypes.html    |  8 +--
 .../html/math_toolkit/using_udt/concepts.html |  4 +-
 .../html/math_toolkit/utils/fpclass.html      |  4 +-
 .../utils/next_float/float_advance.html       |  4 +-
 .../utils/next_float/float_distance.html      |  4 +-
 .../utils/next_float/float_next.html          |  4 +-
 .../utils/next_float/float_prior.html         |  4 +-
 .../utils/next_float/nextafter.html           |  6 +--
 .../math_toolkit/utils/sign_functions.html    |  4 +-
 doc/sf_and_dist/roadmap.qbk                   |  2 +-
 135 files changed, 651 insertions(+), 651 deletions(-)

diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html
index 633950488..a0eb0cbfd 100644
--- a/doc/sf_and_dist/html/index.html
+++ b/doc/sf_and_dist/html/index.html
@@ -53,7 +53,7 @@
       Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and
       Thijs van den Berg

-

+

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

@@ -502,7 +502,7 @@

- +

Last revised: March 03, 2011 at 10:42:22 GMT

Last revised: March 06, 2011 at 17:12:23 GMT


diff --git a/doc/sf_and_dist/html/index/s12.html b/doc/sf_and_dist/html/index/s12.html index 7f0a80e5f..ad72556d6 100644 --- a/doc/sf_and_dist/html/index/s12.html +++ b/doc/sf_and_dist/html/index/s12.html @@ -24,7 +24,7 @@

-Function Index

+Function Index

A B C D E F G H I K L M N P Q R S T U V Z

diff --git a/doc/sf_and_dist/html/index/s13.html b/doc/sf_and_dist/html/index/s13.html index 910f12145..cdeb1d02d 100644 --- a/doc/sf_and_dist/html/index/s13.html +++ b/doc/sf_and_dist/html/index/s13.html @@ -24,7 +24,7 @@

-Class Index

+Class Index

B C D E F G H I L M N P R S T U W

diff --git a/doc/sf_and_dist/html/index/s14.html b/doc/sf_and_dist/html/index/s14.html index 848be5a70..638097b0e 100644 --- a/doc/sf_and_dist/html/index/s14.html +++ b/doc/sf_and_dist/html/index/s14.html @@ -24,7 +24,7 @@

-Typedef Index

+Typedef Index

A B C D E F G H I L N O P R S T U V W

diff --git a/doc/sf_and_dist/html/index/s15.html b/doc/sf_and_dist/html/index/s15.html index 584982b77..4a485776b 100644 --- a/doc/sf_and_dist/html/index/s15.html +++ b/doc/sf_and_dist/html/index/s15.html @@ -24,7 +24,7 @@

-Macro Index

+Macro Index

A B C E F H I L N R S T

diff --git a/doc/sf_and_dist/html/index/s16.html b/doc/sf_and_dist/html/index/s16.html index 1cc5db830..05d9ed7e1 100644 --- a/doc/sf_and_dist/html/index/s16.html +++ b/doc/sf_and_dist/html/index/s16.html @@ -23,7 +23,7 @@

-Index

+Index

A B C D E F G H I K L M N O P Q R S T U V W Z

diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index f54c75378..ff28236b8 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

- + Implemention philosophy
@@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

- + Accuracy and Representation of Test Values
@@ -130,7 +130,7 @@ binary value).

- + Tolerance of Tests
@@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

- + Handling Unsuitable Arguments
@@ -224,7 +224,7 @@

- + Handling of Functions that are Not Mathematically defined
@@ -258,7 +258,7 @@

- + Median of distributions
@@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

- + Handling of Floating-Point Infinity
@@ -337,7 +337,7 @@ handling policies.

- + Scale, Shape and Location
@@ -364,7 +364,7 @@ functions, they can be added if required.

- + Notes on Implementation of Specific Functions & Distributions
@@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
- + Rational Approximations Used
@@ -419,7 +419,7 @@ to the "true" minimax solution.

- + Representation of Mathematical Constants
@@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
- + Thread safety
@@ -505,7 +505,7 @@ the right thing here at some point.

- + Sources of Test Data
@@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

- + Creating and Managing the Equations
@@ -731,7 +731,7 @@ done HTML: this needs further investigation.

- + Producing Graphs
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index f5c21e0ff..1de4d4aeb 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
- + Motivation

@@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

- + The Approximation
@@ -161,7 +161,7 @@

- + Computing the Coefficients
@@ -205,7 +205,7 @@ multiplied by F as the last step.

- + Choosing the Right Parameters
@@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index 5a7ec0663..e5fb7fb8f 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
- + General references
@@ -98,7 +98,7 @@ Library (version 2), Walter E. Brown

- + Calculators

@@ -120,7 +120,7 @@ Binomial Probability Distribution Calculator.

- + Other Libraries

diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index 5cd5cffef..c9c9e4f3b 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

- + The Impossibility of Zero Error
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index 4e8ae7ab4..add1116c7 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

- + The Remez Method
@@ -174,7 +174,7 @@
- + Remez Step 1
@@ -205,7 +205,7 @@ to 5.6x10-4.

- + Remez Step 2
@@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

- + Iteration

@@ -250,7 +250,7 @@ remez-4

- + Rational Approximations
@@ -299,7 +299,7 @@ number of terms overall.

- + Practical Considerations
@@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

- + Remez Method Checklist
@@ -461,7 +461,7 @@
- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index 088a91ebc..7ed17fac5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms

- + Finding the Location and Scale for Normal and similar distributions
@@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
- + find_location function
@@ -80,7 +80,7 @@ }} // namespaces
- + find_scale function
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index f32fa7cca..3ba99ff65 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

- + Member Functions
@@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

- + Non-member Accessors
@@ -128,7 +128,7 @@ exception and make an error message available.

- + Accuracy

@@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

- + Implementation

@@ -327,7 +327,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index 1988f82c8..bca53dfbd 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

    - + Member Functions
    - + Constructor
    beta_distribution(RealType alpha, RealType beta);
    @@ -164,7 +164,7 @@
                 yellow in the graph above).
               

    - + Parameter Accessors
    @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
    - + Parameter Estimators
    @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

    - + Non-member Accessor Functions
    @@ -263,7 +263,7 @@ Mathworld.

    - + Applications

    @@ -276,7 +276,7 @@ statistical inference.

    - + Related distributions
    @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

    - + Accuracy

    @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -594,7 +594,7 @@

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index 2550b4609..d311f28dd 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

- + Member Functions
- + Construct
binomial_distribution(RealType n, RealType p);
@@ -183,7 +183,7 @@
             otherwise calls domain_error.
           

- + Accessors
RealType success_fraction() const;
@@ -199,7 +199,7 @@
             was constructed.
           

- + Lower Bound on the Success Fraction
@@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

- + Upper Bound on the Success Fraction
@@ -383,7 +383,7 @@
- + Estimating the Number of Trials Required for a Certain Number of Successes
@@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

- + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

- + Non-member Accessors
@@ -622,7 +622,7 @@
- + Examples

@@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

- + Accuracy

@@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

- + Implementation

@@ -884,7 +884,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index 184d04398..9063a9c64 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

    - + Member Functions
    @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

    - + Non-member Accessors
    @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

    - + Accuracy

    @@ -157,7 +157,7 @@ have very low error rates.

    - + Implementation

    @@ -273,7 +273,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index 1127c73b2..602a27e1c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

    - + Member Functions
    @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

    - + Non-member Accessors
    @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

    - + Examples

    @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

    - + Accuracy

    @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

    - + Implementation

    @@ -379,7 +379,7 @@ independent, normally distributed random

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index 224fd5320..a53d21648 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

    - + Member Functions
    @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

    - + Non-member Accessors
    @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

    - + Accuracy

    @@ -122,7 +122,7 @@ should have very low error rates.

    - + Implementation

    @@ -283,7 +283,7 @@

- + references
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index dfb855b44..6f6b32e0b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

    - + Member Functions
    @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

    - + Non-member Accessors
    @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

    - + Accuracy

    @@ -154,7 +154,7 @@ very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index 73d2eae85..690d2cd24 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

    - + Member Functions
    @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

    - + Non-member Accessors
    @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

    - + Examples

    @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

    - + Accuracy

    @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index 78661949c..5e771680f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

    - + Member Functions
    @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

    - + Accuracy

    @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index 975d7aa2e..d1adeaea9 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

    - + Related Distributions
    @@ -206,12 +206,12 @@
- + Member Functions
- + Constructor
geometric_distribution(RealType p);
@@ -226,7 +226,7 @@
             1.
           

- + Accessors
RealType success_fraction() const; // successes / trials (0 <= p <= 1)
@@ -253,7 +253,7 @@
             Binomial Distribution for more discussion.
           

- + Lower Bound on success_fraction Parameter p
@@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

- + Upper Bound on success_fraction Parameter p
@@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

- + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
@@ -415,7 +415,7 @@ probability of observing k failures or fewer.

- + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
@@ -463,7 +463,7 @@ probability of observing more than k failures.

- + Non-member Accessors
@@ -611,7 +611,7 @@
- + Accuracy

@@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index effa0140a..57ecf80b7 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

- + Member Functions
@@ -131,7 +131,7 @@ from the population N.

- + Non-member Accessors
@@ -185,7 +185,7 @@
- + Accuracy

@@ -211,7 +211,7 @@ meaningless for N >= 1015.

- + Testing

@@ -223,7 +223,7 @@ this implementation and NTL::RR.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index 1c0232446..1a1ae8f73 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

- + Member Functions
@@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

- + Non-member Accessors
@@ -255,7 +255,7 @@

- + Accuracy

@@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

- + Implementation

@@ -452,7 +452,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index 7f6a0b5b2..8568362a8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

    - + Member Functions
    @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

    - + Non-member Accessors
    @@ -184,7 +184,7 @@

- + Accuracy

@@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index dee9bd9c8..d54b8ba89 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -146,7 +146,7 @@ the __wald_distrib (where mean μ is unity) is also provided.

- + Member Functions
@@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

- + Non-member Accessors
@@ -201,7 +201,7 @@

- + Accuracy

@@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

- + Implementation

@@ -390,7 +390,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index 91253579f..9a4962b45 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

    - + Member Functions
    @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

    - + Accuracy

    @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

    - + Implementation

    @@ -329,7 +329,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index f8ff2ff41..a5bef45dc 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

    - + Member Functions
    @@ -98,7 +98,7 @@ Returns the scale of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

    - + Accuracy

    @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

    - + Implementation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index ae6b485a2..1ef589446 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index 3855fc6e7..84f60d1ba 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

    - + Member Functions
    @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

    - + Non-member Accessors
    @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

    - + Accuracy

    @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

    - + Tests

    @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index 2e07b5b31..12b714777 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

    - + Member Functions
    @@ -183,7 +183,7 @@ == q.

    - + Non-member Accessors
    @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

    - + Examples

    @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

    - + Accuracy

    @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

    - + Tests

    @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index 7d4e55a22..cfca66a85 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

    - + Member Functions
    @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

    - + Non-member Accessors
    @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

    - + Accuracy

    @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

    - + Tests

    @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index cc2603ad3..4f0da70a6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

    - + Member Functions
    @@ -111,7 +111,7 @@ which this object was constructed.

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

    - + Accuracy

    @@ -255,7 +255,7 @@ epsilon.

    - + Tests

    @@ -270,7 +270,7 @@ least 50 decimal places.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index 655d65962..a2a928935 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

    - + Related Distributions
    @@ -195,12 +195,12 @@
    - + Member Functions
    - + Construct
    negative_binomial_distribution(RealType r, RealType p);
    @@ -216,7 +216,7 @@
                 <= 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -237,7 +237,7 @@
                 Distribution for more discussion.
               

    - + Lower Bound on Parameter p
    @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on Parameter p
    @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -457,7 +457,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -606,7 +606,7 @@

- + Accuracy

@@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index 35993eac8..55d940a49 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

- + Member Functions
@@ -109,7 +109,7 @@ be used generically).

- + Non-member Accessors
@@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

- + Accuracy

@@ -139,7 +139,7 @@ function, and as such should have very low error rates.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index 7224a4da5..5a424fd15 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

- + Related distributions
- + Member Functions
@@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

- + Non-member Accessors
@@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

- + Accuracy

@@ -150,7 +150,7 @@ zero) see also why complements?.

- + Implementation

@@ -318,7 +318,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index 94676dd7f..421694704 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
- + Member Functions
@@ -131,7 +131,7 @@ Returns the mean of this distribution.

- + Non-member Accessors
@@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

- + Accuracy

@@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index d0b8e835d..4ef8ecd85 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

- + Related distributions
@@ -102,7 +102,7 @@ distribution.

- + Member Functions
@@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

- + Non-member Accessors
@@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

- + Accuracy

@@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

- + Implementation

@@ -320,7 +320,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index 4a6b40530..84385adbd 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

    - + Member Functions
    @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

    - + Non-member Accessors
    @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

    - + Examples

    @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

    - + Accuracy

    @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index c85b215fd..b43e2eadf 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

    - + Member Functions
    @@ -163,7 +163,7 @@ (default+1).

    - + Non-member Accessors
    @@ -184,7 +184,7 @@ range is lower <= x <= upper.

    - + Accuracy

    @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

    - + Implementation

    @@ -378,7 +378,7 @@ Calculate and plot probability distributions

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index 4e6969662..308261f4f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

      - + Member Functions
      @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

      - + Non-member Accessors
      @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

      - + Accuracy

      @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

      - + Implementation

      @@ -337,7 +337,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index e4fd1440d..7cebb705a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

      - + Related distributions
      @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

      - + Member Functions
      @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

      - + Accuracy

      @@ -170,7 +170,7 @@ as such should have very low error rates.

      - + Implementation

      @@ -337,7 +337,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index c0373c4b6..07f874bb6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

      - + Function Index
        @@ -94,7 +94,7 @@
      - + Conceptual Index
        @@ -180,7 +180,7 @@
      - + Cumulative Distribution Function
      template <class RealType, class Policy>
      @@ -203,7 +203,7 @@
                 cdf
               

      - + Complement of the Cumulative Distribution Function
      template <class Distribution, class RealType>
      @@ -243,7 +243,7 @@
                 complement is useful and when it should be used.
               

      - + Hazard Function
      template <class RealType, class Policy>
      @@ -271,7 +271,7 @@
                 

    - + Cumulative Hazard Function
    template <class RealType, class Policy>
    @@ -298,7 +298,7 @@
               

- + mean
template<class RealType, class Policy>
@@ -313,7 +313,7 @@
           distribution).
         

- + median
template<class RealType, class Policy>
@@ -323,7 +323,7 @@
           Returns the median of the distribution dist.
         

- + mode
template<class RealType, Policy>
@@ -337,7 +337,7 @@
           if the distribution does not have a defined mode.
         

- + Probability Density Function
template <class RealType, class Policy>
@@ -365,7 +365,7 @@
           pdf
         

- + Range
template<class RealType, class Policy>
@@ -375,7 +375,7 @@
           Returns the valid range of the random variable over distribution dist.
         

- + Quantile
template <class RealType, class Policy>
@@ -405,7 +405,7 @@
           quantile
         

- + Quantile from the complement of the probability.

@@ -450,7 +450,7 @@ survival_inv

- + Standard Deviation
template <class RealType, class Policy>
@@ -464,7 +464,7 @@
           if the distribution does not have a defined standard deviation.
         

- + support
template<class RealType, class Policy>
@@ -481,7 +481,7 @@
           where the pdf is zero, and the cdf zero or unity.
         

- + Variance
template <class RealType, class Policy>
@@ -495,7 +495,7 @@
           if the distribution does not have a defined variance.
         

- + Skewness
template <class RealType, class Policy>
@@ -509,7 +509,7 @@
           if the distribution does not have a defined skewness.
         

- + Kurtosis
template <class RealType, class Policy>
@@ -551,7 +551,7 @@
           'Proper' kurtosis can have a value from zero to + infinity.
         

- + Kurtosis excess
template <class RealType, Policy>
@@ -585,7 +585,7 @@
           The kurtosis excess of a normal distribution is zero.
         

- + P and Q

@@ -595,7 +595,7 @@ returned by these functions.

- + Percent Point Function or Percentile

@@ -603,7 +603,7 @@ the Quantile.

- + Inverse CDF Function.

@@ -611,14 +611,14 @@ Quantile.

- + Inverse Survival Function.

The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

- + Probability Mass Function

@@ -631,7 +631,7 @@ applies to continuous distributions.

- + Lower Critical Value.

@@ -640,7 +640,7 @@ the Quantile.

- + Upper Critical Value.

@@ -650,7 +650,7 @@ complement of the probability.

- + Survival Function

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index 9e423af41..813f45b85 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

- + Adding Additional Location and Scale Parameters
@@ -55,7 +55,7 @@ functions.

- + An "any_distribution" class
@@ -91,7 +91,7 @@ investigation.

- + Higher Level Hypothesis Tests
@@ -111,7 +111,7 @@ expected_mean.

- + Integration With Statistical Accumulators
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index fdfb17377..e471215c1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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
- + Using Binomial distribution moments
@@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
- + Quantiles

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index 1f83a6371..e0a599b60 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

- + Confidence intervals as a function of the number of observations
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index 05dc39702..c949d8c84 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
 
- + Default arguments to distribution constructors.
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index 4bd612e30..a25d6de8e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
- + Controlling Error Handling from find_location
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index 4e964195c..da765b4f5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

- + Using find_location and find_scale to meet dispensing and measurement specifications
@@ -193,7 +193,7 @@

- + Using Cauchy-Lorentz instead of normal distribution
@@ -305,7 +305,7 @@ of estimating these intervals.

- + Changing the scale or standard deviation
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index d6acb1563..be38ef824 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
- + Controlling how Errors from find_scale are handled
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index f6e0aa95c..580f05cda 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

- + Throwing a dice
@@ -288,7 +288,7 @@ replicated in C++ if desired.

- + Surveying customers to find one with a faulty product
@@ -333,7 +333,7 @@

- + Basket Ball Shooters
@@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

- + Estimating failures
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index 0ced387bd..c777923e4 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

- + Traditional Tables
@@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

- + Standard deviations either side of the Mean
@@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

- + Some simple examples
- + Life of light bulbs
@@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

- + How many onions?
@@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

- + Packing beef
@@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

- + Length of bolts
diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index d7a6c6873..313c34ecc 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
- + Supported C99 Functions
@@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
- + Quick Reference

diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index 646685ee6..0ee0ca724 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

- + Usage Recomendations

@@ -295,7 +295,7 @@ this can be a big win.

- + Supported C99 Functions
@@ -391,7 +391,7 @@ }}}} // namespaces
- + Supported TR1 Functions
@@ -520,7 +520,7 @@ type calculation rules
.

- + Currently Unsupported C99 Functions
@@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index 28330687e..138f6c7af 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
- + Supported TR1 Functions
@@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
- + Quick Reference
// [5.2.1.1] associated Laguerre polynomials:
@@ -494,7 +494,7 @@
         for the full template (header only) version of this function.
       

- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index d2ce1d306..61a4972ed 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
- + Building a Library (shared, dynamic .dll or static .lib)
@@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

- + Building the Examples
@@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

- + Building the Tests
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index e8bfcd42f..34f14ddcb 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
- + boost/math
@@ -73,7 +73,7 @@
- + boost/libs
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index 62b2ef694..a5a16f14d 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
- + Quick Reference
@@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

- + Rationale

@@ -766,7 +766,7 @@

- + Finding More Information
@@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

- + Domain Errors

@@ -859,7 +859,7 @@ for more details.

- + Evaluation at a pole

@@ -897,7 +897,7 @@ for more details.

- + Numeric Overflow

@@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

- + Numeric Underflow

@@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

- + Denormalisation Errors

@@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

- + Evaluation Errors

@@ -1001,7 +1001,7 @@ for more details.

- + Indeterminate Result Errors

@@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

- + Rounding Errors

@@ -1068,7 +1068,7 @@ for more details.

- + Errors from typecasts

diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index 7c16baf02..cd67d0bf1 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -27,16 +27,16 @@ History and What's New -

- - Boost-1.47.0 +
+ + Boost-1.46.1
- + Boost-1.46.0
    @@ -51,7 +51,7 @@
- + Boost-1.45.0
    @@ -68,7 +68,7 @@
- + Boost-1.44.0
    @@ -82,7 +82,7 @@
- + Boost-1.41.0
  • @@ -90,7 +90,7 @@ and its inverse.
- + Boost-1.40.0
    @@ -127,7 +127,7 @@
- + Boost-1.38.0
    @@ -139,14 +139,14 @@
- + Boost-1.37.0
  • Improved accuracy and testing of the inverse hypergeometric functions.
- + Boost-1.36.0
    @@ -179,7 +179,7 @@
- + Boost-1.35.0: Post Review First Official Release
@@ -211,7 +211,7 @@
- + Milestone 4: Second Review Candidate (1st March 2007)
@@ -225,7 +225,7 @@
- + Milestone 3: First Review Candidate (31st Dec 2006)
@@ -253,7 +253,7 @@
- + Milestone 2: Released September 10th 2006
@@ -289,7 +289,7 @@
- + Milestone 1: Released March 31st 2006
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index 247eb8c15..0f9bfae4e 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

- + Statistical Distributions
@@ -56,7 +56,7 @@ tests.

- + Mathematical Special Functions
@@ -83,7 +83,7 @@ double.

- + Implementation Toolkit
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index 60f1dd709..64a2c2793 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

- + Shortcuts
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index 7a26d6a3f..0776987d2 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

- + Usage Recomendations
@@ -297,7 +297,7 @@ this can be a big win.

- + Supported C99 Functions
@@ -393,7 +393,7 @@ }}}} // namespaces
- + Supported TR1 Functions
@@ -522,7 +522,7 @@ type calculation rules
.

- + Currently Unsupported C99 Functions
@@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index cf3f7eb5f..cd0d7ac50 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

- + Comparison to GSL-1.13 and Cephes
@@ -344,7 +344,7 @@

- +INF [1] + +INF [1]

@@ -423,7 +423,7 @@

-

17.89[2]

+

17.89[2]

(4.248e-005s)

@@ -548,11 +548,11 @@ -

[1] +

[1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

-

[2] +

[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 @@ -563,7 +563,7 @@

- + Comparison to the R and DCDFLIB Statistical Libraries on Windows
@@ -659,7 +659,7 @@

-

67.66[1]

+

67.66[1]

(3.366e-004s)

@@ -1088,7 +1088,7 @@

-

3.60[2]

+

3.60[2]

(5.987e-007s)

@@ -1317,7 +1317,7 @@

-

43.43[3]

+

43.43[3]

(3.732e-004s)

@@ -1387,7 +1387,7 @@

-

393.90[4]

+

393.90[4]

(2.673e-002s)

@@ -1523,7 +1523,7 @@

-

1.00[5]

+

1.00[5]

(4.411e-004s)

@@ -1809,28 +1809,28 @@ -

[1] +

[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.

-

[2] +

[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 much slower, albeit with much improved precision.

-

[3] +

[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

-

[4] +

[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.

-

[5] +

[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. @@ -1839,7 +1839,7 @@


- + Comparison to the R Statistical Library on Linux
@@ -1934,7 +1934,7 @@

-

30.51[1]

+

30.51[1]

(3.616e-004s)

@@ -2363,7 +2363,7 @@

-

2.20[2]

+

2.20[2]

(3.522e-007s)

@@ -2592,7 +2592,7 @@

-

25.92[3]

+

25.92[3]

(4.407e-004s)

@@ -2662,7 +2662,7 @@

-

144.91[4]

+

144.91[4]

(3.214e-002s)

@@ -2798,7 +2798,7 @@

-

1.00[5]

+

1.00[5]

(5.916e-004s)

@@ -3084,28 +3084,28 @@ -

[1] +

[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.

-

[2] +

[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 much slower, albeit with much improved precision.

-

[3] +

[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

-

[4] +

[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.

-

[5] +

[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. diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index 225960941..e20b27437 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

- + real

@@ -89,7 +89,7 @@ = 68.1584.

- + integer_round_outwards

@@ -143,7 +143,7 @@ in each tail.

- + integer_round_inwards

@@ -202,7 +202,7 @@ in each tail.

- + integer_round_down

@@ -210,7 +210,7 @@ or a lower quantile.

- + integer_round_up

@@ -218,7 +218,7 @@ a lower quantile.

- + integer_round_nearest

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index 4f43c3abc..be03df14b 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

- + Available Actions When an Error is Raised
@@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

- + throw_on_error

@@ -174,7 +174,7 @@

- + errno_on_error

@@ -289,7 +289,7 @@

- + ignore_error

@@ -402,7 +402,7 @@

- + user_error

@@ -451,7 +451,7 @@ here.

- + Kinds of Error Raised
@@ -691,7 +691,7 @@
- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index daec4737c..3bbbd017f 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index 37bef0cea..0fda57b75 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

- + BOOST_MATH_DOMAIN_ERROR_POLICY

@@ -71,7 +71,7 @@ ignore_error or user_error.

- + BOOST_MATH_POLE_ERROR_POLICY

@@ -81,7 +81,7 @@ ignore_error or user_error.

- + BOOST_MATH_OVERFLOW_ERROR_POLICY

@@ -91,7 +91,7 @@ ignore_error or user_error.

- + BOOST_MATH_ROUNDING_ERROR_POLICY

@@ -101,7 +101,7 @@ ignore_error or user_error.

- + BOOST_MATH_EVALUATION_ERROR_POLICY

@@ -111,7 +111,7 @@ ignore_error or user_error.

- + BOOST_MATH_UNDERFLOW_ERROR_POLICY

@@ -121,7 +121,7 @@ ignore_error or user_error.

- + BOOST_MATH_DENORM_ERROR_POLICY

@@ -131,7 +131,7 @@ ignore_error or user_error.

- + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

@@ -142,7 +142,7 @@ ignore_error or user_error.

- + BOOST_MATH_DIGITS10_POLICY

@@ -153,7 +153,7 @@ recommended that you change this from the default.

- + BOOST_MATH_PROMOTE_FLOAT_POLICY

@@ -165,7 +165,7 @@ off.

- + BOOST_MATH_PROMOTE_DOUBLE_POLICY

@@ -177,7 +177,7 @@ off.

- + BOOST_MATH_DISCRETE_QUANTILE_POLICY

@@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

- + BOOST_MATH_ASSERT_UNDEFINED_POLICY

@@ -201,7 +201,7 @@ whether or not a particular property is well defined.

- + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

@@ -210,7 +210,7 @@ Defaults to 1000000.

- + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

@@ -219,7 +219,7 @@ Defaults to 200.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index 11a1e902c..7ef327c69 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

- + Other Rounding Policies are Available
diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index 87ee6c23b..db4a55ea9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
 
- + Description

@@ -105,7 +105,7 @@

- + Testing

@@ -114,7 +114,7 @@ (with all the special case handling removed).

- + Accuracy

@@ -489,7 +489,7 @@ were found.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index 59be121c6..ae3ad8ab3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

- + Ordinary Bessel Functions
@@ -103,7 +103,7 @@ and is known as either a Bessel

- + Modified Bessel Functions
@@ -167,7 +167,7 @@ respectively:

- + Spherical Bessel Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index 7e19c6672..acc6a1563 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
 
- + Description

@@ -104,7 +104,7 @@

- + Testing

@@ -113,7 +113,7 @@ (with all the special case handling removed).

- + Accuracy

@@ -321,7 +321,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index cf1fb5d7d..eb4def6b4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

- + Synopsis
template <class T1, class T2>
@@ -44,7 +44,7 @@
 calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
 
- + Description

@@ -92,7 +92,7 @@ for small x:

- + Testing

@@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

- + Accuracy

@@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index c8ec46b1d..d67720d63 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -225,7 +225,7 @@

- + Testing

@@ -235,7 +235,7 @@ this implementation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index 14517f7fb..5022962bd 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -225,7 +225,7 @@

- + Testing

@@ -235,7 +235,7 @@ this implementation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index 381034e3b..4191200bf 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

- + Synopsis

@@ -55,7 +55,7 @@ }} // namespaces

- + Description

@@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -231,7 +231,7 @@

- + Testing

@@ -241,7 +241,7 @@ this implementation.

- + Implementation

@@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

- Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



-

[1] +

[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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index 5bd13a42d..b76e2cf0c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

- + Synopsis

@@ -100,7 +100,7 @@ }} // namespaces

- + Description

@@ -216,7 +216,7 @@

- + Testing

@@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

- + Accuracy

@@ -393,7 +393,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index 926f8c9ed..6a7961846 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

- + Notation

All variables are real numbers unless otherwise noted.

- + Definition

@@ -245,7 +245,7 @@

- + Duplication Theorem

@@ -256,7 +256,7 @@

- + Carlson's Formulas

@@ -273,7 +273,7 @@

- + Numerical Algorithms
@@ -287,7 +287,7 @@ integrals with satisfactory precisions.

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index f1a89d832..1755c3912 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

- + Synopsis

@@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -78,7 +78,7 @@
           
         

- + Accuracy

@@ -202,7 +202,7 @@ slightly over the range [4,6].

- + Testing

@@ -217,7 +217,7 @@ check.

- + Implementation

@@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



-

[2] +

[2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index 9d9bd11ff..9db4c0be9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

- + Synopsis

@@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -78,7 +78,7 @@
           
         

- + Accuracy

@@ -220,7 +220,7 @@

- + Testing

@@ -235,7 +235,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index 15a3bf19f..d29540ab2 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

- + Accuracy

@@ -99,14 +99,14 @@ function for larger arguments.

- + Testing

The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index ca92117af..fdecd8bc5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

- + Accuracy

@@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

- + Testing

The spot tests for the double factorial use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index d0a81e666..1db536471 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description
@@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

- + Accuracy

@@ -166,7 +166,7 @@ will be the same as for tgamma.

- + Testing

@@ -175,7 +175,7 @@ function handle those cases already.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index 192461109..1ca34d460 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

- + Accuracy

@@ -79,14 +79,14 @@ function.

- + Testing

The spot tests for the falling factorials use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index f095feeb4..99432831c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

- + Accuracy

@@ -83,14 +83,14 @@ function.

- + Testing

The spot tests for the rising factorials use data generated by functions.wolfram.com.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index e1c1607a4..dc7e88962 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -85,7 +85,7 @@ to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index 06adc082f..cc7d3c65b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -80,7 +80,7 @@ to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index 4c5888ced..89ac27369 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

- + Accuracy

Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

- + Testing

@@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index 384971287..f640e5a89 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

- + Accuracy

@@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index 0b636f24f..6511be984 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

- + Synopsis

@@ -49,7 +49,7 @@ }}

- + Rationale and Usage
@@ -91,7 +91,7 @@ Only 3 different products were actually computed.

- + Return Type

@@ -112,7 +112,7 @@

- + Policies

@@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Error Handling
@@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
- + Acknowledgements

@@ -238,7 +238,7 @@ improving the implementation.

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index b2a3b9b67..cbf8c4d00 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

- + Accuracy

@@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index 3abe7c99f..3079f0f16 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index 339705334..c6c077804 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

- + Accuracy

@@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index 3b4f6f8df..868723772 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

- + Accuracy

Should have approximately 2-3 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index 85b9970eb..486921988 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

- + Accuracy

@@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

- + Testing

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index 23e33d289..90c834759 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

- + Synopsis

@@ -49,7 +49,7 @@ }} // namespaces

- + Description

@@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

Almost identical to the incomplete beta function ibeta.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index 81f49db20..761da33e3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

- + Synopsis

@@ -48,7 +48,7 @@ }} // namespaces

- + Description

@@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

- + Accuracy

@@ -239,7 +239,7 @@ very small.

- + Testing

@@ -248,7 +248,7 @@ at 1000-bit precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index 1e686ca55..8a1afda78 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -158,7 +158,7 @@

- + Accuracy

@@ -865,7 +865,7 @@


- + Testing

@@ -883,7 +883,7 @@ have test data that is fully independent of the code.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index 44fd73edf..aeb1e106a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

- + Description

@@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Accuracy

@@ -300,7 +300,7 @@ or 1.

- + Testing

@@ -324,7 +324,7 @@

- + Implementation of ibeta_inv and ibetac_inv
@@ -492,7 +492,7 @@ rapidly converges on the true value.

- + Implementation of inverses on the a and b parameters
diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index 51f979c4e..8e7bfd99f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
- + Synopsis

@@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -100,7 +100,7 @@
           
         

- + Accuracy

@@ -525,7 +525,7 @@

- + Testing

@@ -540,7 +540,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index 65bd911f3..edb79bfce 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

- + Synopsis

@@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -98,7 +98,7 @@
           
         

- + Accuracy

@@ -108,7 +108,7 @@ error functions.

- + Testing

@@ -131,7 +131,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index 28ceeebb9..1151bc84b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

- + Synopsis

@@ -48,7 +48,7 @@ }} // namespaces

- + Description

@@ -77,7 +77,7 @@ T otherwise.

- + Accuracy

@@ -265,7 +265,7 @@ absolute error will remain very low.

- + Testing

@@ -275,7 +275,7 @@ see below).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index 824526556..8b7c524b9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

- + Synopsis

@@ -49,7 +49,7 @@ }} // namespaces

- + Description

@@ -75,7 +75,7 @@ otherwise the return type is simply T1.

- + Accuracy

@@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index 92e0c1719..68c72ef0f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

- + Description
template <class T1, class T2> 
@@ -107,7 +107,7 @@
           
         

- + Accuracy

@@ -317,7 +317,7 @@

- + Testing

@@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index 1a8506dcb..6d1290024 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -155,7 +155,7 @@

- + Accuracy

@@ -823,7 +823,7 @@

- + Testing

@@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

- + Implementation

@@ -1008,7 +1008,7 @@ by Temme (see references below).

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index ff46f0ebb..4faf99c64 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
- + Synopsis

@@ -67,7 +67,7 @@ }} // namespaces

- + Description

@@ -168,7 +168,7 @@ 0.

- + Accuracy

@@ -182,7 +182,7 @@ functions.

- + Testing

@@ -206,7 +206,7 @@

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index cbe5159fb..ee91bb5a5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description

@@ -93,7 +93,7 @@ T otherwise.

- + Accuracy

@@ -344,7 +344,7 @@

- + Testing

@@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index 903019cc1..08a525596 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

- + Synopsis

@@ -54,7 +54,7 @@ }} // namespaces

- + Description
template <class T>
@@ -119,7 +119,7 @@
           it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
         

- + Accuracy

@@ -374,7 +374,7 @@

- + Testing

@@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index 78715abec..f85aa6510 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

- + Synopsis

@@ -51,7 +51,7 @@ }} // namespaces

- + Description

@@ -131,7 +131,7 @@

- + Accuracy

@@ -248,7 +248,7 @@ is very close to a root.

- + Testing

@@ -258,7 +258,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index 0cd261366..818e64fe7 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

- + Synopsis

@@ -62,7 +62,7 @@ }} // namespaces

- + Description

@@ -205,7 +205,7 @@

- + Accuracy

@@ -422,7 +422,7 @@ is very close to a root.

- + Testing

@@ -432,7 +432,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index 623ed90da..06bdc9f84 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

- + Synopsis

@@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -295,7 +295,7 @@
 
 
 
- + Accuracy

@@ -676,7 +676,7 @@ given here.

- + Testing

@@ -686,7 +686,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index b339d721a..b690e382c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

- + Synopsis

@@ -60,7 +60,7 @@ }} // namespaces

- + Description

@@ -150,7 +150,7 @@

- + Accuracy

@@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

- + Testing

@@ -281,7 +281,7 @@ precision.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index 2b879a091..945376c17 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

- + Synopsis

@@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

- + Description
template <class T>
@@ -80,7 +80,7 @@
           
         

- + Accuracy

@@ -229,7 +229,7 @@

- + Testing

@@ -244,7 +244,7 @@ check.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index 280629c9f..6a1defcbe 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -26,16 +26,16 @@

-
- - Boost-1.47.0 +
+ + Boost-1.46.1
- + Boost-1.46.0
    @@ -50,7 +50,7 @@
- + Boost-1.45.0
    @@ -67,7 +67,7 @@
- + Boost-1.44.0
    @@ -81,7 +81,7 @@
- + Boost-1.41.0
  • @@ -89,7 +89,7 @@ and its inverse.
- + Boost-1.40.0
    @@ -126,7 +126,7 @@
- + Boost-1.38.0
    @@ -138,14 +138,14 @@
- + Boost-1.37.0
  • Improved accuracy and testing of the inverse hypergeometric functions.
- + Boost-1.36.0
    @@ -178,7 +178,7 @@
- + Boost-1.35.0: Post Review First Official Release
@@ -210,7 +210,7 @@
- + Milestone 4: Second Review Candidate (1st March 2007)
@@ -224,7 +224,7 @@
- + Milestone 3: First Review Candidate (31st Dec 2006)
@@ -252,7 +252,7 @@
- + Milestone 2: Released September 10th 2006
@@ -288,7 +288,7 @@
- + Milestone 1: Released March 31st 2006
diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index ca72d92b3..abb5a23ec 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

- + tgamma
  • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
- + Incomplete Beta
  • @@ -56,7 +56,7 @@ b (medium priority).
- + Inverse Gamma
  • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
- + Polynomials
  • @@ -74,7 +74,7 @@ not (Low Priority).
- + Elliptic Integrals
    @@ -127,7 +127,7 @@
- + Inverse Hyperbolic Functions
@@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
- + Statistical distributions
@@ -146,7 +146,7 @@ for very large degrees of freedom?
- + Feature Requests

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index c244a82b3..e198abad0 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

- + Synopsis

@@ -78,7 +78,7 @@ }}} // namespaces

- + Description

@@ -178,7 +178,7 @@ a continued fraction for convergence.

- + Implementation

@@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

- + Examples

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index 727c1a62b..1f3afbb53 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

- + Synopsis

@@ -59,7 +59,7 @@ }}} // namespaces

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index 4187eece5..dfb953e50 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

- + synopsis

@@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

- + Description

@@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index a0e4c4ff4..e458a2ac5 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

- + synopsis

@@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

- + Description

@@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index 8b34ce8a4..54faa242b 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

- + Synopsis

@@ -62,7 +62,7 @@ }}} // namespaces

- + Description

@@ -206,7 +206,7 @@

- + Newton Raphson Method
@@ -224,7 +224,7 @@ iteration.

- + Halley's Method
@@ -246,7 +246,7 @@ iteration.

- + Schroeder's Method
@@ -270,7 +270,7 @@ iteration.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index 1e9779eaa..c87376b51 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

- + Synopsis

@@ -144,7 +144,7 @@ }}} // namespaces

- + Description

@@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

- + Bisection
template <class F, class T, class Tol>
@@ -280,7 +280,7 @@
           tol was satisfied.
         

- + Bracket and solve
@@ -388,7 +388,7 @@ was satisfied.

- + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
@@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index a159c750a..25c5d2519 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

- + Synopsis

@@ -70,7 +70,7 @@ }}} // namespaces

- + Description

@@ -127,7 +127,7 @@ summation in this way.

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index 533ab8375..b89070010 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

- + Synopsis

@@ -38,7 +38,7 @@

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index bb9973089..32f45bd60 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

- + Synopsis

@@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

- + Description
template <class T>
@@ -157,7 +157,7 @@
           is mainly a debugging/development aid (and a good place for a breakpoint).
         

- + Example

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index 0a6f1b5ab..e3fbda1d9 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

- + Synopsis

@@ -103,7 +103,7 @@ }}} // namespaces

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index 097b48d38..6bc4107e3 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

- + Synopsis
namespace boost{ namespace math{ namespace tools{
@@ -147,7 +147,7 @@
 }}} // namespaces
 
- + Description

@@ -177,7 +177,7 @@

- + Example 1: Output Data for Graph Plotting
@@ -211,7 +211,7 @@

- + Example 2: Creating Test Data
@@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

- + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
@@ -482,7 +482,7 @@ of a and z.

- + reference

diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index 062924cf8..e0ff0dd4f 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@

- + Real concept

@@ -84,7 +84,7 @@ declaration.

- + Testing the real concept

@@ -130,7 +130,7 @@ double, also tests real_concept.

- + Distribution Concept

@@ -166,7 +166,7 @@ class for distribution types.

- + Testing the distribution concept

diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index 20bc738a7..0e42658d6 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

- + Basic Arithmetic Requirements
@@ -1035,7 +1035,7 @@
- + Standard Library Support Requirements
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index a9ddf2fce..58e0b36af 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -28,7 +28,7 @@ Infinities and NaN's
- + Synopsis
#define FP_ZERO        /* implementation specific value */
@@ -58,7 +58,7 @@
         to use these functions.
       

- + Description

diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index 7f25b1383..27a79e0d9 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

- + Synopsis

@@ -50,7 +50,7 @@ }} // namespaces

- + Description - float_advance
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index 337338a00..f377023ee 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

- + Synopsis

@@ -52,7 +52,7 @@ }} // namespaces

- + Description - float_distance
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index 8f40dc80d..ad847db51 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - float_next
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index 8e9a13f43..9adf6b1cd 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - float_prior
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index 4474c3fcf..f803e8e67 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
- + Synopsis

@@ -46,7 +46,7 @@ }} // namespaces

- + Description - nextafter
@@ -76,7 +76,7 @@ returns an overflow_error.

- + Examples - nextafter
diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index 3173c1fa8..42e002878 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -28,7 +28,7 @@ Functions
- + Synopsis

@@ -52,7 +52,7 @@ }} // namespaces

- + Description
template<class T> 
diff --git a/doc/sf_and_dist/roadmap.qbk b/doc/sf_and_dist/roadmap.qbk
index d67fb490d..e97589ac3 100644
--- a/doc/sf_and_dist/roadmap.qbk
+++ b/doc/sf_and_dist/roadmap.qbk
@@ -1,6 +1,6 @@
 [template history[]
 
-[h4 Boost-1.47.0]
+[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].
 

From e571aa93dce0bab3c26f2a945a8b3035b9da6186 Mon Sep 17 00:00:00 2001
From: Daniel James 
Date: Sat, 19 Mar 2011 00:32:14 +0000
Subject: [PATCH 17/82] Fix a couple of paths in the maths docs.

[SVN r70172]
---
 doc/sf_and_dist/distributions/geometric_example.qbk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/sf_and_dist/distributions/geometric_example.qbk b/doc/sf_and_dist/distributions/geometric_example.qbk
index 1db1b0954..c529c1490 100644
--- a/doc/sf_and_dist/distributions/geometric_example.qbk
+++ b/doc/sf_and_dist/distributions/geometric_example.qbk
@@ -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.]
 

From 4b3cdb252d954e764a2960cbf43d0d73ce6551d9 Mon Sep 17 00:00:00 2001
From: John Maddock 
Date: Tue, 22 Mar 2011 18:14:00 +0000
Subject: [PATCH 18/82] Don't include fenv.h when BOOST_NO_FENV_H is set. Fixes
 #5356.

[SVN r70392]
---
 include/boost/math/tools/config.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/boost/math/tools/config.hpp b/include/boost/math/tools/config.hpp
index e2429133f..140733205 100644
--- a/include/boost/math/tools/config.hpp
+++ b/include/boost/math/tools/config.hpp
@@ -255,7 +255,7 @@ inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d)
 } // namespace tools
 }} // namespace boost namespace math
 
-#if (defined(__linux__) && !defined(__UCLIBC__)) || defined(__QNX__) || defined(__IBMCPP__)
+#if ((defined(__linux__) && !defined(__UCLIBC__)) || defined(__QNX__) || defined(__IBMCPP__)) && !defined(BOOST_NO_FENV_H)
 
    #include 
 

From bac00ef969504e7e52ed922abb6d859e5fc64606 Mon Sep 17 00:00:00 2001
From: John Maddock 
Date: Sat, 26 Mar 2011 12:04:02 +0000
Subject: [PATCH 19/82] Cast arguments to quaternion/octonion constructors so
 they still work when there's no implicit conversion available. Fixes #5369.

[SVN r70569]
---
 include/boost/math/octonion.hpp   | 4 ++--
 include/boost/math/quaternion.hpp | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/boost/math/octonion.hpp b/include/boost/math/octonion.hpp
index c9c05dd85..ce1b66f1d 100644
--- a/include/boost/math/octonion.hpp
+++ b/include/boost/math/octonion.hpp
@@ -4713,11 +4713,11 @@ namespace boost
             }
             else if    (n == 0)
             {
-                return(octonion(1));
+                return(octonion(static_cast(1)));
             }
             else    /* n < 0 */
             {
-                return(pow(octonion(1)/o,-n));
+                return(pow(octonion(static_cast(1))/o,-n));
             }
         }
         
diff --git a/include/boost/math/quaternion.hpp b/include/boost/math/quaternion.hpp
index bbccce1b6..bbe767d22 100644
--- a/include/boost/math/quaternion.hpp
+++ b/include/boost/math/quaternion.hpp
@@ -1887,11 +1887,11 @@ namespace boost
             }
             else if    (n == 0)
             {
-                return(quaternion(1));
+                return(quaternion(static_cast(1)));
             }
             else    /* n < 0 */
             {
-                return(pow(quaternion(1)/q,-n));
+                return(pow(quaternion(static_cast(1))/q,-n));
             }
         }
         

From c2faf71f7d590ff119f2ba3df3a5669967aea71f Mon Sep 17 00:00:00 2001
From: John Maddock 
Date: Tue, 29 Mar 2011 11:17:58 +0000
Subject: [PATCH 20/82] Fix value returned for atanh(1). Fixes #5385.

[SVN r70692]
---
 include/boost/math/special_functions/atanh.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/boost/math/special_functions/atanh.hpp b/include/boost/math/special_functions/atanh.hpp
index 5932af899..d447e2057 100644
--- a/include/boost/math/special_functions/atanh.hpp
+++ b/include/boost/math/special_functions/atanh.hpp
@@ -64,7 +64,7 @@ namespace boost
             else if(x > 1 - tools::epsilon())
             {
                // Infinity:
-               return -policies::raise_overflow_error(function, 0, pol);
+               return policies::raise_overflow_error(function, 0, pol);
             }
             else if(x > 1)
             {

From e379afb51ab4388a885f22dc2090470d079648b9 Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 13:37:21 +0000
Subject: [PATCH 21/82] First nonfinite example nonfinite_signaling_NaN.cpp.

[SVN r71271]
---
 example/nonfinite_signaling_NaN.cpp | 174 ++++++++++++++++++++++++++++
 1 file changed, 174 insertions(+)
 create mode 100644 example/nonfinite_signaling_NaN.cpp

diff --git a/example/nonfinite_signaling_NaN.cpp b/example/nonfinite_signaling_NaN.cpp
new file mode 100644
index 000000000..416352d10
--- /dev/null
+++ b/example/nonfinite_signaling_NaN.cpp
@@ -0,0 +1,174 @@
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// Copyright (c) 2006 Johan Rade
+// Copyright (c) 2011 Paul A. Bristow
+
+/*!
+\file
+\brief Tests of nonfinite signaling NaN loopback.
+
+\detail  nonfinite signaling NaN 
+test outputs using nonfinite facets
+(output and input) and reads back in, and checks if loopback OK.
+
+Not expected to work on all platforms (if any).  But shows that on MSVC,
+this legacy locale can ensure a consistent quiet NaN input from representations
+"1.#QNAN", "1.#SNAN" and "1.#IND"
+
+*/
+
+#ifdef _MSC_VER
+#   pragma warning(disable : 4702)
+#endif
+
+#include 
+using boost::math::nonfinite_num_get;
+using boost::math::nonfinite_num_put;
+
+#include 
+using std::cout;
+using std::endl;
+
+#include 
+using std::locale;
+
+#include 
+using std::string;
+
+#include 
+  using std::stringstream;
+  using std::istringstream;
+
+#include 
+using std::numeric_limits;
+
+int main()
+{
+  locale default_locale; // Current global locale.
+  // Try to use the default locale first.
+  // On MSVC this doesn't work.
+
+  { // Try Quiet NaN
+    stringstream ss; // Both input and output.
+    ss.imbue(default_locale); // Redundant, of course.
+    string infs; 
+    if(numeric_limits::has_quiet_NaN)
+    {  // Make sure quiet NaN is specialised for type double.
+      double qnan = numeric_limits::quiet_NaN();
+      ss << qnan; // Output quiet_NaN.
+      infs = ss.str();  // 
+    }
+    else
+    { // Need to provide a suitable string for quiet NaN.
+     infs =  "1.#QNAN"; 
+      ss << infs;
+    }
+ 	  double r;
+	  ss >> r; // Read back in.
+
+    cout << "quiet_NaN output was " << infs << endl; // "1.#QNAN"
+    cout << "quiet_NaN input was " << r << endl; // "1"
+  }
+
+  { // Try Signaling NaN
+    stringstream ss; // Both input and output.
+    ss.imbue(default_locale); // Redundant, of course.
+    string infs; 
+    if(numeric_limits::has_signaling_NaN)
+    {  // Make sure signaling NaN is specialised for type double.
+      double qnan = numeric_limits::signaling_NaN();
+      ss << qnan; // Output signaling_NaN.
+      infs = ss.str();  // 
+    }
+    else
+    { // Need to provide a suitable string for signaling NaN.
+     infs =  "1.#SNAN"; 
+      ss << infs;
+    }
+ 	  double r;
+	  ss >> r; // Read back in.
+
+    cout << "signaling_NaN output was " << infs << endl; // "1.#QNAN" (or "1.#SNAN"?)
+    cout << "signaling_NaN input was " << r << endl; // "1"
+  }
+
+  // Create legacy_locale and store the nonfinite_num_get facet (with legacy flag) in it.
+  locale legacy_locale(default_locale, new nonfinite_num_get(boost::math::legacy));
+  // Note that the legacy flag has no effect on the nonfinite_num_put output facet.
+
+  cout << "Use legacy locale." << endl;
+  
+  { // Try infinity.
+    stringstream ss; // Both input and output.
+    ss.imbue(legacy_locale);
+    string infs; 
+    if(numeric_limits::has_infinity)
+    {  // Make sure infinity is specialised for type double.
+      double inf = numeric_limits::infinity();
+      ss << inf; // Output infinity.
+      infs = ss.str();  // 
+    }
+    else
+    { // Need to provide a suitable string for infinity.
+     infs =  "1.#INF"; 
+      ss << infs;
+    }
+ 	  double r;
+	  ss >> r; // Read back in.
+
+    cout << "infinity output was " << infs << endl; // "1.#INF"
+    cout << "infinity input was " << r << endl; // "1.#INF"
+  }
+
+  { // Try input of "1.#SNAN".
+	  //double inf = numeric_limits::signaling_NaN(); // Assigns "1.#QNAN" on MSVC.
+    // So must use explicit string "1.#SNAN" instead.
+    stringstream ss; // Both input and output.
+    ss.imbue(legacy_locale);
+    string s = "1.#SNAN";
+
+	  ss << s; // Write out.
+	  double r;
+  
+    ss >> r; // Read back in.
+
+    cout << "SNAN output was " << s << endl; // "1.#SNAN"
+    cout << "SNAN input was " << r << endl;  // "1.#QNAN"
+  }
+
+  { // Try input of "1.#IND" .
+    stringstream ss; // Both input and output.
+    ss.imbue(legacy_locale);
+    string s = "1.#IND";
+	  ss << s; // Write out.
+	  double r;
+	  ss >> r; // Read back in.
+
+    cout << "IND output was " << s << endl; // "1.#IND"
+    cout << "IND input was " << r << endl;  // "1.#QNAN"
+  }
+
+} // int main()
+
+/*
+
+Output:
+  nonfinite_signaling_NaN.vcxproj -> J:\Cpp\fp_facet\fp_facet\Debug\nonfinite_signaling_NaN.exe
+
+  quiet_NaN output was 1.#QNAN
+  quiet_NaN input was 1
+  signaling_NaN output was 1.#QNAN
+  signaling_NaN input was 1
+  Use legacy locale.
+  infinity output was 1.#INF
+  infinity input was 1.#INF
+  SNAN output was 1.#SNAN
+  SNAN input was 1.#QNAN
+  IND output was 1.#IND
+  IND input was 1.#QNAN
+
+
+*/
+

From 887827b154060fa79d746350c27b153b454c420c Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 13:52:44 +0000
Subject: [PATCH 22/82] Added credits for nonfinite facets.

[SVN r71273]
---
 doc/sf_and_dist/credits.qbk | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/doc/sf_and_dist/credits.qbk b/doc/sf_and_dist/credits.qbk
index 6398b5942..8e4b753fa 100644
--- a/doc/sf_and_dist/credits.qbk
+++ b/doc/sf_and_dist/credits.qbk
@@ -22,8 +22,20 @@ Google Summer of Code project 2006.
 
 Bruno Lalande submitted the "compile time power of a runtime base" code.
 
-Johan R'''å'''de wrote the optimised floating point classification
-code.
+Johan R'''å'''de wrote the optimised floating-point classification
+and manipulation code, and nonfinite facets to permit C99 output of infinities and NaNs.
+(nonfinite facets were not added until Boost 1.47 but had been in use with Boost.Spirit).
+This library was based on a suggestion from Robert Ramey, author of Boost.Serialization.
+Paul A. Bristow expressed the need for better handling of 
+[@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.
+
+H'''å'''kan Ard'''ö''',
+Boris Gubenko, John Maddock,
+Markus Sch'''ö'''pflin
+and Olivier Verdier tested the floating-point library and 
+Martin Bonner, Peter Dimov and John Maddock provided valuable advice. 
 
 Gautam Sewani coded the logistic distribution as part of a Google Summer of Code project 2008.
 

From ab110d6d4aae3b98d13b8f05f5d530359b24095d Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 13:53:29 +0000
Subject: [PATCH 23/82] Added FAQ for nonfinite IO

[SVN r71274]
---
 doc/sf_and_dist/faq.qbk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/doc/sf_and_dist/faq.qbk b/doc/sf_and_dist/faq.qbk
index 172a2a0b6..58d30686f 100644
--- a/doc/sf_and_dist/faq.qbk
+++ b/doc/sf_and_dist/faq.qbk
@@ -76,6 +76,8 @@ 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 .
 But in the unlikely event that you do, see __building.

From 6b35bbddae7e40b531d9134175abb8b67263ce66 Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 13:54:05 +0000
Subject: [PATCH 24/82] Added reference for nearest representable

[SVN r71275]
---
 doc/sf_and_dist/float_next.qbk | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/doc/sf_and_dist/float_next.qbk b/doc/sf_and_dist/float_next.qbk
index fa8309c1f..5c3d16db0 100644
--- a/doc/sf_and_dist/float_next.qbk
+++ b/doc/sf_and_dist/float_next.qbk
@@ -5,7 +5,9 @@
 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 closest representable floating-point.
+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.

From a97c3ae2d9dfaa88aaf69c62bee2d354954f474d Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 13:54:58 +0000
Subject: [PATCH 25/82] Added note about fp_inspect by Johan Rade.

[SVN r71276]
---
 doc/sf_and_dist/fpclassify.qbk | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/doc/sf_and_dist/fpclassify.qbk b/doc/sf_and_dist/fpclassify.qbk
index a21a5a50c..ab7f7f4b9 100644
--- a/doc/sf_and_dist/fpclassify.qbk
+++ b/doc/sf_and_dist/fpclassify.qbk
@@ -1,4 +1,4 @@
-[section:fpclass Floating-Point Classification: Infinities and NaN's]
+[section:fpclass Floating-Point Classification: Infinities and NaNs]
 
 [h4 Synopsis]
 
@@ -34,9 +34,10 @@ 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:
+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;
    
@@ -102,10 +103,21 @@ Returns true only if /z/ is a [@http://en.wikipedia.org/wiki/NaN NaN].
 
 Returns true only if /z/ is a normal number (not zero, infinite, NaN, or denormalised).
 
-[endsect] [/section:fpclass Floating Point Classification: Infinities and NaN's]
+[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 John Maddock and Paul A. Bristow.
+  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).

From 756574380b1080f545d22113e4b6ab05c5cb93b8 Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 13:57:23 +0000
Subject: [PATCH 26/82] New section on nonfinite_facets

[SVN r71277]
---
 doc/sf_and_dist/fp_facets.qbk | 520 ++++++++++++++++++++++++++++++++++
 1 file changed, 520 insertions(+)
 create mode 100644 doc/sf_and_dist/fp_facets.qbk

diff --git a/doc/sf_and_dist/fp_facets.qbk b/doc/sf_and_dist/fp_facets.qbk
new file mode 100644
index 000000000..d2c9a09de
--- /dev/null
+++ b/doc/sf_and_dist/fp_facets.qbk
@@ -0,0 +1,520 @@
+[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 
+    >
+    class nonfinite_num_put : public std::num_put
+    { 
+    public:
+        explicit nonfinite_num_put(int flags = 0);
+    };
+
+    template<
+        class CharType,
+        class InputIterator = std::istreambuf_iterator
+    >
+    class nonfinite_num_get : public std::num_get
+    {
+    public:
+        explicit nonfinite_num_get(int flags = 0);  // legacy, sign_zero ...
+    }; 
+  }} // namespace boost namespace math
+
+To use these facets
+
+  #include 
+
+
+[h4 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::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 have to add one at a time, using a temporary locale.]
+
+[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.]
+
+[h4 Reference]
+
+[h5 The Facet `nonfinite_num_put`]
+
+ template<
+   class CharType, class OutputIterator = std::ostreambuf_iterator
+         >
+ class nonfinite_num_put;
+
+The `class nonfinite_num_put` 
+is derived from `std::num_put`.
+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 nonfinite_num_get;
+
+The class `nonfinite_num_get` is derived from `std::num_get`.
+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.`.
+
+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 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`.
+
+[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.
+
+[h3 Examples]
+
+[h5 Simple example with std::stringstreams]
+
+[nonfinite_facets_sstream_1]
+[nonfinite_facets_sstream_2]
+
+[h5 Use with lexical_cast]
+
+Without using a new locale that contains the nonfinite facets, `lexical_cast` is not portable
+(and often fails) 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 is 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("inf");
+  assert(x == std::numeric:limits::infinity());
+
+  string s = boost::lexical_cast(numeric_limits::infinity());
+  assert(s == "inf");
+
+[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::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::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);
+  locale my_locale(default_locale, new nonfinite_num_put);
+
+  ofstream ofs("test.txt");
+  ofs.imbue(my_locale);
+
+  boost::archive::text_oarchive oa(ofs, no_codecvt);
+
+  double x = numeric_limits::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 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]
+
+[h4 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.
+
+[h4 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: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).
+]
+
+
+
+

From b72c966e576cca542dc257dec6b31ccb03914d9f Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 13:58:38 +0000
Subject: [PATCH 27/82] Added changesign for nonfinite facets.

[SVN r71278]
---
 doc/sf_and_dist/sign.qbk | 93 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 91 insertions(+), 2 deletions(-)

diff --git a/doc/sf_and_dist/sign.qbk b/doc/sf_and_dist/sign.qbk
index 7c83d0bf8..8ca4c6cae 100644
--- a/doc/sf_and_dist/sign.qbk
+++ b/doc/sf_and_dist/sign.qbk
@@ -16,6 +16,9 @@
 
    template 
    inline T copysign (const T& x, const T& y);
+
+   template 
+   inline T changesign (const T& z);
    
    }} // namespaces
 
@@ -29,16 +32,102 @@ Returns a non-zero value if the sign bit is set in variable /x/, otherwise `0`.
    template 
    inline int sign (const T& z);
    
-Returns `1` if `x > 0`, `-1` if `x < 0`, and `0` if x is zero.
+Returns `1` if /x/ `> 0`, `-1` if /x/ `< 0`, and `0` if /x/ is zero.
 
    template 
    inline T copysign (const T& x, const T& 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 
+   inline 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.
+  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).

From 81b00c9db6432ee642be5a5b67c929aae22aab55 Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 13:59:18 +0000
Subject: [PATCH 28/82] Update for new items in 1.47 mainly nonfinite facets.

[SVN r71279]
---
 doc/sf_and_dist/roadmap.qbk | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/doc/sf_and_dist/roadmap.qbk b/doc/sf_and_dist/roadmap.qbk
index e97589ac3..ce55a773b 100644
--- a/doc/sf_and_dist/roadmap.qbk
+++ b/doc/sf_and_dist/roadmap.qbk
@@ -1,5 +1,12 @@
 [template history[]
 
+[h4 Boost-1.47]
+
+* Added changesign function to sign.hpp to facilitate addition of nonfinite facets.
+* Addition of nonfinite facetsfrom 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].
@@ -8,7 +15,7 @@
 
 * Added Wald, Inverse Gaussian and geometric distributions.
 * Added information about configuration macros. 
-* Added support for mpreal as a real-numered type.
+* Added support for mpreal as a real-numbered type.
 
 [h4 Boost-1.45.0]
 

From 3fd41c3a6e2b0d34e417eca9ef2523041bdcfaf1 Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 14:00:50 +0000
Subject: [PATCH 29/82] Added Johan Rade's fp_inspect utility program.

[SVN r71280]
---
 example/inspect_fp.cpp | 224 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 224 insertions(+)
 create mode 100644 example/inspect_fp.cpp

diff --git a/example/inspect_fp.cpp b/example/inspect_fp.cpp
new file mode 100644
index 000000000..f9e1146fa
--- /dev/null
+++ b/example/inspect_fp.cpp
@@ -0,0 +1,224 @@
+// inspect.cpp
+
+// Copyright (c) 2006 Johan Rade
+
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+//-------------------------------------
+
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+//------------------------------------------------------------------------------
+
+bool is_big_endian()
+{
+    float x = 1.0f;
+    unsigned char first_byte;
+  memcpy(&first_byte, &x, 1);
+    return first_byte != 0;
+}
+
+//------------------------------------------------------------------------------
+
+void print_processor();
+void print_endianness();
+template void print_table();
+template void print_row(const char* name, T val, bool ok = true);
+
+//------------------------------------------------------------------------------
+
+int main()
+{
+    std::cout << '\n';
+
+  print_processor();
+
+  print_endianness();
+
+    std::cout << "---------- float --------------------\n\n";
+    print_table();
+
+    std::cout << "---------- double -------------------\n\n";
+    print_table();
+
+    std::cout << "---------- long double --------------\n\n";
+    print_table();
+
+    return 0;
+}
+
+//------------------------------------------------------------------------------
+
+void print_processor()
+{
+#if defined(__i386) || defined(__i386__) || defined(_M_IX86) \
+    || defined(__amd64) || defined(__amd64__)  || defined(_M_AMD64) \
+    || defined(__x86_64) || defined(__x86_64__) || defined(_M_X64)
+
+  std::cout << "Processor: x86 or x64\n\n";
+
+#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+
+  std::cout << "Processor: ia64\n\n";
+
+#elif defined(__powerpc) || defined(__powerpc__) || defined(__POWERPC__) \
+    || defined(__ppc) || defined(__ppc__) || defined(__PPC__)
+
+  std::cout << "Processor: PowerPC\n\n";
+
+#elif defined(__m68k) || defined(__m68k__) \
+    || defined(__mc68000) || defined(__mc68000__) \
+
+  std::cout << "Processor: Motorola 68K\n\n";
+
+#else
+
+  std::cout << "Processor: Unknown\n\n";
+
+#endif
+}
+
+void print_endianness()
+{
+    if(is_big_endian())
+        std::cout << "This platform is big-endian.\n";
+    else
+        std::cout << "This platform is little-endian.\n";
+
+#ifdef BOOST_BIG_ENDIAN
+    std::cout << "BOOST_BIG_ENDIAN is defined.\n\n";
+#endif
+#if defined BOOST_LITTLE_ENDIAN
+    std::cout << "BOOST_LITTTLE_ENDIAN is defined.\n\n";
+#endif
+}
+
+//..............................................................................
+
+template void print_table()
+{
+    print_row("0", (T)0);
+    print_row("sn.min", std::numeric_limits::denorm_min(),
+          std::numeric_limits::has_denorm);
+    print_row("-sn.min", -std::numeric_limits::denorm_min(),
+          std::numeric_limits::has_denorm);
+    print_row("n.min/256", (std::numeric_limits::min)()/256);
+    print_row("n.min/2", (std::numeric_limits::min)()/2);
+    print_row("-n.min/2", -(std::numeric_limits::min)()/2);
+    print_row("n.min", (std::numeric_limits::min)());
+    print_row("1", (T)1);
+    print_row("3/4", (T)3/(T)4);
+    print_row("4/3", (T)4/(T)3);
+    print_row("max", (std::numeric_limits::max)());
+    print_row("inf", std::numeric_limits::infinity(),
+          std::numeric_limits::has_infinity);
+    print_row("q.nan", std::numeric_limits::quiet_NaN(),
+          std::numeric_limits::has_quiet_NaN);
+    print_row("s.nan", std::numeric_limits::signaling_NaN(),
+          std::numeric_limits::has_signaling_NaN);
+
+    std::cout << "\n\n";
+}
+
+template
+void print_row(const char* name, T val, bool ok)
+{
+    std::cout << std::left << std::setw(10) << name << std::right;
+
+    std::cout << std::hex << std::setfill('0');
+
+    if(ok) {
+        if(is_big_endian()) {
+      for(size_t i = 0; i < sizeof(T); ++i) {
+        unsigned char c = *(reinterpret_cast(&val) + i);
+                std::cout << std::setw(2)
+                    << static_cast(c) << ' ';
+      }
+        }
+        else {
+      for(size_t i = sizeof(T) - 1; i < sizeof(T); --i) {
+        unsigned char c = *(reinterpret_cast(&val) + i);
+                std::cout << std::setw(2)
+                    << static_cast(c) << ' ';
+      }
+        }
+    }
+    else {
+        for(size_t i = 0; i < sizeof(T); ++i)
+            std::cout << "-- ";
+    }
+
+    std::cout << '\n';
+    std::cout << std::dec << std::setfill(' ');
+}
+
+/*
+
+Sample output on an AMD Quadcore running MSVC 10
+
+  Processor: x86 or x64
+  
+  This platform is little-endian.
+  BOOST_LITTTLE_ENDIAN is defined.
+  
+  ---------- float --------------------
+  
+  0         00 00 00 00 
+  sn.min    00 00 00 01 
+  -sn.min   80 00 00 01 
+  n.min/256 00 00 80 00 
+  n.min/2   00 40 00 00 
+  -n.min/2  80 40 00 00 
+  n.min     00 80 00 00 
+  1         3f 80 00 00 
+  3/4       3f 40 00 00 
+  4/3       3f aa aa ab 
+  max       7f 7f ff ff 
+  inf       7f 80 00 00 
+  q.nan     7f c0 00 00 
+  s.nan     7f c0 00 01 
+  
+  
+  ---------- double -------------------
+  
+  0         00 00 00 00 00 00 00 00 
+  sn.min    00 00 00 00 00 00 00 01 
+  -sn.min   80 00 00 00 00 00 00 01 
+  n.min/256 00 00 10 00 00 00 00 00 
+  n.min/2   00 08 00 00 00 00 00 00 
+  -n.min/2  80 08 00 00 00 00 00 00 
+  n.min     00 10 00 00 00 00 00 00 
+  1         3f f0 00 00 00 00 00 00 
+  3/4       3f e8 00 00 00 00 00 00 
+  4/3       3f f5 55 55 55 55 55 55 
+  max       7f ef ff ff ff ff ff ff 
+  inf       7f f0 00 00 00 00 00 00 
+  q.nan     7f f8 00 00 00 00 00 00 
+  s.nan     7f f8 00 00 00 00 00 01 
+  
+  
+  ---------- long double --------------
+  
+  0         00 00 00 00 00 00 00 00 
+  sn.min    00 00 00 00 00 00 00 01 
+  -sn.min   80 00 00 00 00 00 00 01 
+  n.min/256 00 00 10 00 00 00 00 00 
+  n.min/2   00 08 00 00 00 00 00 00 
+  -n.min/2  80 08 00 00 00 00 00 00 
+  n.min     00 10 00 00 00 00 00 00 
+  1         3f f0 00 00 00 00 00 00 
+  3/4       3f e8 00 00 00 00 00 00 
+  4/3       3f f5 55 55 55 55 55 55 
+  max       7f ef ff ff ff ff ff ff 
+  inf       7f f0 00 00 00 00 00 00 
+  q.nan     7f f8 00 00 00 00 00 00 
+  s.nan     7f f8 00 00 00 00 00 01 
+  
+  */
\ No newline at end of file

From 0711f4932b1d024f5327ae76f39d411aed1afa15 Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 14:20:42 +0000
Subject: [PATCH 30/82] Added nonfinite examples  (but two serialization
 examples fail to link).  One example (referenced in docs is expected to fail
 on some but not all system)

[SVN r71281]
---
 example/Jamfile.v2 | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/example/Jamfile.v2 b/example/Jamfile.v2
index 94798e2db..d9d96d051 100644
--- a/example/Jamfile.v2
+++ b/example/Jamfile.v2
@@ -1,7 +1,7 @@
 # \libs\math\example\jamfile.v2
-# Runs statistics examples
+# Runs statistics and floating-point examples.
 # Copyright 2007 John Maddock
-# Copyright Paul A. Bristow 2007, 2010.
+# Copyright Paul A. Bristow 2007, 2010, 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)
 
@@ -24,6 +24,8 @@ project
       msvc:/wd4701
       msvc:/wd4127
       msvc:/wd4305
+      #-msvc:/Za # nonfinite Serialization examples fail link if disable MS extensions,
+      #  because serialization library is built with MS extensions enabled (default).
       ../../..
     ;
 
@@ -54,6 +56,16 @@ run neg_binom_confidence_limits.cpp ;
 run neg_binomial_sample_sizes.cpp ;
 run negative_binomial_example1.cpp ;
 run negative_binomial_example2.cpp ;
+
+run nonfinite_num_facet.cpp ;
+run nonfinite_facet_simple.cpp ;
+run nonfinite_num_facet_serialization.cpp ;
+# run lexical_cast_native.cpp ; # Expected to fail on some (but not all) platforms.
+run lexical_cast_nonfinite_facets.cpp ;
+run nonfinite_loopback_ok.cpp ;
+run nonfinite_serialization_archives.cpp ;
+run nonfinite_facet_sstream.cpp ;
+
 run normal_misc_examples.cpp ;
 run policy_eg_1.cpp ;
 run policy_eg_10.cpp ;

From cce808c60540cdef9e4c07be4b74fec1d7fec272 Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 14:38:03 +0000
Subject: [PATCH 31/82] Added nonfinite facets section.

[SVN r71282]
---
 doc/sf_and_dist/math.qbk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/doc/sf_and_dist/math.qbk b/doc/sf_and_dist/math.qbk
index 9ef647827..5587cc5a2 100644
--- a/doc/sf_and_dist/math.qbk
+++ b/doc/sf_and_dist/math.qbk
@@ -163,6 +163,7 @@ and use the function's name as the link text.]
 [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]]
@@ -434,6 +435,7 @@ and as a CD ISBN 0-9504833-2-X  978-0-9504833-2-0, Classification 519.2-dc22.
 [include rounding_func.qbk]
 [include fpclassify.qbk]
 [include sign.qbk]
+[include fp_facets.qbk]
 [include float_next.qbk]
 [endsect]
 

From 7c3d6c454cbce313913af0c117dae00800fb76fc Mon Sep 17 00:00:00 2001
From: "Paul A. Bristow" 
Date: Fri, 15 Apr 2011 14:41:02 +0000
Subject: [PATCH 32/82] rebuild after adding nonfinite facets section and other
 consequent changes for 1.47.

[SVN r71283]
---
 doc/sf_and_dist/html/index.html               |  17 +-
 .../backgrounders/implementation.html         |  30 ++--
 .../math_toolkit/backgrounders/lanczos.html   |  14 +-
 .../html/math_toolkit/backgrounders/refs.html |   6 +-
 .../backgrounders/relative_error.html         |   2 +-
 .../math_toolkit/backgrounders/remez.html     |  16 +-
 doc/sf_and_dist/html/math_toolkit/dist.html   |   2 +-
 .../dist/dist_ref/dist_algorithms.html        |   6 +-
 .../dist/dist_ref/dists/bernoulli_dist.html   |  10 +-
 .../dist/dist_ref/dists/beta_dist.html        |  20 +--
 .../dist/dist_ref/dists/binomial_dist.html    |  24 +--
 .../dist/dist_ref/dists/cauchy_dist.html      |  10 +-
 .../dist/dist_ref/dists/chi_squared_dist.html |  12 +-
 .../dist/dist_ref/dists/exp_dist.html         |  10 +-
 .../dist/dist_ref/dists/extreme_dist.html     |   8 +-
 .../dist/dist_ref/dists/f_dist.html           |  10 +-
 .../dist/dist_ref/dists/gamma_dist.html       |   8 +-
 .../dist/dist_ref/dists/geometric_dist.html   |  22 +--
 .../dist_ref/dists/hypergeometric_dist.html   |  10 +-
 .../dists/inverse_chi_squared_dist.html       |  10 +-
 .../dist_ref/dists/inverse_gamma_dist.html    |   8 +-
 .../dist_ref/dists/inverse_gaussian_dist.html |  10 +-
 .../dist/dist_ref/dists/laplace_dist.html     |  10 +-
 .../dist/dist_ref/dists/logistic_dist.html    |   8 +-
 .../dist/dist_ref/dists/lognormal_dist.html   |   8 +-
 .../dist/dist_ref/dists/nc_beta_dist.html     |  10 +-
 .../dist_ref/dists/nc_chi_squared_dist.html   |  12 +-
 .../dist/dist_ref/dists/nc_f_dist.html        |  10 +-
 .../dist/dist_ref/dists/nc_t_dist.html        |  10 +-
 .../dists/negative_binomial_dist.html         |  22 +--
 .../dist/dist_ref/dists/normal_dist.html      |   8 +-
 .../dist/dist_ref/dists/pareto.html           |  12 +-
 .../dist/dist_ref/dists/poisson_dist.html     |   8 +-
 .../dist/dist_ref/dists/rayleigh.html         |  12 +-
 .../dist/dist_ref/dists/students_t_dist.html  |  10 +-
 .../dist/dist_ref/dists/triangular_dist.html  |  10 +-
 .../dist/dist_ref/dists/uniform_dist.html     |  10 +-
 .../dist/dist_ref/dists/weibull_dist.html     |  12 +-
 .../html/math_toolkit/dist/dist_ref/nmp.html  |  54 +++---
 .../html/math_toolkit/dist/future.html        |   8 +-
 .../html/math_toolkit/dist/stat_tut.html      |   2 +-
 .../math_toolkit/dist/stat_tut/overview.html  |   2 +-
 .../dist/stat_tut/overview/complements.html   |   4 +-
 .../weg/binom_eg/binomial_quiz_example.html   |   4 +-
 .../stat_tut/weg/cs_eg/chi_sq_intervals.html  |   2 +-
 .../dist/stat_tut/weg/dist_construct_eg.html  |   2 +-
 .../weg/find_eg/find_location_eg.html         |   2 +-
 .../weg/find_eg/find_mean_and_sd_eg.html      |   6 +-
 .../stat_tut/weg/find_eg/find_scale_eg.html   |   2 +-
 .../dist/stat_tut/weg/geometric_eg.html       |  10 +-
 .../weg/normal_example/normal_misc.html       |  14 +-
 .../html/math_toolkit/extern_c/c99.html       |   4 +-
 .../html/math_toolkit/extern_c/tr1.html       |  10 +-
 .../html/math_toolkit/extern_c/tr1_ref.html   |   6 +-
 .../math_toolkit/main_overview/building.html  |   6 +-
 .../main_overview/directories.html            |   4 +-
 .../main_overview/error_handling.html         |  24 +--
 .../html/math_toolkit/main_overview/faq.html  |   5 +
 .../math_toolkit/main_overview/history1.html  |  47 +++--
 .../math_toolkit/main_overview/intro.html     |   6 +-
 .../main_overview/navigation.html             |   2 +-
 .../html/math_toolkit/main_overview/tr1.html  |  10 +-
 .../math_toolkit/perf/comp_compilers.html     |   2 +-
 .../html/math_toolkit/perf/comparisons.html   |  58 +++---
 .../html/math_toolkit/perf/getting_best.html  |   2 +-
 .../html/math_toolkit/perf/tuning.html        |   4 +-
 .../policy/pol_ref/discrete_quant_ref.html    |  12 +-
 .../pol_ref/error_handling_policies.html      |  14 +-
 .../policy/pol_ref/internal_promotion.html    |   2 +-
 .../policy/pol_ref/policy_defaults.html       |  32 ++--
 .../pol_tutorial/understand_dis_quant.html    |   2 +-
 .../math_toolkit/special/bessel/bessel.html   |  10 +-
 .../special/bessel/bessel_over.html           |   6 +-
 .../math_toolkit/special/bessel/mbessel.html  |  10 +-
 .../special/bessel/sph_bessel.html            |  10 +-
 .../math_toolkit/special/ellint/ellint_1.html |  10 +-
 .../math_toolkit/special/ellint/ellint_2.html |  10 +-
 .../math_toolkit/special/ellint/ellint_3.html |  14 +-
 .../special/ellint/ellint_carlson.html        |  10 +-
 .../special/ellint/ellint_intro.html          |  12 +-
 .../math_toolkit/special/expint/expint_i.html |  14 +-
 .../math_toolkit/special/expint/expint_n.html |  10 +-
 .../special/factorials/sf_binomial.html       |   6 +-
 .../factorials/sf_double_factorial.html       |   6 +-
 .../special/factorials/sf_factorial.html      |  10 +-
 .../factorials/sf_falling_factorial.html      |   6 +-
 .../factorials/sf_rising_factorial.html       |   6 +-
 .../math_toolkit/special/inv_hyper/acosh.html |   6 +-
 .../math_toolkit/special/inv_hyper/asinh.html |   6 +-
 .../math_toolkit/special/inv_hyper/atanh.html |   6 +-
 .../math_toolkit/special/powers/cbrt.html     |   4 +-
 .../math_toolkit/special/powers/ct_pow.html   |  14 +-
 .../math_toolkit/special/powers/expm1.html    |   4 +-
 .../math_toolkit/special/powers/hypot.html    |   2 +-
 .../math_toolkit/special/powers/log1p.html    |   4 +-
 .../math_toolkit/special/powers/powm1.html    |   4 +-
 .../math_toolkit/special/powers/sqrt1pm1.html |   4 +-
 .../special/sf_beta/beta_derivative.html      |   8 +-
 .../special/sf_beta/beta_function.html        |  10 +-
 .../special/sf_beta/ibeta_function.html       |  10 +-
 .../special/sf_beta/ibeta_inv_function.html   |  10 +-
 .../special/sf_erf/error_function.html        |  10 +-
 .../special/sf_erf/error_inv.html             |  10 +-
 .../special/sf_gamma/digamma.html             |  10 +-
 .../special/sf_gamma/gamma_derivatives.html   |   8 +-
 .../special/sf_gamma/gamma_ratios.html        |   8 +-
 .../math_toolkit/special/sf_gamma/igamma.html |  12 +-
 .../special/sf_gamma/igamma_inv.html          |  10 +-
 .../math_toolkit/special/sf_gamma/lgamma.html |  10 +-
 .../math_toolkit/special/sf_gamma/tgamma.html |  10 +-
 .../math_toolkit/special/sf_poly/hermite.html |  10 +-
 .../special/sf_poly/laguerre.html             |  10 +-
 .../special/sf_poly/legendre.html             |  10 +-
 .../special/sf_poly/sph_harm.html             |  10 +-
 .../html/math_toolkit/special/zetas/zeta.html |  10 +-
 .../html/math_toolkit/status/credits.html     |  18 +-
 .../html/math_toolkit/status/history1.html    |  47 +++--
 .../html/math_toolkit/status/issues.html      |  16 +-
 .../math_toolkit/toolkit/internals1/cf.html   |   8 +-
 .../toolkit/internals1/constants.html         |   4 +-
 .../toolkit/internals1/minima.html            |   6 +-
 .../toolkit/internals1/rational.html          |   6 +-
 .../toolkit/internals1/roots.html             |  12 +-
 .../toolkit/internals1/roots2.html            |  12 +-
 .../toolkit/internals1/series_evaluation.html |   6 +-
 .../toolkit/internals1/tuples.html            |   4 +-
 .../toolkit/internals2/error_test.html        |   6 +-
 .../toolkit/internals2/polynomials.html       |   4 +-
 .../toolkit/internals2/test_data.html         |  12 +-
 .../math_toolkit/using_udt/archetypes.html    |   8 +-
 .../html/math_toolkit/using_udt/concepts.html |   4 +-
 doc/sf_and_dist/html/math_toolkit/utils.html  |   4 +-
 .../html/math_toolkit/utils/fpclass.html      |  27 ++-
 .../html/math_toolkit/utils/next_float.html   |   9 +-
 .../utils/next_float/float_advance.html       |   4 +-
 .../utils/next_float/float_distance.html      |   4 +-
 .../utils/next_float/float_next.html          |   4 +-
 .../utils/next_float/float_prior.html         |   4 +-
 .../utils/next_float/nextafter.html           |   6 +-
 .../math_toolkit/utils/rounding/modf.html     |   2 +-
 .../math_toolkit/utils/sign_functions.html    | 169 ++++++++++++++++--
 141 files changed, 901 insertions(+), 686 deletions(-)

diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html
index a0eb0cbfd..47e36f886 100644
--- a/doc/sf_and_dist/html/index.html
+++ b/doc/sf_and_dist/html/index.html
@@ -53,7 +53,7 @@
       Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and
       Thijs van den Berg

@@ -500,9 +497,11 @@ friendly PDF format, and as a CD ISBN 0-9504833-2-X 978-0-9504833-2-0, Classification 519.2-dc22.

+

+

- +

Last revised: March 06, 2011 at 17:12:23 GMT

Last revised: April 15, 2011 at 14:01:20 GMT


diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index ff28236b8..c0eeb5f84 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

- + Implemention philosophy
@@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

- + Accuracy and Representation of Test Values
@@ -130,7 +130,7 @@ binary value).

- + Tolerance of Tests
@@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

- + Handling Unsuitable Arguments
@@ -224,7 +224,7 @@

- + Handling of Functions that are Not Mathematically defined
@@ -258,7 +258,7 @@

- + Median of distributions
@@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

- + Handling of Floating-Point Infinity
@@ -337,7 +337,7 @@ handling policies.

- + Scale, Shape and Location
@@ -364,7 +364,7 @@ functions, they can be added if required.

- + Notes on Implementation of Specific Functions & Distributions
@@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
- + Rational Approximations Used
@@ -419,7 +419,7 @@ to the "true" minimax solution.

- + Representation of Mathematical Constants
@@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
- + Thread safety
@@ -505,7 +505,7 @@ the right thing here at some point.

- + Sources of Test Data
@@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

- + Creating and Managing the Equations
@@ -731,7 +731,7 @@ done HTML: this needs further investigation.

- + Producing Graphs
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index 1de4d4aeb..0b0d8d4d1 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
- + Motivation

@@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

- + The Approximation
@@ -161,7 +161,7 @@

- + Computing the Coefficients
@@ -205,7 +205,7 @@ multiplied by F as the last step.

- + Choosing the Right Parameters
@@ -229,7 +229,7 @@ computing to float precision with double precision arithmetic.

-

Table 56. Optimal choices for N and g when computing with guard digits (source: +

Table 57. Optimal choices for N and g when computing with guard digits (source: Pugh)

@@ -372,7 +372,7 @@ exactly matches the machine epsilon for the type in question.

-

Table 57. Optimum value for N and g when computing at fixed precision

+

Table 58. Optimum value for N and g when computing at fixed precision

@@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index e5fb7fb8f..f2891075c 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
- + General references
@@ -98,7 +98,7 @@ Library (version 2), Walter E. Brown

- + Calculators

@@ -120,7 +120,7 @@ Binomial Probability Distribution Calculator.

- + Other Libraries

diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index c9c9e4f3b..667ec5e45 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

- + The Impossibility of Zero Error
diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index add1116c7..d4c74a591 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

- + The Remez Method
@@ -174,7 +174,7 @@
- + Remez Step 1
@@ -205,7 +205,7 @@ to 5.6x10-4.

- + Remez Step 2
@@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

- + Iteration

@@ -250,7 +250,7 @@ remez-4

- + Rational Approximations
@@ -299,7 +299,7 @@ number of terms overall.

- + Practical Considerations
@@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

- + Remez Method Checklist
@@ -461,7 +461,7 @@
- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/dist.html b/doc/sf_and_dist/html/math_toolkit/dist.html index a97c7ccd1..b60ef2dd8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist.html @@ -38,7 +38,7 @@ are Objects

Generic operations common to all distributions are non-member functions
-
Complements +
Complements are supported too - and when to use them
Parameters can be calculated
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index 7ed17fac5..66dd99e5c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms
- + Finding the Location and Scale for Normal and similar distributions
@@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
- + find_location function
@@ -80,7 +80,7 @@ }} // namespaces
- + find_scale function
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index 3ba99ff65..adec4a2de 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

- + Member Functions
@@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

- + Non-member Accessors
@@ -128,7 +128,7 @@ exception and make an error message available.

- + Accuracy

@@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

- + Implementation

@@ -327,7 +327,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index bca53dfbd..842b21277 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

    - + Member Functions
    - + Constructor
    beta_distribution(RealType alpha, RealType beta);
    @@ -164,7 +164,7 @@
                 yellow in the graph above).
               

    - + Parameter Accessors
    @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
    - + Parameter Estimators
    @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

    - + Non-member Accessor Functions
    @@ -263,7 +263,7 @@ Mathworld.

    - + Applications

    @@ -276,7 +276,7 @@ statistical inference.

    - + Related distributions
    @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

    - + Accuracy

    @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -594,7 +594,7 @@

- + References

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index d311f28dd..9d6dc1cf1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

- + Member Functions
- + Construct
binomial_distribution(RealType n, RealType p);
@@ -183,7 +183,7 @@
             otherwise calls domain_error.
           

- + Accessors
RealType success_fraction() const;
@@ -199,7 +199,7 @@
             was constructed.
           

- + Lower Bound on the Success Fraction
@@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

- + Upper Bound on the Success Fraction
@@ -383,7 +383,7 @@
- + Estimating the Number of Trials Required for a Certain Number of Successes
@@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

- + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

- + Non-member Accessors
@@ -622,7 +622,7 @@
- + Examples

@@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

- + Accuracy

@@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

- + Implementation

@@ -884,7 +884,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index 9063a9c64..e68d755fa 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

    - + Member Functions
    @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

    - + Non-member Accessors
    @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

    - + Accuracy

    @@ -157,7 +157,7 @@ have very low error rates.

    - + Implementation

    @@ -273,7 +273,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index 602a27e1c..cbd0235bc 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

    - + Member Functions
    @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

    - + Non-member Accessors
    @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

    - + Examples

    @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

    - + Accuracy

    @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

    - + Implementation

    @@ -379,7 +379,7 @@ independent, normally distributed random

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index a53d21648..343f721f5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

    - + Member Functions
    @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

    - + Non-member Accessors
    @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

    - + Accuracy

    @@ -122,7 +122,7 @@ should have very low error rates.

    - + Implementation

    @@ -283,7 +283,7 @@

- + references
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index 6f6b32e0b..5d22fdae5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

    - + Member Functions
    @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

    - + Non-member Accessors
    @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

    - + Accuracy

    @@ -154,7 +154,7 @@ very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index 690d2cd24..0a6942c66 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

    - + Member Functions
    @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

    - + Non-member Accessors
    @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

    - + Examples

    @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

    - + Accuracy

    @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index 5e771680f..78a5ebb37 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

    - + Member Functions
    @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

    - + Accuracy

    @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index d1adeaea9..facb9af85 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

    - + Related Distributions
    @@ -206,12 +206,12 @@
- + Member Functions
- + Constructor
geometric_distribution(RealType p);
@@ -226,7 +226,7 @@
             1.
           

- + Accessors
RealType success_fraction() const; // successes / trials (0 <= p <= 1)
@@ -253,7 +253,7 @@
             Binomial Distribution for more discussion.
           

- + Lower Bound on success_fraction Parameter p
@@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

- + Upper Bound on success_fraction Parameter p
@@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

- + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
@@ -415,7 +415,7 @@ probability of observing k failures or fewer.

- + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
@@ -463,7 +463,7 @@ probability of observing more than k failures.

- + Non-member Accessors
@@ -611,7 +611,7 @@
- + Accuracy

@@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index 57ecf80b7..041e729a9 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

- + Member Functions
@@ -131,7 +131,7 @@ from the population N.

- + Non-member Accessors
@@ -185,7 +185,7 @@
- + Accuracy

@@ -211,7 +211,7 @@ meaningless for N >= 1015.

- + Testing

@@ -223,7 +223,7 @@ this implementation and NTL::RR.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index 1a1ae8f73..40f516cb2 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

- + Member Functions
@@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

- + Non-member Accessors
@@ -255,7 +255,7 @@

- + Accuracy

@@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

- + Implementation

@@ -452,7 +452,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index 8568362a8..8fc992e6d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

    - + Member Functions
    @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

    - + Non-member Accessors
    @@ -184,7 +184,7 @@

- + Accuracy

@@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index d54b8ba89..bb6751757 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -146,7 +146,7 @@ the __wald_distrib (where mean μ is unity) is also provided.

- + Member Functions
@@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

- + Non-member Accessors
@@ -201,7 +201,7 @@

- + Accuracy

@@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

- + Implementation

@@ -390,7 +390,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index 9a4962b45..a0e98324d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

    - + Member Functions
    @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

    - + Accuracy

    @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

    - + Implementation

    @@ -329,7 +329,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index a5bef45dc..20306f07c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

    - + Member Functions
    @@ -98,7 +98,7 @@ Returns the scale of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

    - + Accuracy

    @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

    - + Implementation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index 1ef589446..125bc9672 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index 84f60d1ba..a382533b4 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

    - + Member Functions
    @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

    - + Non-member Accessors
    @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

    - + Accuracy

    @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

    - + Tests

    @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index 12b714777..6649bf3c7 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

    - + Member Functions
    @@ -183,7 +183,7 @@ == q.

    - + Non-member Accessors
    @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

    - + Examples

    @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

    - + Accuracy

    @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

    - + Tests

    @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index cfca66a85..77306905b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

    - + Member Functions
    @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

    - + Non-member Accessors
    @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

    - + Accuracy

    @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

    - + Tests

    @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index 4f0da70a6..bc8fb9773 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

    - + Member Functions
    @@ -111,7 +111,7 @@ which this object was constructed.

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

    - + Accuracy

    @@ -255,7 +255,7 @@ epsilon.

    - + Tests

    @@ -270,7 +270,7 @@ least 50 decimal places.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index a2a928935..4561bbd11 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

    - + Related Distributions
    @@ -195,12 +195,12 @@
    - + Member Functions
    - + Construct
    negative_binomial_distribution(RealType r, RealType p);
    @@ -216,7 +216,7 @@
                 <= 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -237,7 +237,7 @@
                 Distribution for more discussion.
               

    - + Lower Bound on Parameter p
    @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on Parameter p
    @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -457,7 +457,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -606,7 +606,7 @@

- + Accuracy

@@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index 55d940a49..34e6890de 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

- + Member Functions
@@ -109,7 +109,7 @@ be used generically).

- + Non-member Accessors
@@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

- + Accuracy

@@ -139,7 +139,7 @@ function, and as such should have very low error rates.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index 5a424fd15..1feadd9ca 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

- + Related distributions
- + Member Functions
@@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

- + Non-member Accessors
@@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

- + Accuracy

@@ -150,7 +150,7 @@ zero) see also why complements?.

- + Implementation

@@ -318,7 +318,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index 421694704..3ead9b58e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
- + Member Functions
@@ -131,7 +131,7 @@ Returns the mean of this distribution.

- + Non-member Accessors
@@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

- + Accuracy

@@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

- + Implementation

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index 4ef8ecd85..be8f3527e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

- + Related distributions
@@ -102,7 +102,7 @@ distribution.

- + Member Functions
@@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

- + Non-member Accessors
@@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

- + Accuracy

@@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

- + Implementation

@@ -320,7 +320,7 @@

- + References
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index 84385adbd..8dd589e61 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

    - + Member Functions
    @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

    - + Non-member Accessors
    @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

    - + Examples

    @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

    - + Accuracy

    @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index b43e2eadf..83e7280c0 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

    - + Member Functions
    @@ -163,7 +163,7 @@ (default+1).

    - + Non-member Accessors
    @@ -184,7 +184,7 @@ range is lower <= x <= upper.

    - + Accuracy

    @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

    - + Implementation

    @@ -378,7 +378,7 @@ Calculate and plot probability distributions

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index 308261f4f..7f49b6b7a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

      - + Member Functions
      @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

      - + Non-member Accessors
      @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

      - + Accuracy

      @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

      - + Implementation

      @@ -337,7 +337,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index 7cebb705a..595544c69 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

      - + Related distributions
      @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

      - + Member Functions
      @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

      - + Accuracy

      @@ -170,7 +170,7 @@ as such should have very low error rates.

      - + Implementation

      @@ -337,7 +337,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index 07f874bb6..549ab3678 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

      - + Function Index
        @@ -94,7 +94,7 @@
      - + Conceptual Index
        @@ -180,7 +180,7 @@
      - + Cumulative Distribution Function
      template <class RealType, class Policy>
      @@ -203,7 +203,7 @@
                 cdf
               

      - + Complement of the Cumulative Distribution Function
      template <class Distribution, class RealType>
      @@ -243,7 +243,7 @@
                 complement is useful and when it should be used.
               

      - + Hazard Function
      template <class RealType, class Policy>
      @@ -271,7 +271,7 @@
                 

    - + Cumulative Hazard Function
    template <class RealType, class Policy>
    @@ -298,7 +298,7 @@
               

- + mean
template<class RealType, class Policy>
@@ -313,7 +313,7 @@
           distribution).
         

- + median
template<class RealType, class Policy>
@@ -323,7 +323,7 @@
           Returns the median of the distribution dist.
         

- + mode
template<class RealType, Policy>
@@ -337,7 +337,7 @@
           if the distribution does not have a defined mode.
         

- + Probability Density Function
template <class RealType, class Policy>
@@ -365,7 +365,7 @@
           pdf
         

- + Range
template<class RealType, class Policy>
@@ -375,7 +375,7 @@
           Returns the valid range of the random variable over distribution dist.
         

- + Quantile
template <class RealType, class Policy>
@@ -405,7 +405,7 @@
           quantile
         

- + Quantile from the complement of the probability.

@@ -450,7 +450,7 @@ survival_inv

- + Standard Deviation
template <class RealType, class Policy>
@@ -464,7 +464,7 @@
           if the distribution does not have a defined standard deviation.
         

- + support
template<class RealType, class Policy>
@@ -481,7 +481,7 @@
           where the pdf is zero, and the cdf zero or unity.
         

- + Variance
template <class RealType, class Policy>
@@ -495,7 +495,7 @@
           if the distribution does not have a defined variance.
         

- + Skewness
template <class RealType, class Policy>
@@ -509,7 +509,7 @@
           if the distribution does not have a defined skewness.
         

- + Kurtosis
template <class RealType, class Policy>
@@ -551,7 +551,7 @@
           'Proper' kurtosis can have a value from zero to + infinity.
         

- + Kurtosis excess
template <class RealType, Policy>
@@ -585,7 +585,7 @@
           The kurtosis excess of a normal distribution is zero.
         

- + P and Q

@@ -595,7 +595,7 @@ returned by these functions.

- + Percent Point Function or Percentile

@@ -603,7 +603,7 @@ the Quantile.

- + Inverse CDF Function.

@@ -611,14 +611,14 @@ Quantile.

- + Inverse Survival Function.

The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

- + Probability Mass Function

@@ -631,7 +631,7 @@ applies to continuous distributions.

- + Lower Critical Value.

@@ -640,7 +640,7 @@ the Quantile.

- + Upper Critical Value.

@@ -650,7 +650,7 @@ complement of the probability.

- + Survival Function

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index 813f45b85..6d1f6b62f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

- + Adding Additional Location and Scale Parameters
@@ -55,7 +55,7 @@ functions.

- + An "any_distribution" class
@@ -91,7 +91,7 @@ investigation.

- + Higher Level Hypothesis Tests
@@ -111,7 +111,7 @@ expected_mean.

- + Integration With Statistical Accumulators
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html index 15dcf4614..3c6685e99 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html @@ -36,7 +36,7 @@ are Objects
Generic operations common to all distributions are non-member functions
-
Complements +
Complements are supported too - and when to use them
Parameters can be calculated
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html index 0d81ff770..9d7816398 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html @@ -33,7 +33,7 @@ are Objects
Generic operations common to all distributions are non-member functions
-
Complements +
Complements are supported too - and when to use them
Parameters can be calculated
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html index 83a3c54e0..57b9e3db6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html @@ -24,10 +24,10 @@
-

+

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 diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index e471215c1..3772d3da1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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

- + Using Binomial distribution moments
@@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
- + Quantiles

diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index e0a599b60..9498c6747 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

- + Confidence intervals as a function of the number of observations
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index c949d8c84..3389dde36 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
 
- + Default arguments to distribution constructors.
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index a25d6de8e..459cb2f95 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
- + Controlling Error Handling from find_location
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index da765b4f5..2eb999066 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

- + Using find_location and find_scale to meet dispensing and measurement specifications
@@ -193,7 +193,7 @@

- + Using Cauchy-Lorentz instead of normal distribution
@@ -305,7 +305,7 @@ of estimating these intervals.

- + Changing the scale or standard deviation
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index be38ef824..68cf84e96 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
- + Controlling how Errors from find_scale are handled
diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index 580f05cda..4a6f5786a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

- + Throwing a dice
@@ -288,7 +288,7 @@ replicated in C++ if desired.

- + Surveying customers to find one with a faulty product
@@ -333,7 +333,7 @@

- + Basket Ball Shooters
@@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

- + Estimating failures
@@ -489,7 +489,7 @@ Number of failures argument is -1, but must be >= 0 !

- See full source C++ of this example at geometric_examples.cpp + See full source C++ of this example at geometric_examples.cpp

See diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index c777923e4..20907e73b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

- + Traditional Tables
@@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

- + Standard deviations either side of the Mean
@@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

- + Some simple examples
- + Life of light bulbs
@@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

- + How many onions?
@@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

- + Packing beef
@@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

- + Length of bolts
diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index 313c34ecc..074b72e07 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
- + Supported C99 Functions
@@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
- + Quick Reference

diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index 0ee0ca724..0981a06fc 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

- + Usage Recomendations

@@ -295,7 +295,7 @@ this can be a big win.

- + Supported C99 Functions
@@ -391,7 +391,7 @@ }}}} // namespaces
- + Supported TR1 Functions
@@ -520,7 +520,7 @@ type calculation rules
.

- + Currently Unsupported C99 Functions
@@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index 138f6c7af..01326432b 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
- + Supported TR1 Functions
@@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
- + Quick Reference
// [5.2.1.1] associated Laguerre polynomials:
@@ -494,7 +494,7 @@
         for the full template (header only) version of this function.
       

- + Currently Unsupported TR1 Functions
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index 61a4972ed..84c5e2e5c 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
- + Building a Library (shared, dynamic .dll or static .lib)
@@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

- + Building the Examples
@@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

- + Building the Tests
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index 34f14ddcb..67a5e8863 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
- + boost/math
@@ -73,7 +73,7 @@
- + boost/libs
diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index a5a16f14d..db3d70ef0 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
- + Quick Reference
@@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

- + Rationale

@@ -766,7 +766,7 @@

- + Finding More Information
@@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

- + Domain Errors

@@ -859,7 +859,7 @@ for more details.

- + Evaluation at a pole

@@ -897,7 +897,7 @@ for more details.

- + Numeric Overflow

@@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

- + Numeric Underflow

@@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

- + Denormalisation Errors

@@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

- + Evaluation Errors

@@ -1001,7 +1001,7 @@ for more details.

- + Indeterminate Result Errors

@@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

- + Rounding Errors

@@ -1068,7 +1068,7 @@ for more details.

- + Errors from typecasts

diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html b/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html index d4455c763..150768354 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html @@ -174,6 +174,11 @@ 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?
    + See nonfinite fp_facets + for Facets for Floating-Point Infinities and NaNs. +
  • Where are the pre-built libraries?
    Good news - you probably don't need any! - just #include <boost/math/distribution_you_want>. diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index cd67d0bf1..fc0120178 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -27,8 +27,25 @@ History and What's New +
    + + Boost-1.47 +
    +
      +
    • + Added changesign function to sign.hpp to facilitate addition of nonfinite + facets. +
    • +
    • + Addition of nonfinite facetsfrom Johan Rade, with tests, examples of + use for C99 format infinity and NaN, and documentation. +
    • +
    • + Added tests and documentation of changesign from Johan Rade. +
    • +
    - + Boost-1.46.1
    • @@ -36,7 +53,7 @@ #5113.
    - + Boost-1.46.0
      @@ -47,11 +64,11 @@ Added information about configuration macros.
    • - Added support for mpreal as a real-numered type. + Added support for mpreal as a real-numbered type.
    - + Boost-1.45.0
      @@ -68,7 +85,7 @@
    - + Boost-1.44.0
      @@ -82,7 +99,7 @@
    - + Boost-1.41.0
    • @@ -90,7 +107,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -127,7 +144,7 @@
    - + Boost-1.38.0
      @@ -139,14 +156,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -179,7 +196,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -211,7 +228,7 @@
  • - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -225,7 +242,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -253,7 +270,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -289,7 +306,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index 0f9bfae4e..3c21642d0 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

    - + Statistical Distributions
    @@ -56,7 +56,7 @@ tests.

    - + Mathematical Special Functions
    @@ -83,7 +83,7 @@ double.

    - + Implementation Toolkit
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index 64a2c2793..94fd1208c 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

    - + Shortcuts
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index 0776987d2..2471821a3 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

    - + Usage Recomendations
    @@ -297,7 +297,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -393,7 +393,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -522,7 +522,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html b/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html index 36f00ba4e..3e553468d 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html @@ -35,7 +35,7 @@ in this respect).

    -

    Table 51. Performance Comparison of Various Windows Compilers

    +

    Table 52. Performance Comparison of Various Windows Compilers

    diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index cd0d7ac50..3b2d8a1f7 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

    - + Comparison to GSL-1.13 and Cephes
    @@ -344,7 +344,7 @@

    - +INF [1] + +INF [1]

    @@ -423,7 +423,7 @@

    -

    17.89[2]

    +

    17.89[2]

    (4.248e-005s)

    @@ -548,11 +548,11 @@ -

    [1] +

    [1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

    -

    [2] +

    [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 @@ -563,7 +563,7 @@

    - + Comparison to the R and DCDFLIB Statistical Libraries on Windows
    @@ -574,7 +574,7 @@ (R-2.9.2 appears not to be buildable with Visual C++).

    -

    Table 54. A Comparison to the R Statistical Library on Windows XP

    +

    Table 55. A Comparison to the R Statistical Library on Windows XP

    @@ -659,7 +659,7 @@

    -

    67.66[1]

    +

    67.66[1]

    (3.366e-004s)

    @@ -1088,7 +1088,7 @@

    -

    3.60[2]

    +

    3.60[2]

    (5.987e-007s)

    @@ -1317,7 +1317,7 @@

    -

    43.43[3]

    +

    43.43[3]

    (3.732e-004s)

    @@ -1387,7 +1387,7 @@

    -

    393.90[4]

    +

    393.90[4]

    (2.673e-002s)

    @@ -1523,7 +1523,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (4.411e-004s)

    @@ -1809,28 +1809,28 @@

    -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. @@ -1839,7 +1839,7 @@


    - + Comparison to the R Statistical Library on Linux
    @@ -1849,7 +1849,7 @@ G++ 4.3.3 using -O3 -DNDEBUG=1.

    -

    Table 55. A Comparison to the R Statistical Library on Linux

    +

    Table 56. A Comparison to the R Statistical Library on Linux

    @@ -1934,7 +1934,7 @@

    -

    30.51[1]

    +

    30.51[1]

    (3.616e-004s)

    @@ -2363,7 +2363,7 @@

    -

    2.20[2]

    +

    2.20[2]

    (3.522e-007s)

    @@ -2592,7 +2592,7 @@

    -

    25.92[3]

    +

    25.92[3]

    (4.407e-004s)

    @@ -2662,7 +2662,7 @@

    -

    144.91[4]

    +

    144.91[4]

    (3.214e-002s)

    @@ -2798,7 +2798,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (5.916e-004s)

    @@ -3084,28 +3084,28 @@

    -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. diff --git a/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html b/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html index a9ef76714..0081042ee 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html @@ -33,7 +33,7 @@ penalty for using the library in debug mode can be quite large.

    -

    Table 50. Performance Comparison of Release and Debug Settings

    +

    Table 51. Performance Comparison of Release and Debug Settings

    diff --git a/doc/sf_and_dist/html/math_toolkit/perf/tuning.html b/doc/sf_and_dist/html/math_toolkit/perf/tuning.html index 37235d960..765c666b2 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/tuning.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/tuning.html @@ -238,7 +238,7 @@ highly vectorisable processors in the future.

    -

    Table 52. A Comparison of Polynomial Evaluation Methods

    +

    Table 53. A Comparison of Polynomial Evaluation Methods

    @@ -638,7 +638,7 @@ tutorial.

    -

    Table 53. Performance Comparison with and Without Internal Promotion to long +

    Table 54. Performance Comparison with and Without Internal Promotion to long double

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index e20b27437..34ea3218f 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

    - + real

    @@ -89,7 +89,7 @@ = 68.1584.

    - + integer_round_outwards

    @@ -143,7 +143,7 @@ in each tail.

    - + integer_round_inwards

    @@ -202,7 +202,7 @@ in each tail.

    - + integer_round_down

    @@ -210,7 +210,7 @@ or a lower quantile.

    - + integer_round_up

    @@ -218,7 +218,7 @@ a lower quantile.

    - + integer_round_nearest

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index be03df14b..4f0ddbee2 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

    - + Available Actions When an Error is Raised
    @@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

    - + throw_on_error

    @@ -174,7 +174,7 @@

    - + errno_on_error

    @@ -289,7 +289,7 @@

    - + ignore_error

    @@ -402,7 +402,7 @@

    - + user_error

    @@ -451,7 +451,7 @@ here.

    - + Kinds of Error Raised
    @@ -691,7 +691,7 @@
    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index 3bbbd017f..efdc65412 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index 0fda57b75..1a0ffa5c4 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

    - + BOOST_MATH_DOMAIN_ERROR_POLICY

    @@ -71,7 +71,7 @@ ignore_error or user_error.

    - + BOOST_MATH_POLE_ERROR_POLICY

    @@ -81,7 +81,7 @@ ignore_error or user_error.

    - + BOOST_MATH_OVERFLOW_ERROR_POLICY

    @@ -91,7 +91,7 @@ ignore_error or user_error.

    - + BOOST_MATH_ROUNDING_ERROR_POLICY

    @@ -101,7 +101,7 @@ ignore_error or user_error.

    - + BOOST_MATH_EVALUATION_ERROR_POLICY

    @@ -111,7 +111,7 @@ ignore_error or user_error.

    - + BOOST_MATH_UNDERFLOW_ERROR_POLICY

    @@ -121,7 +121,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DENORM_ERROR_POLICY

    @@ -131,7 +131,7 @@ ignore_error or user_error.

    - + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

    @@ -142,7 +142,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DIGITS10_POLICY

    @@ -153,7 +153,7 @@ recommended that you change this from the default.

    - + BOOST_MATH_PROMOTE_FLOAT_POLICY

    @@ -165,7 +165,7 @@ off.

    - + BOOST_MATH_PROMOTE_DOUBLE_POLICY

    @@ -177,7 +177,7 @@ off.

    - + BOOST_MATH_DISCRETE_QUANTILE_POLICY

    @@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

    - + BOOST_MATH_ASSERT_UNDEFINED_POLICY

    @@ -201,7 +201,7 @@ whether or not a particular property is well defined.

    - + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

    @@ -210,7 +210,7 @@ Defaults to 1000000.

    - + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

    @@ -219,7 +219,7 @@ Defaults to 200.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index 7ef327c69..08f51a36f 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

    - + Other Rounding Policies are Available
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index db4a55ea9..a7c8396de 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -105,7 +105,7 @@

    - + Testing

    @@ -114,7 +114,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -489,7 +489,7 @@ were found.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index ae3ad8ab3..c067af594 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

    - + Ordinary Bessel Functions
    @@ -103,7 +103,7 @@ and is known as either a Bessel

    - + Modified Bessel Functions
    @@ -167,7 +167,7 @@ respectively:

    - + Spherical Bessel Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index acc6a1563..82bc8a66b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -104,7 +104,7 @@

    - + Testing

    @@ -113,7 +113,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -321,7 +321,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index eb4def6b4..bed5d5efe 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
     
    - + Description

    @@ -92,7 +92,7 @@ for small x:

    - + Testing

    @@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

    - + Accuracy

    @@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index d67720d63..3cf4a17f4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index 5022962bd..08f80e5e8 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index 4191200bf..4d9410a5c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -231,7 +231,7 @@

    - + Testing

    @@ -241,7 +241,7 @@ this implementation.

    - + Implementation

    @@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

    - Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

    are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



    -

    [1] +

    [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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index b76e2cf0c..12a730440 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

    - + Synopsis

    @@ -100,7 +100,7 @@ }} // namespaces

    - + Description

    @@ -216,7 +216,7 @@

    - + Testing

    @@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

    - + Accuracy

    @@ -393,7 +393,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index 6a7961846..8a49f0087 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

    - + Notation

    All variables are real numbers unless otherwise noted.

    - + Definition

    @@ -245,7 +245,7 @@

    - + Duplication Theorem

    @@ -256,7 +256,7 @@

    - + Carlson's Formulas

    @@ -273,7 +273,7 @@

    - + Numerical Algorithms
    @@ -287,7 +287,7 @@ integrals with satisfactory precisions.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index 1755c3912..ab7fb2f10 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -202,7 +202,7 @@ slightly over the range [4,6].

    - + Testing

    @@ -217,7 +217,7 @@ check.

    - + Implementation

    @@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



    -

    [2] +

    [2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index 9db4c0be9..825467d63 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -220,7 +220,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index d29540ab2..06c573c59 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

    - + Accuracy

    @@ -99,14 +99,14 @@ function for larger arguments.

    - + Testing

    The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index fdecd8bc5..40e967878 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

    - + Accuracy

    @@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

    - + Testing

    The spot tests for the double factorial use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index 1db536471..4e70f05ed 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    @@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

    - + Accuracy

    @@ -166,7 +166,7 @@ will be the same as for tgamma.

    - + Testing

    @@ -175,7 +175,7 @@ function handle those cases already.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index 1ca34d460..f4f78a3b8 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

    - + Accuracy

    @@ -79,14 +79,14 @@ function.

    - + Testing

    The spot tests for the falling factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index 99432831c..9cf735a47 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

    - + Accuracy

    @@ -83,14 +83,14 @@ function.

    - + Testing

    The spot tests for the rising factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index dc7e88962..25b218380 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -85,7 +85,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index cc7d3c65b..cb9c4ce8a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -80,7 +80,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index 89ac27369..e4363e3fa 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index f640e5a89..8159736b9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

    - + Accuracy

    @@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index 6511be984..cd2710a06 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

    - + Synopsis

    @@ -49,7 +49,7 @@ }}

    - + Rationale and Usage
    @@ -91,7 +91,7 @@ Only 3 different products were actually computed.

    - + Return Type

    @@ -112,7 +112,7 @@

    - + Policies

    @@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Error Handling
    @@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
    - + Acknowledgements

    @@ -238,7 +238,7 @@ improving the implementation.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index cbf8c4d00..9c9fd69c9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

    - + Accuracy

    @@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index 3079f0f16..28584c679 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index c6c077804..f5b018bcc 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

    - + Accuracy

    @@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index 868723772..42887e456 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

    - + Accuracy

    Should have approximately 2-3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index 486921988..12fc085c4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

    - + Accuracy

    @@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index 90c834759..3115d0285 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Almost identical to the incomplete beta function ibeta.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index 761da33e3..e1b4b512e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

    - + Accuracy

    @@ -239,7 +239,7 @@ very small.

    - + Testing

    @@ -248,7 +248,7 @@ at 1000-bit precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index 8a1afda78..1c19d6b0d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -158,7 +158,7 @@

    - + Accuracy

    @@ -865,7 +865,7 @@


    - + Testing

    @@ -883,7 +883,7 @@ have test data that is fully independent of the code.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index aeb1e106a..8e85f769b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

    - + Description

    @@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -300,7 +300,7 @@ or 1.

    - + Testing

    @@ -324,7 +324,7 @@

    - + Implementation of ibeta_inv and ibetac_inv
    @@ -492,7 +492,7 @@ rapidly converges on the true value.

    - + Implementation of inverses on the a and b parameters
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index 8e7bfd99f..931583c3b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
    - + Synopsis

    @@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -100,7 +100,7 @@
               
             

    - + Accuracy

    @@ -525,7 +525,7 @@

    - + Testing

    @@ -540,7 +540,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index edb79bfce..fca1efd13 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

    - + Synopsis

    @@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -98,7 +98,7 @@
               
             

    - + Accuracy

    @@ -108,7 +108,7 @@ error functions.

    - + Testing

    @@ -131,7 +131,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index 1151bc84b..a8289236d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -77,7 +77,7 @@ T otherwise.

    - + Accuracy

    @@ -265,7 +265,7 @@ absolute error will remain very low.

    - + Testing

    @@ -275,7 +275,7 @@ see below).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index 8b7c524b9..f56888610 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -75,7 +75,7 @@ otherwise the return type is simply T1.

    - + Accuracy

    @@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index 68c72ef0f..1b595b198 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

    - + Description
    template <class T1, class T2> 
    @@ -107,7 +107,7 @@
               
             

    - + Accuracy

    @@ -317,7 +317,7 @@

    - + Testing

    @@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index 6d1290024..89a4b39e5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -155,7 +155,7 @@

    - + Accuracy

    @@ -823,7 +823,7 @@

    - + Testing

    @@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

    - + Implementation

    @@ -1008,7 +1008,7 @@ by Temme (see references below).

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index 4faf99c64..d379b59fa 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -168,7 +168,7 @@ 0.

    - + Accuracy

    @@ -182,7 +182,7 @@ functions.

    - + Testing

    @@ -206,7 +206,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index ee91bb5a5..71c4bd582 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description

    @@ -93,7 +93,7 @@ T otherwise.

    - + Accuracy

    @@ -344,7 +344,7 @@

    - + Testing

    @@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index 08a525596..8146fe2f5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    template <class T>
    @@ -119,7 +119,7 @@
               it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
             

    - + Accuracy

    @@ -374,7 +374,7 @@

    - + Testing

    @@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index f85aa6510..64eafbcdc 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

    - + Synopsis

    @@ -51,7 +51,7 @@ }} // namespaces

    - + Description

    @@ -131,7 +131,7 @@

    - + Accuracy

    @@ -248,7 +248,7 @@ is very close to a root.

    - + Testing

    @@ -258,7 +258,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index 818e64fe7..1ac7d8088 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -62,7 +62,7 @@ }} // namespaces

    - + Description

    @@ -205,7 +205,7 @@

    - + Accuracy

    @@ -422,7 +422,7 @@ is very close to a root.

    - + Testing

    @@ -432,7 +432,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index 06bdc9f84..073fd349a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -295,7 +295,7 @@
     
     
     
    - + Accuracy

    @@ -676,7 +676,7 @@ given here.

    - + Testing

    @@ -686,7 +686,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index b690e382c..d2a34a6c9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

    - + Synopsis

    @@ -60,7 +60,7 @@ }} // namespaces

    - + Description

    @@ -150,7 +150,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

    - + Testing

    @@ -281,7 +281,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index 945376c17..f50c80527 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

    - + Synopsis

    @@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -80,7 +80,7 @@
               
             

    - + Accuracy

    @@ -229,7 +229,7 @@

    - + Testing

    @@ -244,7 +244,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/status/credits.html b/doc/sf_and_dist/html/math_toolkit/status/credits.html index 8f3ae32e3..5a1795dc7 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/credits.html +++ b/doc/sf_and_dist/html/math_toolkit/status/credits.html @@ -7,7 +7,6 @@ - @@ -20,7 +19,7 @@


    -PrevUpHomeNext +PrevUpHome

    @@ -53,7 +52,18 @@ code.

    - Johan Råde wrote the optimised floating point classification code. + Johan Råde wrote the optimised floating-point classification and manipulation + code, and nonfinite facets to permit C99 output of infinities and NaNs. (nonfinite + facets were not added until Boost 1.47 but had been in use with Boost.Spirit). + This library was based on a suggestion from Robert Ramey, author of Boost.Serialization. + Paul A. Bristow expressed the need for better handling of Input + & Output of NaN and infinity for the C++ Standard Library and + suggested following the C99 format. +

    +

    + Håkan Ardö, Boris Gubenko, John Maddock, Markus Schöpflin and Olivier Verdier + tested the floating-point library and Martin Bonner, Peter Dimov and John + Maddock provided valuable advice.

    Gautam Sewani coded the logistic distribution as part of a Google Summer @@ -114,7 +124,7 @@


    -PrevUpHomeNext +PrevUpHome
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index 6a1defcbe..02f59eba0 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -26,8 +26,25 @@ +

    + + Boost-1.47 +
    +
      +
    • + Added changesign function to sign.hpp to facilitate addition of nonfinite + facets. +
    • +
    • + Addition of nonfinite facetsfrom Johan Rade, with tests, examples of + use for C99 format infinity and NaN, and documentation. +
    • +
    • + Added tests and documentation of changesign from Johan Rade. +
    • +
    - + Boost-1.46.1
    • @@ -35,7 +52,7 @@ #5113.
    - + Boost-1.46.0
      @@ -46,11 +63,11 @@ Added information about configuration macros.
    • - Added support for mpreal as a real-numered type. + Added support for mpreal as a real-numbered type.
    - + Boost-1.45.0
      @@ -67,7 +84,7 @@
    - + Boost-1.44.0
      @@ -81,7 +98,7 @@
    - + Boost-1.41.0
    • @@ -89,7 +106,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -126,7 +143,7 @@
    - + Boost-1.38.0
      @@ -138,14 +155,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -178,7 +195,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -210,7 +227,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -224,7 +241,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -252,7 +269,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -288,7 +305,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index abb5a23ec..b6b6670b0 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

    - + tgamma
    • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
    - + Incomplete Beta
    • @@ -56,7 +56,7 @@ b (medium priority).
    - + Inverse Gamma
    • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
    - + Polynomials
    • @@ -74,7 +74,7 @@ not (Low Priority).
    - + Elliptic Integrals
      @@ -127,7 +127,7 @@
    - + Inverse Hyperbolic Functions
    @@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
    - + Statistical distributions
    @@ -146,7 +146,7 @@ for very large degrees of freedom?
    - + Feature Requests

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index e198abad0..62a50ed86 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -78,7 +78,7 @@ }}} // namespaces

    - + Description

    @@ -178,7 +178,7 @@ a continued fraction for convergence.

    - + Implementation

    @@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index 1f3afbb53..f3bd6c1bb 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

    - + Synopsis

    @@ -59,7 +59,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index dfb953e50..1195afa48 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

    - + synopsis

    @@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

    - + Description

    @@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index e458a2ac5..fb18d72fc 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

    - + synopsis

    @@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

    - + Description

    @@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index 54faa242b..2dc34331e 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

    - + Synopsis

    @@ -62,7 +62,7 @@ }}} // namespaces

    - + Description

    @@ -206,7 +206,7 @@

    - + Newton Raphson Method
    @@ -224,7 +224,7 @@ iteration.

    - + Halley's Method
    @@ -246,7 +246,7 @@ iteration.

    - + Schroeder's Method
    @@ -270,7 +270,7 @@ iteration.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index c87376b51..8cdaa9ad7 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

    - + Synopsis

    @@ -144,7 +144,7 @@ }}} // namespaces

    - + Description

    @@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

    - + Bisection
    template <class F, class T, class Tol>
    @@ -280,7 +280,7 @@
               tol was satisfied.
             

    - + Bracket and solve
    @@ -388,7 +388,7 @@ was satisfied.

    - + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
    @@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index 25c5d2519..b6b7b89a9 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -70,7 +70,7 @@ }}} // namespaces

    - + Description

    @@ -127,7 +127,7 @@ summation in this way.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index b89070010..3b1b6bcd8 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

    - + Synopsis

    @@ -38,7 +38,7 @@

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index 32f45bd60..0c3c663db 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

    - + Synopsis

    @@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

    - + Description
    template <class T>
    @@ -157,7 +157,7 @@
               is mainly a debugging/development aid (and a good place for a breakpoint).
             

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index e3fbda1d9..abaaa2f63 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

    - + Synopsis

    @@ -103,7 +103,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index 6bc4107e3..8ca3343e6 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

    - + Synopsis
    namespace boost{ namespace math{ namespace tools{
    @@ -147,7 +147,7 @@
     }}} // namespaces
     
    - + Description

    @@ -177,7 +177,7 @@

    - + Example 1: Output Data for Graph Plotting
    @@ -211,7 +211,7 @@

    - + Example 2: Creating Test Data
    @@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

    - + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
    @@ -482,7 +482,7 @@ of a and z.

    - + reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index e0ff0dd4f..68b731f12 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@

    - + Real concept

    @@ -84,7 +84,7 @@ declaration.

    - + Testing the real concept

    @@ -130,7 +130,7 @@ double, also tests real_concept.

    - + Distribution Concept

    @@ -166,7 +166,7 @@ class for distribution types.

    - + Testing the distribution concept

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index 0e42658d6..cf1f393d1 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

    - + Basic Arithmetic Requirements
    @@ -1035,7 +1035,7 @@
    - + Standard Library Support Requirements
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils.html b/doc/sf_and_dist/html/math_toolkit/utils.html index f8f328187..087edfd31 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils.html +++ b/doc/sf_and_dist/html/math_toolkit/utils.html @@ -36,9 +36,11 @@ Part Splitting (modf)
    Floating-Point Classification: - Infinities and NaN's
    + Infinities and NaNs
    Sign Manipulation Functions
    +
    Facets for Floating-Point + Infinities and NaNs
    Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index 58e0b36af..18280a87b 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -1,7 +1,7 @@ -Floating-Point Classification: Infinities and NaN's +Floating-Point Classification: Infinities and NaNs @@ -24,11 +24,11 @@
    - + Synopsis
    #define FP_ZERO        /* implementation specific value */
    @@ -58,7 +58,7 @@
             to use these functions.
           

    - + Description

    @@ -216,6 +216,23 @@ Returns true only if z is a normal number (not zero, infinite, NaN, or denormalised).

    +
    + + Floating-point + format +
    +

    + If you wish to find details of the floating-point format for any particular + processor, there is a program +

    +

    + 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. +

    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float.html index beb06b058..831f5121e 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float.html @@ -6,7 +6,7 @@ - + @@ -20,7 +20,7 @@

    -PrevUpHomeNext +PrevUpHomeNext

    @@ -46,7 +46,8 @@

    Most decimal values, for example 0.1, cannot be exactly represented as floating-point - values, but will be stored as the closest representable floating-point. + values, but will be stored as the closest + representable floating-point.

    Functions are provided for finding adjacent greater and lesser floating-point @@ -76,7 +77,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index 27a79e0d9..7939720bb 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

    - + Synopsis

    @@ -50,7 +50,7 @@ }} // namespaces

    - + Description - float_advance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index f377023ee..903df2b80 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

    - + Synopsis

    @@ -52,7 +52,7 @@ }} // namespaces

    - + Description - float_distance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index ad847db51..cc70947a8 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_next
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index 9adf6b1cd..200fbcc01 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_prior
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index f803e8e67..95844a587 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - nextafter
    @@ -76,7 +76,7 @@ returns an overflow_error.

    - + Examples - nextafter
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/rounding/modf.html b/doc/sf_and_dist/html/math_toolkit/utils/rounding/modf.html index 051ec51b7..bd38b4e12 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/rounding/modf.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/rounding/modf.html @@ -7,7 +7,7 @@ - + diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index 42e002878..5abbb35df 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -6,8 +6,8 @@ - - + +
    @@ -20,7 +20,7 @@

    -PrevUpHomeNext +PrevUpHomeNext

    @@ -28,7 +28,7 @@ Functions

    - + Synopsis

    @@ -49,10 +49,13 @@ template <class T> inline T copysign (const T& x, const T& y); +template <class T> +inline T changesign (const T& z); + }} // namespaces

    - + Description
    template<class T> 
    @@ -66,12 +69,11 @@
     inline int sign (const T& z);
     

    - Returns 1 if x - > 0, + Returns 1 if x + > 0, -1 - if x < - 0, and 0 - if x is zero. + if x < 0, and 0 + if x is zero.

    template <class T>
     inline T copysign (const T& x, const T& y);
    @@ -79,6 +81,151 @@
     

    Sets the sign of x to be the same as the sign of y.

    +

    + See C99 + 7.12.11.1 The copysign functions for more detail. +

    +
    template <class T>
    +inline 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, infinities + and NaNs, the changesign(x) function + may be the only portable way to ensure that the sign bit is changed. +

    +
    + + 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.) +

    +

    + 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. +

    +
    + + 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
    +
    +
    + + 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) +
    • +
    @@ -92,7 +239,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    From ce3c4d20c79756b365285aef0d1b43e7bc970444 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Fri, 15 Apr 2011 14:42:50 +0000 Subject: [PATCH 33/82] Added new nonfinite facets examples. [SVN r71284] --- example/lexical_cast_native.cpp | 121 +++++++ example/lexical_cast_nonfinite_facets.cpp | 127 ++++++++ example/nonfinite_facet_simple.cpp | 234 ++++++++++++++ example/nonfinite_facet_sstream.cpp | 132 ++++++++ example/nonfinite_legacy.cpp | 91 ++++++ example/nonfinite_loopback_ok.cpp | 70 ++++ example/nonfinite_num_facet.cpp | 255 +++++++++++++++ example/nonfinite_num_facet_serialization.cpp | 302 ++++++++++++++++++ example/nonfinite_serialization_archives.cpp | 126 ++++++++ example/test_nonfinite_loopback.cpp | 97 ++++++ 10 files changed, 1555 insertions(+) create mode 100644 example/lexical_cast_native.cpp create mode 100644 example/lexical_cast_nonfinite_facets.cpp create mode 100644 example/nonfinite_facet_simple.cpp create mode 100644 example/nonfinite_facet_sstream.cpp create mode 100644 example/nonfinite_legacy.cpp create mode 100644 example/nonfinite_loopback_ok.cpp create mode 100644 example/nonfinite_num_facet.cpp create mode 100644 example/nonfinite_num_facet_serialization.cpp create mode 100644 example/nonfinite_serialization_archives.cpp create mode 100644 example/test_nonfinite_loopback.cpp diff --git a/example/lexical_cast_native.cpp b/example/lexical_cast_native.cpp new file mode 100644 index 000000000..eabcbc965 --- /dev/null +++ b/example/lexical_cast_native.cpp @@ -0,0 +1,121 @@ +/** lexical_cast_nonfinite_facets.cpp +* +* Copyright (c) 2011 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) +* +* This very simple program illustrates how to use the +* `boost/math/nonfinite_num_facets.hpp' with lexical cast +* to obtain C99 representation of infinity and NaN. +* This example is from the original Floating Point Utilities contribution by Johan Rade. +* Floating Point Utility library has been accepted into Boost, +* but the utilities are incorporated into Boost.Math library. +* +\file + +\brief A very simple example of using lexical cast with +non_finite_num facet for C99 standard output of infinity and NaN. + +\detail This example shows how to create a C99 non-finite locale, +and imbue input and output streams with the non_finite_num put and get facets. +This allows lexical_cast output and input of infinity and NaN in a Standard portable way, +This permits 'loop-back' of output back into input (and portably across different system too). + +*/ + +#include +using boost::math::nonfinite_num_get; +using boost::math::nonfinite_num_put; + +#include +using boost::lexical_cast; + +#include +using std::cout; +using std::endl; +using std::cerr; + +#include +using std::setw; +using std::left; +using std::right; +using std::internal; + +#include +using std::string; + +#include +using std::istringstream; + +#include +using std::numeric_limits; + +#include +using std::locale; + +#include + +int main () +{ + std::cout << "lexical_cast example (NOT using finite_num_facet)." << std::endl; + + // Some tests that are expected to fail on some platforms. + // (But these tests are expected to pass using non_finite num_put and num_get facets). + + // Use the current 'native' default locale. + std::locale default_locale (std::locale::classic ()); // Note the currrent (default C) locale. + + // Create plus and minus infinity. + double plus_infinity = +std::numeric_limits::infinity(); + double minus_infinity = -std::numeric_limits::infinity(); + + // and create a NaN (NotANumber). + double NaN = +std::numeric_limits::quiet_NaN (); + + // Output the nonfinite values using the current (default C) locale. + // The default representations differ from system to system, + // for example, using Microsoft compilers, 1.#INF, -1.#INF, and 1.#QNAN. + cout << "Using default locale" << endl; + cout << "+std::numeric_limits::infinity() = " << plus_infinity << endl; + cout << "-std::numeric_limits::infinity() = " << minus_infinity << endl; + cout << "+std::numeric_limits::quiet_NaN () = " << NaN << endl; + + // Checks below are expected to fail on some platforms! + + // Now try some 'round-tripping', 'reading' "inf" + double x = boost::lexical_cast("inf"); + // and check we get a floating-point infinity. + BOOST_ASSERT(x == std::numeric_limits::infinity()); + + // Check we can convert the other way from floating-point infinity, + string s = boost::lexical_cast(numeric_limits::infinity()); + // to a C99 string representation as "inf". + BOOST_ASSERT(s == "inf"); + + // Finally try full 'round-tripping' (in both directions): + BOOST_ASSERT(lexical_cast(lexical_cast(numeric_limits::infinity())) + == numeric_limits::infinity()); + BOOST_ASSERT(lexical_cast(lexical_cast("inf")) == "inf"); + + return 0; +} // int main() + +/* + +Output: + +from MSVC 10, fails (as expected) + + lexical_cast_native.vcxproj -> J:\Cpp\fp_facet\fp_facet\Debug\lexical_cast_native.exe + lexical_cast example (NOT using finite_num_facet). + Using default locale + +std::numeric_limits::infinity() = 1.#INF + -std::numeric_limits::infinity() = -1.#INF + +std::numeric_limits::quiet_NaN () = 1.#QNAN +C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: The command ""J:\Cpp\fp_facet\fp_facet\Debug\lexical_cast_native.exe" +C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: :VCEnd" exited with code 3. + + +*/ \ No newline at end of file diff --git a/example/lexical_cast_nonfinite_facets.cpp b/example/lexical_cast_nonfinite_facets.cpp new file mode 100644 index 000000000..b85fbf6f3 --- /dev/null +++ b/example/lexical_cast_nonfinite_facets.cpp @@ -0,0 +1,127 @@ +/** lexical_cast_nonfinite_facets.cpp +* +* Copyright (c) 2011 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) +* +* This very simple program illustrates how to use the +* `boost/math/nonfinite_num_facets.hpp' with lexical cast +* to obtain C99 representation of infinity and NaN. +* This example is from the original Floating Point Utilities contribution by Johan Rade. +* Floating Point Utility library has been accepted into Boost, +* but the utilities are incorporated into Boost.Math library. +* +\file + +\brief A very simple example of using lexical cast with +non_finite_num facet for C99 standard output of infinity and NaN. + +\detail This example shows how to create a C99 non-finite locale, +and imbue input and output streams with the non_finite_num put and get facets. +This allows lexical_cast output and input of infinity and NaN in a Standard portable way, +This permits 'loop-back' of output back into input (and portably across different system too). + +See also lexical_cast_native.cpp which is expected to fail on many systems, +but might succeed if the default locale num_put and num_get facets +comply with C99 nonfinite input and output specification. + +*/ + +#include +using boost::math::nonfinite_num_get; +using boost::math::nonfinite_num_put; + +#include +using boost::lexical_cast; + +#include +using std::cout; +using std::endl; +using std::cerr; + +#include +using std::setw; +using std::left; +using std::right; +using std::internal; + +#include +using std::string; + +#include +using std::istringstream; + +#include +using std::numeric_limits; + +#include +using std::locale; + +#include + +int main () +{ + std::cout << "finite_num_facet with lexical_cast example." << std::endl; + + // Example of using non_finite num_put and num_get facets with lexical_cast. + locale old_locale; + locale tmp_locale(old_locale, new nonfinite_num_put); + // Create a new temporary output locale, and add the output nonfinite_num_put facet. + + locale new_locale(tmp_locale, new nonfinite_num_get); + // Create a new output locale (from the tmp locale), and add the input nonfinite_num_get facet. + + // Note that is necessary to do add get and put facets in two steps. + + locale::global(new_locale); // Newly constructed streams + // (including those streams inside lexical_cast) + // now use new_locale with nonfinite facets. + + // Output using the new locale. + cout << "Using C99_out_locale " << endl; + cout.imbue(new_locale); + // Necessary because cout already constructed using default C locale, + // and default facets for nonfinites. + + // Create plus and minus infinity. + double plus_infinity = +std::numeric_limits::infinity(); + double minus_infinity = -std::numeric_limits::infinity(); + + // and create a NaN (NotANumber) + double NaN = +std::numeric_limits::quiet_NaN (); + cout << "+std::numeric_limits::infinity() = " << plus_infinity << endl; + cout << "-std::numeric_limits::infinity() = " << minus_infinity << endl; + cout << "+std::numeric_limits::quiet_NaN () = " << NaN << endl; + + // Now try some 'round-tripping', 'reading' "inf" + double x = boost::lexical_cast("inf"); + // and check we get a floating-point infinity. + BOOST_ASSERT(x == std::numeric_limits::infinity()); + + // Check we can convert the other way from floating-point infinity, + string s = boost::lexical_cast(numeric_limits::infinity()); + // to a C99 string representation as "inf". + BOOST_ASSERT(s == "inf"); + + // Finally try full 'round-tripping' (in both directions): + BOOST_ASSERT(lexical_cast(lexical_cast(numeric_limits::infinity())) + == numeric_limits::infinity()); + BOOST_ASSERT(lexical_cast(lexical_cast("inf")) == "inf"); + + return 0; +} // int main() + +/* + +Output: + + finite_num_facet with lexical_cast example. + Using C99_out_locale + +std::numeric_limits::infinity() = inf + -std::numeric_limits::infinity() = -inf + +std::numeric_limits::quiet_NaN () = nan + + +*/ \ No newline at end of file diff --git a/example/nonfinite_facet_simple.cpp b/example/nonfinite_facet_simple.cpp new file mode 100644 index 000000000..0d7596a79 --- /dev/null +++ b/example/nonfinite_facet_simple.cpp @@ -0,0 +1,234 @@ +/** nonfinite_num_facet.cpp +* +* Copyright (c) 2011 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) +* +* This very simple program illustrates how to use the +* `boost/math/nonfinite_num_facets.hpp' to obtain C99 +* representation of infinity and NaN. +* (from the original +* Floating Point Utilities contribution by Johan Rade. +* Floating Point Utility library has been accepted into Boost, +* but the utilities are incorporated into Boost.Math library. +* +\file + +\brief A very simple example of using non_finite_num facet for +C99 standard output of infinity and NaN. + +\detail This example shows how to create a C99 non-finite locale, +and imbue input and output streams with the non_finite_num put and get facets. +This allow output and input of infinity and NaN in a Standard portable way, +This permits 'loop-back' of output back into input (and portably across different system too). +This is particularly useful when used with Boost.Seralization so that non-finite NaNs and infinity +values in text and xml archives can be handled correctly and portably. + +*/ + +#include +using std::cout; +using std::endl; +using std::cerr; + +#include +using std::setw; +using std::left; +using std::right; +using std::internal; + +#include +using std::string; + +#include +using std::istringstream; + +#include + +#include +// from Johan Rade Floating Point Utilities. + +int main () +{ + std::cout << "Nonfinite_num_facet very simple example." << std::endl; + + std::locale default_locale (std::locale::classic ()); // Note the currrent (default C) locale. + + // Create plus and minus infinity. + double plus_infinity = +std::numeric_limits::infinity(); + double minus_infinity = -std::numeric_limits::infinity(); + + // and create a NaN (NotANumber) + double NaN = +std::numeric_limits::quiet_NaN (); + + // Output the nonfinite values using the current (default C) locale. + // The default representations differ from system to system, + // for example, using Microsoft compilers, 1.#INF, -1.#INF, and 1.#QNAN. + cout << "Using C locale" << endl; + cout << "+std::numeric_limits::infinity() = " << plus_infinity << endl; + cout << "-std::numeric_limits::infinity() = " << minus_infinity << endl; + cout << "+std::numeric_limits::quiet_NaN () = " << NaN << endl; + + // Create a new output locale, and add the nonfinite_num_put facet + std::locale C99_out_locale (default_locale, new boost::math::nonfinite_num_put); + // and imbue the cout stream with the new locale. + cout.imbue (C99_out_locale); + + // Output using the new locale + cout << "Using C99_out_locale " << endl; + cout << "+std::numeric_limits::infinity() = " << plus_infinity << endl; + cout << "-std::numeric_limits::infinity() = " << minus_infinity << endl; + cout << "+std::numeric_limits::quiet_NaN () = " << NaN << endl; + + + // Create a string with the expected C99 representation of plus infinity. + std::string inf = "inf"; + { // Try to read an infinity value using the default C locale. + // Create an input stream which will provide "inf" + std::istringstream iss (inf); + + // Create a double ready to take the input, + double infinity; + // and read "inf" from the stringstream: + iss >> infinity; + + // This will not work on all platforms! + if (! iss) + { // Reading infinity went wrong! + std::cerr << "C locale input format error!" << std::endl; + } + } // Using default C locale. + + { // Now retry using C99 facets. + // Create a new input locale and add the nonfinite_num_get facet. + std::locale C99_in_locale (default_locale, new boost::math::nonfinite_num_get); + // imbue the stream with the C99 input locale. + // Create an input stream which will provide "inf" + std::istringstream iss (inf); + iss.imbue (C99_in_locale); + + // Create a double ready to take the input, + double infinity; + // and read from the stringstream: + iss >> infinity; + + if (! iss) + { // Reading infinity went wrong! + std::cout << "C99 input format error!" << std::endl; + } + // Expect to get an infinity, which will display still using the C99 locale as "inf" + cout << "infinity in C99 representation is " << infinity << endl; + + // To check, we can switch back to the default C locale. + cout.imbue (default_locale); + cout << "infinity in default C representation is " << infinity << endl; + } // using C99 locale. + + { + // A 'loop-back example, output to a stringstream, and reading it back in. + // Create C99 input and output locales. + std::locale C99_out_locale (default_locale, new boost::math::nonfinite_num_put); + std::locale C99_in_locale (default_locale, new boost::math::nonfinite_num_get); + + std::ostringstream oss; + oss.imbue(C99_out_locale); + oss << plus_infinity; + + std::istringstream iss(oss.str()); // So stream contains "inf". + iss.imbue (C99_in_locale); + + std::string s; + + iss >> s; + + cout.imbue(C99_out_locale); + if (oss.str() != s) + { + cout << plus_infinity << " != " << s << " loopback failed!" << endl; + } + else + { + cout << plus_infinity << " == " << s << " as expected." << endl; + } + } + + + // Example varying the width and position of the nonfinite representations. + // With the nonfinite_num_put and _get facets, the width of the output is constant. + + #ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST + std::streamsize max_digits10 = 2 + numeric_limits::digits * 30103UL / 100000UL; + cout << "BOOST_NO_NUMERIC_LIMITS_LOWEST is defined." << endl; +#else + // Can use new C++0X max_digits10 (the maximum potentially significant digits). + std::streamsize max_digits10 = std::numeric_limits::max_digits10; +#endif + cout << "std::numeric_limits::max_digits10 is " << max_digits10 << endl; + cout.precision(max_digits10); + + double pi = 3.141592653589793238462643383279502884197169399375105820974944; + // Expect 17 (probably) decimal digits (regardless of locale). + // cout has the default locale. + cout << "pi = " << pi << endl; // pi = 3.1415926535897931 + cout.imbue (C99_out_locale); // Use cout with the C99 locale + // (expect the same output for a double). + cout << "pi = " << pi << endl; // pi = 3.1415926535897931 + + cout << "infinity in C99 representation is " << plus_infinity << endl; + + //int width = 2; // Check effect if width too small is OK. + // (There was a disturbed layout on older MSVC?). + int width = 20; + + // Similarly if we can switch back to the default C locale. + cout.imbue (default_locale); + cout << "infinity in default C representation is " << plus_infinity << endl; + cout << "infinity in default C representation (setw(" << width << ") is " << setw(width) << plus_infinity <<'|' << endl; + cout << "infinity in default C representation (setw(" << width << ") is " << left << setw(width) << plus_infinity <<'|' << endl; + cout << "infinity in default C representation (setw(" << width << ") is " << internal << setw(width) << plus_infinity <<'|' << endl; + + cout.imbue (C99_out_locale); + cout << "infinity in C99 representation (setw(" << width << ") is " << right << setw(width) << plus_infinity <<'|'<< endl; + cout << "infinity in C99 representation (setw(" << width << ") is " << left << setw(width) << plus_infinity <<'|'<< endl; + cout << "infinity in C99 representation (setw(" << width << ") is " << internal << setw(width) << plus_infinity <<'|'<< endl; + + return 0; +} // int main() + +// end of test_nonfinite_num_facets.cpp + +/* + +Output: + +simple_nonfinite_facet.vcxproj -> J:\Cpp\MathToolkit\test\Math_test\Release\nonfinite_facet_simple.exe + Nonfinite_num_facet very simple example. + Using C locale + +std::numeric_limits::infinity() = 1.#INF + -std::numeric_limits::infinity() = -1.#INF + +std::numeric_limits::quiet_NaN () = 1.#QNAN + Using C99_out_locale + +std::numeric_limits::infinity() = inf + -std::numeric_limits::infinity() = -inf + +std::numeric_limits::quiet_NaN () = nan + infinity in C99 representation is inf + infinity in default C representation is 1.#INF + 3 + 3 + inf == inf as expected. + std::numeric_limits::max_digits10 is 17 + pi = 3.1415926535897931 + C locale input format error! + pi = 3.1415926535897931 + infinity in C99 representation is inf + infinity in default C representation is 1.#INF + infinity in default C representation (setw(20) is 1.#INF| + infinity in default C representation (setw(20) is 1.#INF | + infinity in default C representation (setw(20) is 1.#INF| + infinity in C99 representation (setw(20) is inf| + infinity in C99 representation (setw(20) is inf | + infinity in C99 representation (setw(20) is inf| + +*/ \ No newline at end of file diff --git a/example/nonfinite_facet_sstream.cpp b/example/nonfinite_facet_sstream.cpp new file mode 100644 index 000000000..49b1d7439 --- /dev/null +++ b/example/nonfinite_facet_sstream.cpp @@ -0,0 +1,132 @@ +// nonfinite_facet_sstream.cpp + +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +// Copyright (c) 2006 Johan Rade +// Copyright (c) 2011 Paul A. Bristow + +/*! +\file +\brief Examples of nonfinite with output and input facets and stringstreams. + +\detail Contruct a new locale with the nonfinite_num_put and nonfinite_num_get +facets and imbue istringstream, ostringstream and stringstreams, +showing output and input (and loopback for the stringstream). + +*/ + +#include +using boost::math::nonfinite_num_put; +using boost::math::nonfinite_num_get; + +using boost::math::legacy; + +#include +using std::cout; +using std::endl; +#include +using std::locale; + +#include + using std::stringstream; + using std::istringstream; + using std::ostringstream; + +#include +using std::numeric_limits; + +#include + +int main() +{ +//[nonfinite_facets_sstream_1 + locale old_locale; + locale tmp_locale(old_locale, new nonfinite_num_put); + locale new_locale(tmp_locale, new nonfinite_num_get); +//] [/nonfinite_facets_sstream_1] + + // Note that to add two facets, nonfinite_num_put and nonfinite_num_get, + // you have to add one at a time, using a temporary locale. + + { + ostringstream oss; + oss.imbue(new_locale); + double inf = numeric_limits::infinity(); + oss << inf; // Write out. + cout << "infinity output was " << oss.str() << endl; + assert(oss.str() == "inf"); + } + { + istringstream iss; + iss.str("inf"); + iss.imbue(new_locale); + double inf; + iss >> inf; // Read from "inf" + cout << "Infinity input was " << iss.str() << endl; + assert(inf == numeric_limits::infinity()); + } + + { +//[nonfinite_facets_sstream_2 + stringstream ss; + ss.imbue(new_locale); + double inf = numeric_limits::infinity(); + ss << inf; // Write out. + assert(ss.str() == "inf"); + double r; + ss >> r; // Read back in. + assert(inf == r); // Confirms that the double values really are identical. + + cout << "infinity output was " << ss.str() << endl; + cout << "infinity input was " << r << endl; + // But the string representation of r displayed will be the native type + // because, when it was constructed, cout had NOT been imbued + // with the new locale containing the nonfinite_numput facet. + // So the cout output will be "1.#INF on MS platforms + // and may be "inf" or other string representation on other platforms. + +//] [/nonfinite_facets_sstream_2] + } + + { + stringstream ss; + ss.imbue(new_locale); + + double nan = numeric_limits::quiet_NaN(); + ss << nan; // Write out. + assert(ss.str() == "nan"); + + double v; + ss >> v; // Read back in. + + cout << "NaN output was " << ss.str() << endl; + cout << "NaN input was " << v << endl; + + // assert(nan == v); // Always fails because NaN == NaN fails! + // assert(nan == numeric_limits::quiet_NaN()); asserts! + + // And the string representation will be the native type + // because cout has NOT been imbued with a locale containing + // the nonfinite_numput facet. + // So the output will be "1.#QNAN on MS platforms + // and may be "nan" or other string representation on other platforms. + } + +} // int main() + + +/* +//[nonfinite_facet_sstream_output + + infinity output was inf + Infinity input was inf + infinity output was inf + infinity input was 1.#INF + NaN output was nan + NaN input was 1.#QNAN + +//] [nonfinite_facet_sstream_output] +*/ + diff --git a/example/nonfinite_legacy.cpp b/example/nonfinite_legacy.cpp new file mode 100644 index 000000000..281dde098 --- /dev/null +++ b/example/nonfinite_legacy.cpp @@ -0,0 +1,91 @@ +// nonfinite_legacy.cpp + +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +// Copyright (c) 2006 Johan Rade +// Copyright (c) 2011 Paul A. Bristow + +/*! +\file +\brief Basic tests of nonfinite loopback with output and input facet. + +\detail Basic loopback test outputs using the so-called 'legacy' facets, +"1.#INF" and "1.#QNAN". + +and reads back in using nonfinite input 'legacy' facet, and +(if possible) checks if loopback OK. + +*/ + +#include +using boost::math::nonfinite_num_put; +using boost::math::nonfinite_num_get; + +using boost::math::legacy; + +#include +using std::cout; +using std::endl; +#include +using std::locale; + +#include + using std::stringstream; +#include +using std::numeric_limits; + +#include + +int main() +{ + + locale old_locale; + locale tmp_locale(old_locale, new nonfinite_num_put(legacy)); + locale new_locale(tmp_locale, new nonfinite_num_get(legacy)); + // Note that to add two facets, nonfinite_num_put and nonfinite_num_get, + // you have to add one at a time, using a temporary locale. + + { + stringstream ss; + ss.imbue(new_locale); + double inf = numeric_limits::infinity(); + ss << inf; // Write out. + double r; + ss >> r; // Read back in. + + cout << "infinity output was " << inf << endl; + cout << "infinity input was " << r << endl; + + assert(inf == r); + } + { + stringstream ss; + ss.imbue(new_locale); + + double nan = numeric_limits::quiet_NaN(); + ss << nan; // Write out. + double v; + ss >> v; // Read back in. + + cout << "NaN output was " << nan << endl; + cout << "NaN input was " << v << endl; + + // assert(nan == v); // Always fails because NaN == NaN fails! + // assert(nan == numeric_limits::quiet_NaN()); asserts! + } + +} // int main() + +/* + +Output: + + infinity output was 1.#INF + infinity input was 1.#INF + NaN output was 1.#QNAN + NaN input was 1.#QNAN + +*/ + diff --git a/example/nonfinite_loopback_ok.cpp b/example/nonfinite_loopback_ok.cpp new file mode 100644 index 000000000..c98de020d --- /dev/null +++ b/example/nonfinite_loopback_ok.cpp @@ -0,0 +1,70 @@ +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +// Copyright (c) 2006 Johan Rade +// Copyright (c) 2011 Paul A. Bristow + +/*! +\file +\brief Basic tests of nonfinite loopback. + +\detail Basic loopback test outputs using nonfinite facets +(output and input) and reads back in, and checks if loopback OK. + +Expected to work portably on all platforms. + +*/ + +#ifdef _MSC_VER +# pragma warning(disable : 4702) +#endif + +#include +using boost::math::nonfinite_num_get; +using boost::math::nonfinite_num_put; + +#include +using std::cout; +using std::endl; + +#include +using std::locale; + +#include + using std::stringstream; +#include +using std::numeric_limits; + +#include + +int main() +{ + locale old_locale; // Current global locale. + // Create tmp_locale and store the output nonfinite_num_put facet in it. + locale tmp_locale(old_locale, new nonfinite_num_put); + // Create new_locale and store the input nonfinite_num_get facet in it. + locale new_locale(tmp_locale, new nonfinite_num_get); + // Seems necessary to add one facet at a time, hence need a tmp_locale. + + stringstream ss; // Both input and output. + ss.imbue(new_locale); + + double inf = numeric_limits::infinity(); + ss << inf; // Write out. + double r; + ss >> r; // Read back in. + + assert(inf == r); // OK MSVC <= 10.0! + +} // int main() + +/* + +Output: + + nonfinite_loopback_ok.vcxproj -> J:\Cpp\fp_facet\fp_facet\Debug\nonfinite_loopback_ok.exe + + +*/ + diff --git a/example/nonfinite_num_facet.cpp b/example/nonfinite_num_facet.cpp new file mode 100644 index 000000000..9c8b2b71f --- /dev/null +++ b/example/nonfinite_num_facet.cpp @@ -0,0 +1,255 @@ +/** nonfinite_num_facet.cpp + * + * Copyright (c) 2011 Francois Mauger + * Copyright (c) 2011 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) + * + * This simple program illustrates how to use the + * `boost/math/nonfinite_num_facets.hpp' material from the original + * Floating Point Utilities by Johan Rade. + + * +\file + +\brief A fairly simple example of using non_finite_num facet for +C99 standard output of infinity and NaN. + +\detail This program illustrates how to use the + `boost/math/nonfinite_num_facets.hpp' material from the original + Floating Point Utilities contribution by Johan Rade. + Floating Point Utility library has been accepted into Boost, + but the utilities have been/will be incorporated into Boost.Math library. + + Based on an example from Francois Mauger. + + double and float variables are assigned ordinary finite values (pi), + and nonfinite like infinity and NaN. + + These values are then output and read back in, and then redisplayed. + +*/ + +#include +using std::cout; +using std::endl; + +//#include +#include // numeric_limits + +#include + +// from Johan Rade Floating Point Utilities : +#include + +static const char sep = ','; + +/* A class with a float and a double */ +struct foo +{ + foo () : fvalue (3.1415927F), dvalue (3.1415926535897931) + { + } + // Set both the values to -infinity : + void minus_infinity () + { + fvalue = -std::numeric_limits::infinity (); + dvalue = -std::numeric_limits::infinity (); + return; + } + // Set the values to +infinity : + void plus_infinity () + { + fvalue = +std::numeric_limits::infinity (); + dvalue = +std::numeric_limits::infinity (); + return; + } + // Set the values to NaN : + void nan () + { + fvalue = +std::numeric_limits::quiet_NaN (); + dvalue = +std::numeric_limits::quiet_NaN (); + return; + } + // Print a foo: + void print (std::ostream & a_out, const std::string & a_title) + { + if (a_title.empty ()) a_out << "foo"; + else a_out << a_title; + a_out << " : " << std::endl; + a_out << "|-- " << "fvalue = "; + // Use max_digits10 to obtain + // all potentially significant decimal digits for the floating-point type. + a_out.precision (std::numeric_limits::max_digits10); + a_out << fvalue << std::endl; + a_out << "`-- " << "dvalue = "; + a_out.precision (std::numeric_limits::max_digits10); + a_out << dvalue << std::endl; + return; + } + + // I/O operators for a foo structure of a float and a double : + friend std::ostream & operator<< (std::ostream & a_out, const foo & a_foo); + friend std::istream & operator>> (std::istream & a_in, foo & a_foo); + + // Attributes : + float fvalue; // Single precision floating number. + double dvalue; // Double precision floating number. +}; + +std::ostream & operator<< (std::ostream & a_out, const foo & a_foo) +{ // Output bracketed FPs, for example "(3.1415927,3.1415926535897931)" + a_out.precision (std::numeric_limits::max_digits10); + a_out << "(" << a_foo.fvalue << sep ; + a_out.precision (std::numeric_limits::max_digits10); + a_out << a_foo.dvalue << ")"; + return a_out; +} + +std::istream & operator>> (std::istream & a_in, foo & a_foo) +{ // Input bracketed FPs, into a foo structure, + // for example from "(3.1415927,3.1415926535897931)" + char c = 0; + a_in.get (c); + if (c != '(') + { + std::cerr << "ERROR: operator>> No ( " << std::endl; + a_in.setstate(std::ios::failbit); + return a_in; + } + float f; + a_in >> std::ws >> f; + if (! a_in) + { + return a_in; + } + a_in >> std::ws; + a_in.get (c); + if (c != sep) + { + std::cerr << "ERROR: operator>> c='" << c << "'" << std::endl; + std::cerr << "ERROR: operator>> No '" << sep << "'" << std::endl; + a_in.setstate(std::ios::failbit); + return a_in; + } + double d; + a_in >> std::ws >> d; + if (! a_in) + { + return a_in; + } + a_in >> std::ws; + a_in.get (c); + if (c != ')') + { + std::cerr << "ERROR: operator>> No ) " << std::endl; + a_in.setstate(std::ios::failbit); + return a_in; + } + a_foo.fvalue = f; + a_foo.dvalue = d; + return a_in; +} // std::istream & operator>> (std::istream & a_in, foo & a_foo) + +int main () +{ + std::cout << "nonfinite_num_facet simple example." << std::endl; + + std::locale the_default_locale (std::locale::classic ()); + + { + std::cout << "Write to a string buffer (using default locale) :" << std::endl; + foo f0; // pi + foo f1; f1.minus_infinity (); + foo f2; f2.plus_infinity (); + foo f3; f3.nan (); + + f0.print (std::cout, "f0"); // pi + f1.print (std::cout, "f1"); // +inf + f2.print (std::cout, "f2"); // -inf + f3.print (std::cout, "f3"); // NaN + + std::ostringstream oss; + std::locale C99_out_locale (the_default_locale, new boost::math::nonfinite_num_put); + oss.imbue (C99_out_locale); + oss.precision (15); + oss << f0 << f1 << f2 << f3; + std::cout << "Output in C99 format is: \"" << oss.str () << "\"" << std::endl; + std::cout << "Output done." << std::endl; + } + + { + std::string the_string = "(3.1415927,3.1415926535897931)(-inf,-inf)(inf,inf)(nan,nan)"; // C99 format + // Must have correct separator! + std::cout << "Read C99 format from a string buffer containing \"" << the_string << "\""<< std::endl; + + std::locale C99_in_locale (the_default_locale, new boost::math::nonfinite_num_get); + std::istringstream iss (the_string); + iss.imbue (C99_in_locale); + + foo f0, f1, f2, f3; + iss >> f0 >> f1 >> f2 >> f3; + if (! iss) + { + std::cout << "Input Format error !" << std::endl; + } + else + { + std::cout << "Input OK." << std::endl; + cout << "Display in default locale format " << endl; + f0.print (std::cout, "f0"); + f1.print (std::cout, "f1"); + f2.print (std::cout, "f2"); + f3.print (std::cout, "f3"); + } + std::cout << "Input done." << std::endl; + } + + std::cout << "End nonfinite_num_facet.cpp" << std::endl; + return 0; +} // int main() + + // end of test_nonfinite_num_facets.cpp + +/* + +Output: + + nonfinite_num_facet.vcxproj -> J:\Cpp\MathToolkit\test\Math_test\Release\nonfinite_num_facet.exe + nonfinite_num_facet simple example. + Write to a string buffer (using default locale) : + f0 : + |-- fvalue = 3.1415927 + `-- dvalue = 3.1415926535897931 + f1 : + |-- fvalue = -1.#INF + `-- dvalue = -1.#INF + f2 : + |-- fvalue = 1.#INF + `-- dvalue = 1.#INF + f3 : + |-- fvalue = 1.#QNAN + `-- dvalue = 1.#QNAN + Output in C99 format is: "(3.1415927,3.1415926535897931)(-inf,-inf)(inf,inf)(nan,nan)" + Output done. + Read C99 format from a string buffer containing "(3.1415927,3.1415926535897931)(-inf,-inf)(inf,inf)(nan,nan)" + Display in default locale format + f0 : + |-- fvalue = 3.1415927 + `-- dvalue = 3.1415926535897931 + f1 : + |-- fvalue = -1.#INF + `-- dvalue = -1.#INF + f2 : + |-- fvalue = 1.#INF + `-- dvalue = 1.#INF + f3 : + |-- fvalue = 1.#QNAN + `-- dvalue = 1.#QNAN + Input done. + End nonfinite_num_facet.cpp + Input OK. + +*/ \ No newline at end of file diff --git a/example/nonfinite_num_facet_serialization.cpp b/example/nonfinite_num_facet_serialization.cpp new file mode 100644 index 000000000..c094abb7b --- /dev/null +++ b/example/nonfinite_num_facet_serialization.cpp @@ -0,0 +1,302 @@ +/** nonfinite_num_facet_serialization.cpp + * + * Copyright (c) 2011 Francois Mauger + * Copyright (c) 2011 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) + * + * This sample program illustrates how to use the + * `boost/math/nonfinite_num_facets.hpp' material from the original + * Floating Point Utilities contribution by Johan Rade. Here it is + * shown how non finite floating number can be serialized and + * deserialized from I/O streams and/or Boost text/XML archives. It + * produces two archives stored in `test.txt' and `test.xml' files. + * + * Tested with Boost 1.44, gcc 4.4.1, Linux/i686 (32bits) + * + */ + + +#ifdef _MSC_VER +# pragma warning(push) + +# pragma warning(disable : 4224) // formal parameter 'version' was previously defined as a type +# pragma warning(disable : 4100) // unreferenced formal parameter +#endif + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +// from Johan Rade Floating Point Utilities : +#include + +/* A class with a float and a double */ +struct foo +{ + foo () : fvalue (3.141593F), dvalue (3.14159265358979) {} + // set the values at -infinity : + void minus_infinity () + { + fvalue = -std::numeric_limits::infinity (); + dvalue = -std::numeric_limits::infinity (); + return; + } + // set the values at +infinity : + void plus_infinity () + { + fvalue = +std::numeric_limits::infinity (); + dvalue = +std::numeric_limits::infinity (); + return; + } + // set the values at NaN : + void nan () + { + fvalue = +std::numeric_limits::quiet_NaN (); + dvalue = +std::numeric_limits::quiet_NaN (); + return; + } + // print : + void print (std::ostream & a_out, const std::string & a_title) + { + if (a_title.empty ()) a_out << "foo"; + else a_out << a_title; + a_out << " : " << std::endl; + a_out << "|-- " << "fvalue = "; + a_out.precision (7); + a_out << fvalue << std::endl; + a_out << "`-- " << "dvalue = "; + a_out.precision (15); + a_out << dvalue << std::endl; + return; + } + + // I/O operators : + friend std::ostream & operator<< (std::ostream & a_out, const foo & a_foo); + friend std::istream & operator>> (std::istream & a_in, foo & a_foo); + + // Boost serialization : + template + void serialize (Archive & ar, int version) + { + ar & BOOST_SERIALIZATION_NVP (fvalue); + ar & BOOST_SERIALIZATION_NVP (dvalue); + return; + } + + // Attributes : + float fvalue; // single precision floating number + double dvalue; // double precision floating number +}; + +std::ostream & operator<< (std::ostream & a_out, const foo & a_foo) +{ + a_out << "(" << a_foo.fvalue << ";" << a_foo.dvalue << ")"; + return a_out; +} + +std::istream & operator>> (std::istream & a_in, foo & a_foo) +{ + char c = 0; + a_in.get (c); + if (c != '(') + { + std::cerr << "ERROR: operator>> No ( " << std::endl; + a_in.setstate(std::ios::failbit); + return a_in; + } + float f; + a_in >> std::ws >> f; + if (! a_in) + { + return a_in; + } + a_in >> std::ws; + a_in.get (c); + if (c != ';') + { + std::cerr << "ERROR: operator>> c='" << c << "'" << std::endl; + std::cerr << "ERROR: operator>> No ; " << std::endl; + a_in.setstate(std::ios::failbit); + return a_in; + } + double d; + a_in >> std::ws >> d; + if (! a_in) + { + return a_in; + } + a_in >> std::ws; + a_in.get (c); + if (c != ')') + { + std::cerr << "ERROR: operator>> No ) " << std::endl; + a_in.setstate(std::ios::failbit); + return a_in; + } + a_foo.fvalue = f; + a_foo.dvalue = d; + return a_in; +} + +int main (void) +{ + std::clog << "Hello Booster !" << std::endl + << "This is the `test_nonfinite_num_facets_1.cpp' sample program !" << std::endl; + + std::locale the_default_locale (std::locale::classic (), + new boost::archive::codecvt_null); + + { + std::clog << "Write to some string buffer..." << std::endl; + foo f0; + foo f1; f1.minus_infinity (); + foo f2; f2.plus_infinity (); + foo f3; f3.nan (); + + f0.print (std::clog, "f0"); + f1.print (std::clog, "f1"); + f2.print (std::clog, "f2"); + f3.print (std::clog, "f3"); + + std::ostringstream oss; + std::locale the_out_locale (the_default_locale, new boost::math::nonfinite_num_put); + oss.imbue (the_out_locale); + oss.precision (15); + oss << f0 << f1 << f2 << f3; + std::clog << "Output is: `" << oss.str () << "'" << std::endl; + std::clog << "Done." << std::endl; + } + + { + std::clog << "Read from to some string buffer..." << std::endl; + std::string the_string = "(3.14159;3.14159)(-inf;-inf)(inf;inf)(nan;nan)"; + std::clog << "Input is: `" << the_string << "'" << std::endl; + + std::locale the_in_locale (the_default_locale, new boost::math::nonfinite_num_get); + std::istringstream iss (the_string); + iss.imbue (the_in_locale); + + foo f0, f1, f2, f3; + iss >> f0 >> f1 >> f2 >> f3; + if (! iss) + { + std::cerr << "Format error !" << std::endl; + } + else + { + std::cerr << "Success !" << std::endl; + f0.print (std::clog, "f0"); + f1.print (std::clog, "f1"); + f2.print (std::clog, "f2"); + f3.print (std::clog, "f3"); + } + std::clog << "Done." << std::endl; + } + + { + std::clog << "Serialize (boost text archive)..." << std::endl; + foo f0; + foo f1; f1.minus_infinity (); + foo f2; f2.plus_infinity (); + foo f3; f3.nan (); + + f0.print (std::clog, "f0"); + f1.print (std::clog, "f1"); + f2.print (std::clog, "f2"); + f3.print (std::clog, "f3"); + + std::locale the_out_locale (the_default_locale, new boost::math::nonfinite_num_put); + std::ofstream fout ("test.txt"); + fout.imbue (the_out_locale); + boost::archive::text_oarchive toar (fout, boost::archive::no_codecvt); + + toar & f0; + toar & f1; + toar & f2; + toar & f3; + std::clog << "Done." << std::endl; + } + + { + std::clog << "Deserialize (boost text archive)..." << std::endl; + std::locale the_in_locale (the_default_locale, new boost::math::nonfinite_num_get); + std::ifstream fin ("test.txt"); + fin.imbue (the_in_locale); + boost::archive::text_iarchive tiar (fin, boost::archive::no_codecvt); + foo f0, f1, f2, f3; + + tiar & f0; + tiar & f1; + tiar & f2; + tiar & f3; + + f0.print (std::clog, "f0"); + f1.print (std::clog, "f1"); + f2.print (std::clog, "f2"); + f3.print (std::clog, "f3"); + + std::clog << "Done." << std::endl; + } + + { + std::clog << "Serialize (boost XML archive)..." << std::endl; + foo f0; + foo f1; f1.minus_infinity (); + foo f2; f2.plus_infinity (); + foo f3; f3.nan (); + + f0.print (std::clog, "f0"); + f1.print (std::clog, "f1"); + f2.print (std::clog, "f2"); + f3.print (std::clog, "f3"); + + std::locale the_out_locale (the_default_locale, new boost::math::nonfinite_num_put); + std::ofstream fout ("test.xml"); + fout.imbue (the_out_locale); + boost::archive::xml_oarchive xoar (fout, boost::archive::no_codecvt); + + xoar & BOOST_SERIALIZATION_NVP (f0); + xoar & BOOST_SERIALIZATION_NVP (f1); + xoar & BOOST_SERIALIZATION_NVP (f2); + xoar & BOOST_SERIALIZATION_NVP (f3); + std::clog << "Done." << std::endl; + } + + { + std::clog << "Deserialize (boost XML archive)..." << std::endl; + std::locale the_in_locale (the_default_locale, new boost::math::nonfinite_num_get); + std::ifstream fin ("test.xml"); + fin.imbue (the_in_locale); + boost::archive::xml_iarchive xiar (fin, boost::archive::no_codecvt); + foo f0, f1, f2, f3; + + xiar & BOOST_SERIALIZATION_NVP (f0); + xiar & BOOST_SERIALIZATION_NVP (f1); + xiar & BOOST_SERIALIZATION_NVP (f2); + xiar & BOOST_SERIALIZATION_NVP (f3); + + f0.print (std::clog, "f0"); + f1.print (std::clog, "f1"); + f2.print (std::clog, "f2"); + f3.print (std::clog, "f3"); + + std::clog << "Done." << std::endl; + } + + std::clog << "Bye ! " << std::endl; + return 0; +} + + /* end of test_nonfinite_num_facets_1.cpp */ diff --git a/example/nonfinite_serialization_archives.cpp b/example/nonfinite_serialization_archives.cpp new file mode 100644 index 000000000..c1d60c9ca --- /dev/null +++ b/example/nonfinite_serialization_archives.cpp @@ -0,0 +1,126 @@ +/** nonfinite_serialization_archives.cpp +* +* Copyright (c) 2011 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) +* +* This very simple program illustrates how to use the +* `boost/math/nonfinite_num_facets.hpp' to obtain C99 +* representation of infinity and NaN. +* From the original Floating Point Utilities contribution by Johan Rade. +* Floating Point Utility library has been accepted into Boost, +* but the utilities are incorporated into Boost.Math library. +* +\file + +\brief A simple example of using non_finite_num facet for +C99 standard output of infinity and NaN in serialization archives. + +\detail This example shows how to create a C99 non-finite locale, +and imbue input and output streams with the non_finite_num put and get facets. +This allow output and input of infinity and NaN in a Standard portable way, +This permits 'loop-back' of output back into input (and portably across different system too). +This is particularly useful when used with Boost.Seralization so that non-finite NaNs and infinity +values in text and xml archives can be handled correctly and portably. + +*/ + + +#ifdef MSC_VER +# pragma warning (disable :4224) +#endif + +#include +using boost::archive::text_oarchive; +#include +using boost::archive::codecvt_null; +using boost::archive::no_codecvt; + +#include +using boost::math::nonfinite_num_get; +using boost::math::nonfinite_num_put; + +#include +using std::cout; +using std::endl; +using std::cerr; + +#include +using std::setw; +using std::left; +using std::right; +using std::internal; + +#include +using std::string; + +#include +using std::istringstream; + +#include +using std::ofstream; + +#include +using std::numeric_limits; + +#include +using std::locale; + + +/* +Use with serialization archives. + +It is important 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`. +Then 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`: + +*/ + +int main() +{ + + locale default_locale(locale::classic(), new boost::archive::codecvt_null); + // codecvt_null so the archive constructor will not imbue the stream with a new locale. + + locale my_locale(default_locale, new nonfinite_num_put); + // Add nonfinite_num_put facet to locale. + + ofstream ofs("test.txt"); + ofs.imbue(my_locale); + + boost::archive::text_oarchive oa(ofs, no_codecvt); + + double x = numeric_limits::infinity(); + oa & x; + + +} // int main() + + +/* The same method works with nonfinite_num_get and text_iarchive. + +If you use the trap_infinity and trap_nan flags with a serialization archive, +then you must set the exception mask of the stream. +Serialization archives do not check the stream state. + + +u + + +*/ \ No newline at end of file diff --git a/example/test_nonfinite_loopback.cpp b/example/test_nonfinite_loopback.cpp new file mode 100644 index 000000000..d3eba155b --- /dev/null +++ b/example/test_nonfinite_loopback.cpp @@ -0,0 +1,97 @@ +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +// Copyright (c) 2006 Johan Rade +// Copyright (c) 2011 Paul A. Bristow + +/*! +\file +\brief Basic tests of native nonfinite loopback. + +\detail Basic loopback test outputs using the platforms built-in facets +and reads back in, and checks if loopback OK. + +Using MSVC this doesn't work OK: +input produces just "1" instead of "1.#QNAN", 1.#SNAN" or 1.#IND"! + +*/ + +#include +using std::cout; +using std::endl; +#include +using std::locale; +#include +using std::string; +#include + using std::stringstream; +#include +using std::numeric_limits; + +int main() +{ + locale default_locale; // Current global locale. + // Try to use the default locale first. + // On MSVC this doesn't work. + + { // Try infinity. + stringstream ss; // Both input and output. + ss.imbue(default_locale); // Redundant, of course. + string infs; + if(numeric_limits::has_infinity) + { // Make sure infinity is specialised for type double. + double inf = numeric_limits::infinity(); + ss << inf; // Output infinity. + infs = ss.str(); // + } + else + { // Need to provide a suitable string for infinity. + infs = "1.#INF"; // Might suit MSVC? + ss << infs; + } + double r; + ss >> r; // Read back in. + + cout << "infinity output was " << infs << endl; // "1.#INF" + cout << "infinity input was " << r << endl; // "1" + } + + { // Try Quiet NaN + stringstream ss; // Both input and output. + ss.imbue(default_locale); // Redundant, of course. + string infs; + if(numeric_limits::has_quiet_NaN) + { // Make sure quiet NaN is specialised for type double. + double qnan = numeric_limits::quiet_NaN(); + ss << qnan; // Output quiet_NaN. + infs = ss.str(); // + } + else + { // Need to provide a suitable string for quiet_NAN. + infs = "1.#QNAN"; + ss << infs; + } + double r; + ss >> r; // Read back in. + + cout << "quiet_NaN output was " << infs << endl; // "1.#QNAN" + cout << "quiet_NaN input was " << r << endl; // "1#" + } + + +} // int main() + +/* + +Output (MSVC Version 10.0): + + + infinity output was 1.#INF + infinity input was 1 + quiet_NaN output was 1.#QNAN + quiet_NaN input was 1 + + +*/ + From 40ab64c0ea1d91c48ee9c8437209369c7786fa8b Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Fri, 15 Apr 2011 14:58:43 +0000 Subject: [PATCH 34/82] Added changesign [SVN r71285] --- test/test_sign.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/test/test_sign.cpp b/test/test_sign.cpp index c60afbdc2..ee869a667 100644 --- a/test/test_sign.cpp +++ b/test/test_sign.cpp @@ -1,5 +1,5 @@ // Copyright John Maddock 2008 - +// (C) Copyright Paul A. Bristow 2011 (added tests for changesign) // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt @@ -27,6 +27,15 @@ void test_spots(RealType /*T*/, const char* /*type_name*/) RealType c = -1; BOOST_CHECK_EQUAL((boost::math::signbit)(a), 0); BOOST_CHECK_EQUAL((boost::math::sign)(a), 0); + BOOST_CHECK_EQUAL((boost::math::changesign)(b), RealType(-1)); + BOOST_CHECK_EQUAL((boost::math::changesign)(c), RealType(+1)); + BOOST_CHECK_EQUAL((boost::math::changesign)(a), RealType(0)); + + // Compare to formula for changsign(x) = copysign(x, signbit(x) ? 1.0 : -1.0) + BOOST_CHECK_EQUAL((boost::math::changesign)(b), + boost::math::copysign(b, boost::math::signbit(b) ? RealType(1.) : RealType(-1.) )); + + BOOST_CHECK_EQUAL((boost::math::copysign)(b, a), RealType(1)); BOOST_CHECK_EQUAL((boost::math::copysign)(c, a), RealType(1)); a = 1; @@ -49,6 +58,7 @@ void test_spots(RealType /*T*/, const char* /*type_name*/) BOOST_CHECK_EQUAL((boost::math::sign)(a), -1); BOOST_CHECK_EQUAL((boost::math::copysign)(b, a), RealType(-1)); BOOST_CHECK_EQUAL((boost::math::copysign)(c, a), RealType(-1)); + if(std::numeric_limits::has_infinity) { a = std::numeric_limits::infinity(); @@ -56,11 +66,14 @@ void test_spots(RealType /*T*/, const char* /*type_name*/) BOOST_CHECK_EQUAL((boost::math::sign)(a), 1); BOOST_CHECK_EQUAL((boost::math::copysign)(b, a), RealType(1)); BOOST_CHECK_EQUAL((boost::math::copysign)(c, a), RealType(1)); + BOOST_CHECK_EQUAL((boost::math::changesign)(a), -a); + a = -std::numeric_limits::infinity(); BOOST_CHECK((boost::math::signbit)(a) != 0); BOOST_CHECK_EQUAL((boost::math::sign)(a), -1); BOOST_CHECK_EQUAL((boost::math::copysign)(b, a), RealType(-1)); BOOST_CHECK_EQUAL((boost::math::copysign)(c, a), RealType(-1)); + BOOST_CHECK_EQUAL((boost::math::changesign)(a), -a); } #if !defined(__SUNPRO_CC) && !defined(BOOST_INTEL) if(std::numeric_limits::has_quiet_NaN) @@ -70,11 +83,17 @@ void test_spots(RealType /*T*/, const char* /*type_name*/) BOOST_CHECK_EQUAL((boost::math::sign)(a), 1); BOOST_CHECK_EQUAL((boost::math::copysign)(b, a), RealType(1)); BOOST_CHECK_EQUAL((boost::math::copysign)(c, a), RealType(1)); + // BOOST_CHECK_EQUAL((boost::math::changesign)(a), -a); // NaN comparison fails always! + BOOST_CHECK_EQUAL((boost::math::signbit)((boost::math::changesign)(a)), 1); + a = -std::numeric_limits::quiet_NaN(); BOOST_CHECK((boost::math::signbit)(a) != 0); BOOST_CHECK_EQUAL((boost::math::sign)(a), -1); BOOST_CHECK_EQUAL((boost::math::copysign)(b, a), RealType(-1)); BOOST_CHECK_EQUAL((boost::math::copysign)(c, a), RealType(-1)); + //BOOST_CHECK_EQUAL((boost::math::changesign)(a), -a); // NaN comparison fails always! + BOOST_CHECK_EQUAL((boost::math::signbit)((boost::math::changesign)(a)), 0); + } #endif // From d64c15ce24a5effbf9a41a15f24c3ee518c22321 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Fri, 15 Apr 2011 15:10:39 +0000 Subject: [PATCH 35/82] nonfinite examples two serialization examples now to link OK). [SVN r71287] --- example/Jamfile.v2 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index d9d96d051..84d5aea5f 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -16,6 +16,10 @@ project intel:-Qwd264,239 msvc:all msvc:on + msvc:_CRT_SECURE_NO_DEPRECATE + msvc:_SCL_SECURE_NO_DEPRECATE + msvc:_SCL_SECURE_NO_WARNINGS + msvc:_CRT_SECURE_NO_WARNINGS msvc:/wd4996 msvc:/wd4512 msvc:/wd4610 @@ -59,11 +63,11 @@ run negative_binomial_example2.cpp ; run nonfinite_num_facet.cpp ; run nonfinite_facet_simple.cpp ; -run nonfinite_num_facet_serialization.cpp ; +run nonfinite_num_facet_serialization.cpp ../../serialization/build//boost_serialization ; # run lexical_cast_native.cpp ; # Expected to fail on some (but not all) platforms. run lexical_cast_nonfinite_facets.cpp ; run nonfinite_loopback_ok.cpp ; -run nonfinite_serialization_archives.cpp ; +run nonfinite_serialization_archives.cpp ../../serialization/build//boost_serialization ; run nonfinite_facet_sstream.cpp ; run normal_misc_examples.cpp ; From 2f9fd34c5a493d7c5cb27838534c44a7b4bacdf2 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Fri, 15 Apr 2011 17:07:59 +0000 Subject: [PATCH 36/82] Change in revision date [SVN r71293] --- doc/html/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/html/index.html b/doc/html/index.html index de760e113..88eacc674 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -55,7 +55,7 @@ Hubert Holin, Daryle Walker, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and Thijs van den Berg

    -

    +

    Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    @@ -461,7 +461,7 @@
    - +

    Last revised: September 01, 2010 at 19:10:43 +0100

    Last revised: January 01, 2011 at 17:16:10 +0000


    From 21441c69df3a7b39c141b8a7570d0d70792550a7 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Fri, 15 Apr 2011 17:29:26 +0000 Subject: [PATCH 37/82] Helper files for nonfinite tests. [SVN r71294] --- test/S_.ipp | 64 +++++++++++++++++++++++++++++++++++++++++++ test/almost_equal.ipp | 20 ++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 test/S_.ipp create mode 100644 test/almost_equal.ipp diff --git a/test/S_.ipp b/test/S_.ipp new file mode 100644 index 000000000..916b983f9 --- /dev/null +++ b/test/S_.ipp @@ -0,0 +1,64 @@ +#ifndef BOOST_MATH_S__HPP +#define BOOST_MATH_S__HPP + +// Copyright (c) 2006 Johan Rade + +// Distributed under the 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 macro S_ lets you write +// +// basic_string s = S_("foo"); +// CharType c = S_('a'); +// +// provided that CharType is char or wchar_t + +#include + +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable : 4512) +#endif + +//------------------------------------------------------------------------------ + +#define S_(a) make_literal_helper(a, L##a) + +class char_literal_helper { +public: + char_literal_helper(char c, wchar_t wc) : c_(c), wc_(wc) {} + operator char() { return c_; } + operator wchar_t() { return wc_; } +private: + const char c_; + const wchar_t wc_; +}; + +class string_literal_helper { +public: + string_literal_helper(const char* s, const wchar_t* ws) : s_(s), ws_(ws) {} + operator std::string() { return s_; } + operator std::wstring() { return ws_; } +private: + const char* s_; + const wchar_t* ws_; +}; + +inline char_literal_helper make_literal_helper(char c, wchar_t wc) +{ + return char_literal_helper(c, wc); +} + +inline string_literal_helper make_literal_helper(char* s, wchar_t* ws) +{ + return string_literal_helper(s, ws); +} + +//------------------------------------------------------------------------------ + +#ifdef _MSC_VER +# pragma warning(pop) +#endif + +#endif diff --git a/test/almost_equal.ipp b/test/almost_equal.ipp new file mode 100644 index 000000000..107ee65e5 --- /dev/null +++ b/test/almost_equal.ipp @@ -0,0 +1,20 @@ +#ifndef BOOST_MATH_ALMOST_EQUAL_HPP +#define BOOST_MATH_ALMOST_EQUAL_HPP + +// Copyright (c) 2006 Johan Rade + +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +#include + +template +bool almost_equal(ValType a, ValType b) +{ + const ValType e = static_cast(0.00001); + return (a - e * std::abs(a) <= b + e * std::abs(b)) + && (a + e * std::abs(a) >= b - e * std::abs(b)); +} + +#endif From c4c88318e7aba4653cdce01df70572f439d7abcb Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Fri, 15 Apr 2011 17:30:20 +0000 Subject: [PATCH 38/82] Johan Rade tests for nonfinites. [SVN r71295] --- test/test_archive.cpp | 220 +++++++++++++++++++++++++++++++++ test/test_nonfinite_trap.cpp | 232 +++++++++++++++++++++++++++++++++++ test/test_signed_zero.cpp | 73 +++++++++++ 3 files changed, 525 insertions(+) create mode 100644 test/test_archive.cpp create mode 100644 test/test_nonfinite_trap.cpp create mode 100644 test/test_signed_zero.cpp diff --git a/test/test_archive.cpp b/test/test_archive.cpp new file mode 100644 index 000000000..00ca18707 --- /dev/null +++ b/test/test_archive.cpp @@ -0,0 +1,220 @@ +// Copyright (c) 2006 Johan Rade + +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +#ifdef _MSC_VER +# pragma warning(disable : 4511 4512 4702) +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "../../../../boost/math/nonfinite_num_facets.hpp" +#include "../../../../boost/math/signbit.hpp" +#include "../../../../boost/math/fpclassify.hpp" +#include "almost_equal.hpp" + +namespace { + +// the anonymous namespace resolves ambiguities on platforms +// with fpclassify etc functions at global scope + +using namespace boost::archive; + +using namespace boost::math; +using boost::math::signbit; +using boost::math::changesign; +using boost::math::isnan; + +//------------------------------------------------------------------------------ + +void archive_basic_test(); +void archive_put_trap_test(); +void archive_get_trap_test(); + +BOOST_AUTO_TEST_CASE(archive_test) +{ + //archive_basic_test(); + archive_put_trap_test(); + //archive_get_trap_test(); +} + +//------------------------------------------------------------------------------ + +template +void archive_basic_test_impl(); + +void archive_basic_test() +{ + archive_basic_test_impl(); + archive_basic_test_impl(); + archive_basic_test_impl< + char, text_oarchive, text_iarchive, long double>(); + archive_basic_test_impl< + wchar_t, text_woarchive, text_wiarchive, float>(); + archive_basic_test_impl< + wchar_t, text_woarchive, text_wiarchive, double>(); + archive_basic_test_impl< + wchar_t, text_woarchive, text_wiarchive, long double>(); +} + +template +void archive_basic_test_impl() +{ + std::locale default_locale(std::locale::classic(), + new boost::archive::codecvt_null); + std::locale tmp_locale(default_locale, new nonfinite_num_put); + std::locale my_locale(tmp_locale, new nonfinite_num_get); + + std::basic_stringstream ss; + ss.imbue(my_locale); + + ValType a1 = static_cast(0); + ValType a2 = static_cast(2307.35); + ValType a3 = std::numeric_limits::infinity(); + ValType a4 = std::numeric_limits::quiet_NaN(); + ValType a5 = std::numeric_limits::signaling_NaN(); + ValType a6 = (changesign)(static_cast(0)); + ValType a7 = static_cast(-57.13); + ValType a8 = -std::numeric_limits::infinity(); + ValType a9 = -std::numeric_limits::quiet_NaN(); + ValType a10 = -std::numeric_limits::signaling_NaN(); + + { + OArchiveType oa(ss, no_codecvt); + oa & a1 & a2 & a3 & a4 & a5 & a6 & a7 & a8 & a9 & a10; + } + + ValType b1, b2, b3, b4, b5, b6, b7, b8, b9, b10; + + { + IArchiveType ia(ss, no_codecvt); + ia & b1 & b2 & b3 & b4 & b5 & b6 & b7 & b8 & b9 & b10; + } + + BOOST_CHECK(a1 == b1); + BOOST_CHECK(almost_equal(a2, b2)); + BOOST_CHECK(a3 == b3); + BOOST_CHECK((isnan)(b4)); + BOOST_CHECK(!(signbit)(b4)); + BOOST_CHECK((isnan)(b5)); + BOOST_CHECK(!(signbit)(b5)); + BOOST_CHECK(a6 == b6); + BOOST_CHECK(almost_equal(a7, b7)); + BOOST_CHECK(a8 == b8); + BOOST_CHECK((isnan)(b9)); + BOOST_CHECK((signbit)(b9)); + BOOST_CHECK((isnan)(b10)); + BOOST_CHECK((signbit)(b10)); +} + +//------------------------------------------------------------------------------ + +template +void archive_put_trap_test_impl(); + +void archive_put_trap_test() +{ + archive_put_trap_test_impl(); + archive_put_trap_test_impl(); + archive_put_trap_test_impl< + char, text_oarchive, text_iarchive, long double>(); + archive_put_trap_test_impl< + wchar_t, text_woarchive, text_wiarchive, float>(); + archive_put_trap_test_impl< + wchar_t, text_woarchive, text_wiarchive, double>(); + archive_put_trap_test_impl< + wchar_t, text_woarchive, text_wiarchive, long double>(); +} + +template +void archive_put_trap_test_impl() +{ + std::locale default_locale(std::locale::classic(), + new boost::archive::codecvt_null); + std::locale new_locale(default_locale, + new nonfinite_num_put(trap_infinity)); + + std::basic_stringstream ss; + ss.exceptions(std::ios_base::failbit | std::ios_base::badbit); + ss.imbue(new_locale); + + ValType a = std::numeric_limits::infinity(); + + OArchiveType oa(ss, no_codecvt); + + try { + oa & a; + } + catch(std::exception&) { + ss.clear(); + return; + } + + BOOST_CHECK(false); +} + +//------------------------------------------------------------------------------ + +template +void archive_get_trap_test_impl(); + +void archive_get_trap_test() +{ + archive_get_trap_test_impl(); + archive_get_trap_test_impl(); + archive_get_trap_test_impl< + char, text_oarchive, text_iarchive, long double>(); + archive_get_trap_test_impl< + wchar_t, text_woarchive, text_wiarchive, float>(); + archive_get_trap_test_impl< + wchar_t, text_woarchive, text_wiarchive, double>(); + archive_get_trap_test_impl< + wchar_t, text_woarchive, text_wiarchive, long double>(); +} + +template +void archive_get_trap_test_impl() +{ + std::locale default_locale(std::locale::classic(), + new boost::archive::codecvt_null); + std::locale tmp_locale(default_locale, new nonfinite_num_put); + std::locale my_locale(tmp_locale, + new nonfinite_num_get(trap_nan)); + + std::basic_stringstream ss; + ss.exceptions(std::ios_base::failbit); + ss.imbue(my_locale); + + ValType a = -std::numeric_limits::quiet_NaN(); + + { + OArchiveType oa(ss, no_codecvt); + oa & a; + } + + ValType b; + { + IArchiveType ia(ss, no_codecvt); + try { + ia & b; + } + catch(std::exception&) { + return; + } + } + + BOOST_CHECK(false); +} + +//------------------------------------------------------------------------------ + +} // anonymous namespace diff --git a/test/test_nonfinite_trap.cpp b/test/test_nonfinite_trap.cpp new file mode 100644 index 000000000..c3ceea4ef --- /dev/null +++ b/test/test_nonfinite_trap.cpp @@ -0,0 +1,232 @@ +// Copyright (c) 2006 Johan Rade + +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +#ifdef _MSC_VER +# pragma warning(disable : 4702) +#endif + +#include +#include +#include +#include "almost_equal.hpp" +#include "S_.hpp" +#include "../../../../boost/math/nonfinite_num_facets.hpp" + +namespace { + +// the anonymous namespace resolves ambiguities on platforms +// with fpclassify etc functions at global scope + +using namespace boost::math; +using boost::math::signbit; +using boost::math::changesign; +using boost::math::isnan; + +//------------------------------------------------------------------------------ + +void trap_test_finite(); +void trap_test_inf(); +void trap_test_nan(); + +BOOST_AUTO_TEST_CASE(trap_test) +{ + trap_test_finite(); + trap_test_inf(); + trap_test_nan(); +} + +//------------------------------------------------------------------------------ + +template void trap_test_finite_impl(); + +void trap_test_finite() +{ + trap_test_finite_impl(); + trap_test_finite_impl(); + trap_test_finite_impl(); + trap_test_finite_impl(); + trap_test_finite_impl(); + trap_test_finite_impl(); +} + +template void trap_test_finite_impl() +{ + std::locale old_locale; + std::locale tmp_locale(old_locale, + new nonfinite_num_put(trap_infinity | trap_nan)); + std::locale new_locale(tmp_locale, + new nonfinite_num_get(trap_infinity | trap_nan)); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = (ValType)1.2; + ValType a2 = (ValType)-3.5; + ValType a3 = std::numeric_limits::max(); + ValType a4 = -std::numeric_limits::max(); + ss << a1 << ' ' << a2 << ' ' << a3 << ' ' << a4; + + ValType b1, b2, b3, b4; + ss >> b1 >> b2 >> b3 >> b4; + + BOOST_CHECK(almost_equal(b1, a1)); + BOOST_CHECK(almost_equal(b2, a2)); + BOOST_CHECK(almost_equal(b3, a3)); + BOOST_CHECK(almost_equal(b4, a4)); + BOOST_CHECK(b3 != std::numeric_limits::infinity()); + BOOST_CHECK(b4 != -std::numeric_limits::infinity()); + BOOST_CHECK(ss.rdstate() == std::ios_base::eofbit); + + ss.clear(); + ss.str(S_("")); + + ss << "++5"; + ValType b5; + ss >> b5; + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit); +} + +//------------------------------------------------------------------------------ + +template void trap_test_inf_impl(); +template void trap_test_put_inf_impl(); +template void trap_test_get_inf_impl(); + +void trap_test_inf() +{ + trap_test_inf_impl(); + trap_test_inf_impl(); + trap_test_inf_impl(); + trap_test_inf_impl(); + trap_test_inf_impl(); + trap_test_inf_impl(); +} + +template void trap_test_inf_impl() +{ + trap_test_put_inf_impl(); + trap_test_get_inf_impl(); +} + +template void trap_test_put_inf_impl() +{ + std::locale old_locale; + std::locale new_locale(old_locale, + new nonfinite_num_put(trap_infinity)); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = std::numeric_limits::infinity(); + ss << a1; + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit + || ss.rdstate() == std::ios_base::badbit); + ss.clear(); + + ValType a2 = -std::numeric_limits::infinity(); + ss << a2; + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit + || ss.rdstate() == std::ios_base::badbit); +} + +template void trap_test_get_inf_impl() +{ + std::locale old_locale; + std::locale tmp_locale(old_locale, new nonfinite_num_put); + std::locale new_locale(tmp_locale, + new nonfinite_num_get(trap_infinity)); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = std::numeric_limits::infinity(); + ss << a1; + ValType b1; + ss >> b1; + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit); + + ss.clear(); + ss.str(S_("")); + + ValType a2 = -std::numeric_limits::infinity(); + ss << a2; + ValType b2; + ss >> b2; + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit); +} + +//------------------------------------------------------------------------------ + +template void trap_test_nan_impl(); +template void trap_test_put_nan_impl(); +template void trap_test_get_nan_impl(); + +void trap_test_nan() +{ + trap_test_nan_impl(); + trap_test_nan_impl(); + trap_test_nan_impl(); + trap_test_nan_impl(); + trap_test_nan_impl(); + trap_test_nan_impl(); +} + +template void trap_test_nan_impl() +{ + trap_test_put_nan_impl(); + trap_test_get_nan_impl(); +} + +template void trap_test_put_nan_impl() +{ + std::locale old_locale; + std::locale new_locale(old_locale, + new nonfinite_num_put(trap_nan)); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = std::numeric_limits::quiet_NaN(); + ss << a1; + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit + || ss.rdstate() == std::ios_base::badbit); + ss.clear(); + + ValType a2 = std::numeric_limits::signaling_NaN(); + ss << a2; + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit + || ss.rdstate() == std::ios_base::badbit); +} + +template void trap_test_get_nan_impl() +{ + std::locale old_locale; + std::locale tmp_locale(old_locale, new nonfinite_num_put); + std::locale new_locale(tmp_locale, + new nonfinite_num_get(trap_nan)); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = std::numeric_limits::quiet_NaN(); + ss << a1; + ValType b1; + ss >> b1; + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit); + + ss.clear(); + ss.str(S_("")); + + ValType a2 = std::numeric_limits::signaling_NaN(); + ss << a2; + ValType b2; + ss >> b2; + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit); +} + +//------------------------------------------------------------------------------ + +} // anonymous namespace diff --git a/test/test_signed_zero.cpp b/test/test_signed_zero.cpp new file mode 100644 index 000000000..07c3156df --- /dev/null +++ b/test/test_signed_zero.cpp @@ -0,0 +1,73 @@ +// Copyright (c) 2006 Johan Rade + +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +#ifdef _MSC_VER +# pragma warning(disable : 4702) +#endif + +#include +#include +#include +#include +#include "almost_equal.ipp" +#include "S_.ipp" +#include "../../../../boost/math/nonfinite_num_facets.hpp" + +namespace { + +// the anonymous namespace resolves ambiguities on platforms +// with fpclassify etc functions at global scope + +using namespace boost::math; +using boost::math::signbit; +using boost::math::changesign; +using boost::math::isnan; + +//------------------------------------------------------------------------------ + +template void signed_zero_test_impl(); + +BOOST_AUTO_TEST_CASE(signed_zero_test) +{ + signed_zero_test_impl(); + signed_zero_test_impl(); + signed_zero_test_impl(); + signed_zero_test_impl(); + signed_zero_test_impl(); + signed_zero_test_impl(); +} + +template void signed_zero_test_impl() +{ + std::locale old_locale; + std::locale tmp_locale( + old_locale, new nonfinite_num_put(signed_zero)); + std::locale new_locale(tmp_locale, new nonfinite_num_get); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = static_cast(0); + ValType a2 = (changesign)(static_cast(0)); + + ss << a1 << ' ' << a2; + + std::basic_string s = S_("0 -0"); + BOOST_CHECK(ss.str() == s); + + ValType b1, b2; + ss >> b1 >> b2; + + BOOST_CHECK(b1 == a1); + BOOST_CHECK(b2 == a2); + BOOST_CHECK(!(signbit)(b1)); + BOOST_CHECK((signbit)(b2)); + BOOST_CHECK(ss.rdstate() == std::ios_base::eofbit); +} + +//------------------------------------------------------------------------------ + +} // anonymous namespace From cec402f9b6c9ec26eaf0e379307f83e672eb9c92 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Fri, 15 Apr 2011 17:52:54 +0000 Subject: [PATCH 39/82] More nonfinite tests [SVN r71296] --- test/test_basic_nonfinite.cpp | 254 +++++++++++++++++++++++++++++++++ test/test_legacy_nonfinite.cpp | 185 ++++++++++++++++++++++++ test/test_lexical_cast.cpp | 116 +++++++++++++++ 3 files changed, 555 insertions(+) create mode 100644 test/test_basic_nonfinite.cpp create mode 100644 test/test_legacy_nonfinite.cpp create mode 100644 test/test_lexical_cast.cpp diff --git a/test/test_basic_nonfinite.cpp b/test/test_basic_nonfinite.cpp new file mode 100644 index 000000000..3ab36f620 --- /dev/null +++ b/test/test_basic_nonfinite.cpp @@ -0,0 +1,254 @@ + +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +// Copyright (c) 2006 Johan Rade +// Copyright (c) 2011 Paul A. Bristow comments + +/*! +\file +\brief Basic tests of the nonfinite num facets. + +\detail Basic_test outputs using nonfinite_num_put facet +and reads back in using nonfinite_num_ facet, +and checks loopback OK. + +Also checks that output of infinity, -infinity and NaN are as expected, +using C99 specification "nan -nan nan -nan" and "inf -inf". +Also includes a few combinations of display manipulators +(left, right, internal, showpos) +and checks that can input C99 infinity and NaN too. + +*/ + +#ifdef _MSC_VER +# pragma warning(disable : 4702) +#endif + +#include +#include +#include + +#define BOOST_TEST_MAIN + +#include + +#include "almost_equal.ipp" +#include "S_.ipp" + +#include + +namespace +{ // The anonymous namespace resolves ambiguities on + // platforms with fpclassify etc functions at global scope. + +using namespace boost::math; +using boost::math::signbit; +//using boost::spirit::detail::changesign; // Temporary spirit version. +using boost::math::changesign; +using boost::math::isnan; + +//------------------------------------------------------------------------------ + +void basic_test_finite(); +void basic_test_inf(); +void basic_test_nan(); +void basic_test_format(); + +BOOST_AUTO_TEST_CASE(basic_test) +{ + basic_test_finite(); + basic_test_inf(); + basic_test_nan(); + basic_test_format(); +} + +//------------------------------------------------------------------------------ + +template void basic_test_finite_impl(); + +void basic_test_finite() +{ + basic_test_finite_impl(); + basic_test_finite_impl(); + basic_test_finite_impl(); + basic_test_finite_impl(); + basic_test_finite_impl(); + basic_test_finite_impl(); +} + +template void basic_test_finite_impl() +{ + std::locale old_locale; + std::locale tmp_locale(old_locale, new nonfinite_num_put); + std::locale new_locale(tmp_locale, new nonfinite_num_get); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = (ValType)1.2; + ValType a2 = (ValType)-3.5; + ValType a3 = std::numeric_limits::max(); + ValType a4 = -std::numeric_limits::max(); + ss << a1 << ' ' << a2 << ' ' << a3 << ' ' << a4; + + ValType b1, b2, b3, b4; + ss >> b1 >> b2 >> b3 >> b4; + + BOOST_CHECK(almost_equal(b1, a1)); + BOOST_CHECK(almost_equal(b2, a2)); + BOOST_CHECK(almost_equal(b3, a3)); + BOOST_CHECK(almost_equal(b4, a4)); + BOOST_CHECK(b3 != std::numeric_limits::infinity()); + BOOST_CHECK(b4 != -std::numeric_limits::infinity()); + BOOST_CHECK(ss.rdstate() == std::ios_base::eofbit); + + ss.clear(); + ss.str(S_("")); + + ss << "++5"; + ValType b5; + ss >> b5; + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit); +} + +//------------------------------------------------------------------------------ + +template void basic_test_inf_impl(); + +void basic_test_inf() +{ + basic_test_inf_impl(); + basic_test_inf_impl(); + basic_test_inf_impl(); + basic_test_inf_impl(); + basic_test_inf_impl(); + basic_test_inf_impl(); +} + +template void basic_test_inf_impl() +{ + std::locale old_locale; + std::locale tmp_locale(old_locale, new nonfinite_num_put); + std::locale new_locale(tmp_locale, new nonfinite_num_get); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = std::numeric_limits::infinity(); + ValType a2 = -std::numeric_limits::infinity(); + + ss << a1 << ' ' << a2; + + std::basic_string s = S_("inf -inf"); + BOOST_CHECK(ss.str() == s); + + ss << " infinity"; // Alternative C99 representation of infinity. + + ValType b1, b2, b3; + ss >> b1; + ss >> b2; + ss >> b3; + + BOOST_CHECK(b1 == a1); + BOOST_CHECK(b2 == a2); + BOOST_CHECK(b3 == std::numeric_limits::infinity()); + BOOST_CHECK(ss.rdstate() == std::ios_base::eofbit); +} + +//------------------------------------------------------------------------------ + +template void basic_test_nan_impl(); + +void basic_test_nan() +{ + basic_test_nan_impl(); + basic_test_nan_impl(); + basic_test_nan_impl(); + basic_test_nan_impl(); + basic_test_nan_impl(); + basic_test_nan_impl(); +} + +template void basic_test_nan_impl() +{ + std::locale old_locale; + std::locale tmp_locale(old_locale, new nonfinite_num_put); + std::locale new_locale(tmp_locale, new nonfinite_num_get); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = std::numeric_limits::quiet_NaN(); + ValType a2 = -std::numeric_limits::quiet_NaN(); + ValType a3 = std::numeric_limits::signaling_NaN(); + ValType a4 = -std::numeric_limits::signaling_NaN(); + ss << a1 << ' ' << a2 << ' ' << a3 << ' ' << a4; + + std::basic_string s = S_("nan -nan nan -nan"); + BOOST_CHECK(ss.str() == s); + + // Alternative C99 representation of NaN. + ss << " nan(foo)"; + + ValType b1, b2, b3, b4, b5; + ss >> b1 >> b2 >> b3 >> b4 >> b5; + + BOOST_CHECK((isnan)(b1)); + BOOST_CHECK((isnan)(b2)); + BOOST_CHECK((isnan)(b3)); + BOOST_CHECK((isnan)(b4)); + BOOST_CHECK((isnan)(b5)); + + BOOST_CHECK(!(signbit)(b1)); + BOOST_CHECK((signbit)(b2)); + BOOST_CHECK(!(signbit)(b3)); + BOOST_CHECK((signbit)(b4)); + BOOST_CHECK(!(signbit)(b5)); + + BOOST_CHECK(ss.rdstate() == std::ios_base::eofbit); +} + +//------------------------------------------------------------------------------ + +template void basic_test_format_impl(); + +void basic_test_format() +{ + basic_test_format_impl(); + basic_test_format_impl(); + basic_test_format_impl(); + basic_test_format_impl(); + basic_test_format_impl(); + basic_test_format_impl(); +} + +template void basic_test_format_impl() +{ + std::locale old_locale; + std::locale tmp_locale(old_locale, new nonfinite_num_put); + std::locale new_locale(tmp_locale, new nonfinite_num_get); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a = std::numeric_limits::infinity(); + + ss << std::setw(6) << a; // Expect right justified in field of six, so 3 leading spaces. + ss << '|'; + ss << std::setw(2) << a; // Too narrow for "inf", but should still be "inf". + ss << '|'; + ss << std::left << std::setw(5) << a; // 5 - 3 leaves two trailing spaces. + ss << '|'; + ss << std::showpos << std::internal << std::setw(7) << a; // 3 internal spaces between + and "inf". + ss << '|'; + ss << std::uppercase << std::right << std::setw(6) << a; // still showpos, so "space, space, +INF". + + std::basic_string s = S_(" inf|inf|inf |+ inf| +INF"); + BOOST_CHECK(ss.str() == s); +} + +//------------------------------------------------------------------------------ + +} // anonymous namespace diff --git a/test/test_legacy_nonfinite.cpp b/test/test_legacy_nonfinite.cpp new file mode 100644 index 000000000..4ebf8c99e --- /dev/null +++ b/test/test_legacy_nonfinite.cpp @@ -0,0 +1,185 @@ +// Copyright (c) 2006 Johan Rade +// Copyright (c) 2011 Paul A. Bristow comments +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +/*! +\file +\brief Legacy (non-C99) tests of the nonfinite num facets. + +\detail legacy_test outputs using nonfinite_num_put facet +with legacy flag, and reads back in using nonfinite_num_ facet, +and checks loopback OK. + +Also checks that output of infinity, -infinity and NaN are as expected, +including the 'legacy' "1.#IND", "1.#QNAN", "1.#SNAN" representations +(was used by MSVC but now all represented on output by "1.#QNAN") +and qnan snan nanq nans (used by other systems) +excluding C99 specification "nan -nan nan -nan" and "inf -inf". +*/ + +#ifdef _MSC_VER +# pragma warning(disable : 4702) +#endif + +#include +#include +#include + +#define BOOST_TEST_MAIN +#include + +//#include "almost_equal.hpp" +//#include "S_.hpp" + +#include + +namespace { + +// The anonymous namespace resolves ambiguities on platforms +// with fpclassify etc functions declared at global scope. + +using namespace boost::math; +using boost::math::signbit; +using boost::math::changesign; +using boost::math::isnan; + +//------------------------------------------------------------------------------ + +void legacy_test_inf(); +void legacy_test_nan(); + +BOOST_AUTO_TEST_CASE(legacy_test) +{ + legacy_test_inf(); + legacy_test_nan(); +} + +//------------------------------------------------------------------------------ + +template void legacy_test_inf_impl(); + +void legacy_test_inf() +{ + legacy_test_inf_impl(); + legacy_test_inf_impl(); + legacy_test_inf_impl(); + legacy_test_inf_impl(); + legacy_test_inf_impl(); + legacy_test_inf_impl(); +} + +template void legacy_test_inf_impl() +{ + std::locale old_locale; + std::locale new_locale(old_locale, new nonfinite_num_get(legacy)); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = std::numeric_limits::infinity(); + ValType a2 = -std::numeric_limits::infinity(); + ss << a1 << ' ' << a2; + + ss << " 1.#INF"; + + ValType b1, b2, b3; + ss >> b1 >> b2 >> b3; + + BOOST_CHECK(b1 == a1); + BOOST_CHECK(b2 == a2); + BOOST_CHECK(b3 == std::numeric_limits::infinity()); + BOOST_CHECK(ss.rdstate() == std::ios_base::eofbit); +} + +//------------------------------------------------------------------------------ + +template void legacy_test_nan_impl(); + +void legacy_test_nan() +{ + legacy_test_nan_impl(); + legacy_test_nan_impl(); + legacy_test_nan_impl(); + legacy_test_nan_impl(); + legacy_test_nan_impl(); + legacy_test_nan_impl(); +} + +template void legacy_test_nan_impl() +{ + std::locale old_locale; + std::locale new_locale(old_locale, new nonfinite_num_get(legacy)); + + std::basic_stringstream ss; + ss.imbue(new_locale); + + ValType a1 = std::numeric_limits::quiet_NaN(); + ValType a2 = -std::numeric_limits::quiet_NaN(); + ValType a3 = std::numeric_limits::signaling_NaN(); + ValType a4 = -std::numeric_limits::signaling_NaN(); + ss << a1 << ' ' << a2 << ' ' << a3 << ' ' << a4; + + ss << " qnan snan nanq nans 1.#IND 1.#QNAN 1.#SNAN"; + + ValType b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11; + ss >> b1 >> b2 >> b3 >> b4 >> b5 >> b6 >> b7 >> b8 >> b9 >> b10 >> b11; + + // std::cout << b11 << std::endl; // Confirms that legacy + // IND, SNAN and QNAN are considered the same, + // and both output the legacy string "1.#QNAN". + + BOOST_CHECK((isnan)(b1)); + BOOST_CHECK((isnan)(b2)); + BOOST_CHECK((isnan)(b3)); + BOOST_CHECK((isnan)(b4)); + BOOST_CHECK((isnan)(b5)); + BOOST_CHECK((isnan)(b6)); + BOOST_CHECK((isnan)(b7)); + BOOST_CHECK((isnan)(b8)); + BOOST_CHECK((isnan)(b9)); + BOOST_CHECK((isnan)(b10)); + BOOST_CHECK((isnan)(b11)); // Johan V3 1.#SNAN failed on MSVC 10. + // Change in nonfinite_num_facet.hpp Paul A. Bristow 11 Apr 11 makes work OK. +/* + // These tests fail on platforms, such as gcc, + // that use the same representation of +nan and -nan. + + BOOST_CHECK(!(signbit)(b1)); + BOOST_CHECK((signbit)(b2)); + BOOST_CHECK(!(signbit)(b3)); + BOOST_CHECK((signbit)(b4)); +*/ + BOOST_CHECK(!(signbit)(b5)); + BOOST_CHECK(!(signbit)(b6)); + BOOST_CHECK(!(signbit)(b7)); + BOOST_CHECK(!(signbit)(b8)); + BOOST_CHECK(!(signbit)(b9)); + BOOST_CHECK(!(signbit)(b10)); + BOOST_CHECK(!(signbit)(b11)); // Johan V3 1.#SNAN failed MSVC 10. + + BOOST_CHECK(ss.rdstate() == std::ios_base::eofbit); // Fails if SNAN test fails. +} + +//------------------------------------------------------------------------------ + +} // anonymous namespace + +/* + +Output: + + legacy_test.vcxproj -> J:\Cpp\fp_facet\fp_facet\Debug\legacy_test.exe + Running 1 test case... + 1.#QNAN + 1.#QNAN + 1.#QNAN + 1.#QNAN + 1.#QNAN + 1.#QNAN + + *** No errors detected + + +*/ diff --git a/test/test_lexical_cast.cpp b/test/test_lexical_cast.cpp new file mode 100644 index 000000000..2efa9aee4 --- /dev/null +++ b/test/test_lexical_cast.cpp @@ -0,0 +1,116 @@ +// Copyright (c) 2006 Johan Rade + +// Copyright (c) 2011 Paul A. Bristow incorporated Boost.Math + +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +#ifdef _MSC_VER +# pragma warning(disable : 4127 4511 4512 4701 4702) +#endif + +#define BOOST_TEST_MAIN + +#include +#include +#include +#include +#include + +#include +#include +#include +#include "almost_equal.ipp" +#include "S_.ipp" + +namespace { + +// the anonymous namespace resolves ambiguities on platforms +// with fpclassify etc functions at global scope + +using boost::lexical_cast; + +using namespace boost::math; +using boost::math::signbit; +using boost::math::changesign; +using boost::math::isnan; + +//------------------------------------------------------------------------------ + +template void lexical_cast_test_impl(); + +BOOST_AUTO_TEST_CASE(lexical_cast_test) +{ + lexical_cast_test_impl(); + lexical_cast_test_impl(); + lexical_cast_test_impl(); + lexical_cast_test_impl(); + lexical_cast_test_impl(); + lexical_cast_test_impl(); +} + +template void lexical_cast_test_impl() +{ + std::locale old_locale; + std::locale tmp_locale(old_locale, + new nonfinite_num_put(signed_zero)); + std::locale new_locale(tmp_locale, new nonfinite_num_get); + std::locale::global(new_locale); + + ValType a1 = static_cast(0); + ValType a2 = static_cast(13); + ValType a3 = std::numeric_limits::infinity(); + ValType a4 = std::numeric_limits::quiet_NaN(); + ValType a5 = std::numeric_limits::signaling_NaN(); + ValType a6 = (changesign)(static_cast(0)); + ValType a7 = static_cast(-57); + ValType a8 = -std::numeric_limits::infinity(); + ValType a9 = -std::numeric_limits::quiet_NaN(); + ValType a10 = -std::numeric_limits::signaling_NaN(); + + std::basic_string s1 = S_("0"); + std::basic_string s2 = S_("13"); + std::basic_string s3 = S_("inf"); + std::basic_string s4 = S_("nan"); + std::basic_string s5 = S_("nan"); + std::basic_string s6 = S_("-0"); + std::basic_string s7 = S_("-57"); + std::basic_string s8 = S_("-inf"); + std::basic_string s9 = S_("-nan"); + std::basic_string s10 = S_("-nan"); + + BOOST_CHECK(lexical_cast >(a1) == s1); + BOOST_CHECK(lexical_cast >(a2) == s2); + BOOST_CHECK(lexical_cast >(a3) == s3); + BOOST_CHECK(lexical_cast >(a4) == s4); + BOOST_CHECK(lexical_cast >(a5) == s5); + BOOST_CHECK(lexical_cast >(a6) == s6); + BOOST_CHECK(lexical_cast >(a7) == s7); + BOOST_CHECK(lexical_cast >(a8) == s8); + BOOST_CHECK(lexical_cast >(a9) == s9); + BOOST_CHECK(lexical_cast >(a10) == s10); + + BOOST_CHECK(lexical_cast(s1) == a1); + BOOST_CHECK(!(signbit)(lexical_cast(s1))); + BOOST_CHECK(lexical_cast(s2) == a2); + BOOST_CHECK(lexical_cast(s3) == a3); + BOOST_CHECK((isnan)(lexical_cast(s4))); + BOOST_CHECK(!(signbit)(lexical_cast(s4))); + BOOST_CHECK((isnan)(lexical_cast(s5))); + BOOST_CHECK(!(signbit)(lexical_cast(s5))); + BOOST_CHECK(lexical_cast(a6) == a6); + BOOST_CHECK((signbit)(lexical_cast(s6))); + BOOST_CHECK(lexical_cast(s7) == a7); + BOOST_CHECK(lexical_cast(s8) == a8); + BOOST_CHECK((isnan)(lexical_cast(s9))); + BOOST_CHECK((signbit)(lexical_cast(s9))); + BOOST_CHECK((isnan)(lexical_cast(s10))); + BOOST_CHECK((signbit)(lexical_cast(s10))); + + std::locale::global(old_locale); +} + +//------------------------------------------------------------------------------ + +} // anonymous namespace From df5809ef5f6b145580c2f8c9a044f9759254e2f7 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Mon, 18 Apr 2011 16:12:14 +0000 Subject: [PATCH 40/82] Johan Rade tests for nonfinites. [SVN r71368] --- test/test_lexical_cast.cpp | 2 +- test/test_nonfinite_trap.cpp | 19 +++++++++++-------- test/test_signed_zero.cpp | 5 ++++- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/test/test_lexical_cast.cpp b/test/test_lexical_cast.cpp index 2efa9aee4..ce9699e5e 100644 --- a/test/test_lexical_cast.cpp +++ b/test/test_lexical_cast.cpp @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include "almost_equal.ipp" #include "S_.ipp" diff --git a/test/test_nonfinite_trap.cpp b/test/test_nonfinite_trap.cpp index c3ceea4ef..63e014b50 100644 --- a/test/test_nonfinite_trap.cpp +++ b/test/test_nonfinite_trap.cpp @@ -1,4 +1,5 @@ // Copyright (c) 2006 Johan Rade +// Copyright (c) 2011 Paul A. Bristow To incorporate into Boost.Math // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt @@ -8,12 +9,14 @@ # pragma warning(disable : 4702) #endif +#define BOOST_TEST_MAIN + #include #include #include -#include "almost_equal.hpp" -#include "S_.hpp" -#include "../../../../boost/math/nonfinite_num_facets.hpp" +#include "almost_equal.ipp" +#include "S_.ipp" +#include namespace { @@ -35,7 +38,7 @@ BOOST_AUTO_TEST_CASE(trap_test) { trap_test_finite(); trap_test_inf(); - trap_test_nan(); + trap_test_nan(); } //------------------------------------------------------------------------------ @@ -122,13 +125,13 @@ template void trap_test_put_inf_impl() ValType a1 = std::numeric_limits::infinity(); ss << a1; - BOOST_CHECK(ss.rdstate() == std::ios_base::failbit + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit || ss.rdstate() == std::ios_base::badbit); ss.clear(); ValType a2 = -std::numeric_limits::infinity(); ss << a2; - BOOST_CHECK(ss.rdstate() == std::ios_base::failbit + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit || ss.rdstate() == std::ios_base::badbit); } @@ -191,13 +194,13 @@ template void trap_test_put_nan_impl() ValType a1 = std::numeric_limits::quiet_NaN(); ss << a1; - BOOST_CHECK(ss.rdstate() == std::ios_base::failbit + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit || ss.rdstate() == std::ios_base::badbit); ss.clear(); ValType a2 = std::numeric_limits::signaling_NaN(); ss << a2; - BOOST_CHECK(ss.rdstate() == std::ios_base::failbit + BOOST_CHECK(ss.rdstate() == std::ios_base::failbit || ss.rdstate() == std::ios_base::badbit); } diff --git a/test/test_signed_zero.cpp b/test/test_signed_zero.cpp index 07c3156df..87449ab19 100644 --- a/test/test_signed_zero.cpp +++ b/test/test_signed_zero.cpp @@ -1,4 +1,5 @@ // Copyright (c) 2006 Johan Rade +// Copyright (c) 2011 Paul A. Bristow To incorporate into Boost.Math // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt @@ -8,13 +9,15 @@ # pragma warning(disable : 4702) #endif +#define BOOST_TEST_MAIN + #include #include #include #include #include "almost_equal.ipp" #include "S_.ipp" -#include "../../../../boost/math/nonfinite_num_facets.hpp" +#include namespace { From 5c889b387e06b1195da106f17ac085742ddc1c0d Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Mon, 18 Apr 2011 16:18:08 +0000 Subject: [PATCH 41/82] New tests for changesign and nofinite facets added. Pass locally on MSVC 10. [SVN r71369] --- test/Jamfile.v2 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 2f366b28c..39bf17cda 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -785,7 +785,14 @@ run ../quaternion/quaternion_mult_incl_test.cpp ../quaternion/quaternion_mi1.cpp ../quaternion/quaternion_mi2.cpp ../../test/build//boost_unit_test_framework/static ; - + + +run test_legacy_nonfinite.cpp ../../test/build//boost_test_exec_monitor ; +run test_basic_nonfinite.cpp ../../test/build//boost_test_exec_monitor ; +run test_lexical_cast.cpp ../../test/build//boost_test_exec_monitor ; +run test_nonfinite_trap.cpp ../../test/build//boost_test_exec_monitor ; +run test_signed_zero.cpp ../../test/build//boost_test_exec_monitor ; + run complex_test.cpp ../../test/build//boost_test_exec_monitor ; compile ntl_concept_check.cpp : [ check-target-builds ../config//has_ntl_rr : : no ] ; From 1da961d8e7e3fdd9b9567c09c4177ba69a1b62a2 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Mon, 18 Apr 2011 16:19:26 +0000 Subject: [PATCH 42/82] Changesign addded. [SVN r71370] --- include/boost/math/special_functions/sign.hpp | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/include/boost/math/special_functions/sign.hpp b/include/boost/math/special_functions/sign.hpp index 88db77729..fdbae280f 100644 --- a/include/boost/math/special_functions/sign.hpp +++ b/include/boost/math/special_functions/sign.hpp @@ -1,4 +1,7 @@ // (C) Copyright John Maddock 2006. +// (C) Copyright Johan Rade 2006. +// (C) Copyright Paul A. Bristow 2011 (added changesign). + // 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) @@ -58,10 +61,48 @@ namespace detail { return a & traits::sign ? 1 : 0; } + + template + inline T changesign_impl(T x, ieee_copy_all_bits_tag const&) + { + typedef BOOST_DEDUCED_TYPENAME fp_traits::type traits; + + BOOST_DEDUCED_TYPENAME traits::bits a; + traits::get_bits(x,a); + a ^= traits::sign; + traits::set_bits(x,a); + return x; + } + + template + inline T (changesign_impl)(T x, ieee_copy_leading_bits_tag const&) + { + typedef BOOST_DEDUCED_TYPENAME fp_traits::type traits; + + BOOST_DEDUCED_TYPENAME traits::bits a; + traits::get_bits(x,a); + a ^= traits::sign; + traits::set_bits(x,a); + return x; + } + + template + inline T (changesign_impl)(T x, generic_tag const&) + { + return -x; + } + + template + inline T (changesign_impl)(T x, generic_tag const&) + { + return -x; + } + + } // namespace detail template int (signbit)(T x) -{ //!< \brief return true if floating-point type t is NaN (Not A Number). +{ //!< \brief return true if floating-point type T is NaN (Not A Number). typedef typename detail::fp_traits::type traits; typedef typename traits::method method; typedef typename boost::is_floating_point::type fp_tag; @@ -81,6 +122,15 @@ inline T copysign BOOST_NO_MACRO_EXPAND(const T& x, const T& y) return fabs(x) * ((boost::math::signbit)(y) ? -1 : 1); } +template T (changesign)(T x) +{ + typedef typename detail::fp_traits::type traits; + typedef typename traits::method method; + typedef typename boost::is_floating_point::type fp_tag; + + return detail::changesign_impl(x, method()); +} + } // namespace math } // namespace boost From e3e838da6c05fdcf7fc06a2b2fa923bbfe136dec Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Mon, 18 Apr 2011 16:19:48 +0000 Subject: [PATCH 43/82] nonfinite facets [SVN r71371] --- .../nonfinite_num_facets.hpp | 540 ++++++++++++++++++ 1 file changed, 540 insertions(+) create mode 100644 include/boost/math/special_functions/nonfinite_num_facets.hpp diff --git a/include/boost/math/special_functions/nonfinite_num_facets.hpp b/include/boost/math/special_functions/nonfinite_num_facets.hpp new file mode 100644 index 000000000..c4bbe1601 --- /dev/null +++ b/include/boost/math/special_functions/nonfinite_num_facets.hpp @@ -0,0 +1,540 @@ +#ifndef BOOST_MATH_NONFINITE_NUM_FACETS_HPP +#define BOOST_MATH_NONFINITE_NUM_FACETS_HPP + +// Copyright (c) 2006 Johan Rade +// Copyright 2011 Paul A. Bristow (comments) + +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +/* +\file + +\brief non_finite_num facets for C99 standard output of infinity and NaN. + +\details See fuller documentation at Boost.Math Facets + for Floating-Point Infinities and NaNs. +*/ + +#include +#include +#include +#include + +#include + +#include +#include + +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable : 4127) // conditional expression is constant. +# pragma warning(disable : 4706) // assignment within conditional expression. +# pragma warning(disable : 4224) // formal parameter 'version' was previously defined as a type. +#endif + +namespace boost { + namespace math { + + // flags (enums can be ORed together) ----------------------------------- + + const int legacy = 0x1; //!< get facet will recognize most string representations of infinity and NaN. + const int signed_zero = 0x2; //!< put facet will distinguish between positive and negative zero. + const int trap_infinity = 0x4; /*!< put facet will throw an exception of type std::ios_base::failure + when an attempt is made to format positive or negative infinity. + get will set the fail bit of the stream when an attempt is made + to parse a string that represents positive or negative sign infinity. + */ + const int trap_nan = 0x8; /*!< put facet will throw an exception of type std::ios_base::failure + when an attempt is made to format positive or negative NaN. + get will set the fail bit of the stream when an attempt is made + to parse a string that represents positive or negative sign infinity. + */ + + // class nonfinite_num_put ----------------------------------------------------- + + template< + class CharType, + class OutputIterator = std::ostreambuf_iterator + > + class nonfinite_num_put : public std::num_put + { + public: + explicit nonfinite_num_put(int flags = 0) : flags_(flags) {} + + protected: + virtual OutputIterator do_put( + OutputIterator it, std::ios_base& iosb, + CharType fill, double val) const + { + put_and_reset_width(it, iosb, fill, val); + return it; + } + + virtual OutputIterator do_put( + OutputIterator it, std::ios_base& iosb, + CharType fill, long double val) const + { + put_and_reset_width(it, iosb, fill, val); + return it; + } + + private: + template void put_and_reset_width( + OutputIterator& it, std::ios_base& iosb, + CharType fill, ValType val) const + { + put_impl(it, iosb, fill, val); + iosb.width(0); + } + + template void put_impl( + OutputIterator& it, std::ios_base& iosb, + CharType fill, ValType val) const + { + switch((boost::math::fpclassify)(val)) { + + case FP_INFINITE: + if(flags_ & trap_infinity) + throw std::ios_base::failure("Infinity"); + else if((boost::math::signbit)(val)) + put_num_and_fill(it, iosb, "-", "inf", fill); + else if(iosb.flags() & std::ios_base::showpos) + put_num_and_fill(it, iosb, "+", "inf", fill); + else + put_num_and_fill(it, iosb, "", "inf", fill); + break; + + case FP_NAN: + if(flags_ & trap_nan) + throw std::ios_base::failure("NaN"); + else if((boost::math::signbit)(val)) + put_num_and_fill(it, iosb, "-", "nan", fill); + else if(iosb.flags() & std::ios_base::showpos) + put_num_and_fill(it, iosb, "+", "nan", fill); + else + put_num_and_fill(it, iosb, "", "nan", fill); + break; + + case FP_ZERO: + if(flags_ & signed_zero) { + if((boost::math::signbit)(val)) + put_num_and_fill(it, iosb, "-", "0", fill); + else if(iosb.flags() & std::ios_base::showpos) + put_num_and_fill(it, iosb, "+", "0", fill); + else + put_num_and_fill(it, iosb, "", "0", fill); + } + else + put_num_and_fill(it, iosb, "", "0", fill); + break; + + default: + it = std::num_put::do_put( + it, iosb, fill, val); + break; + } + } + + void put_num_and_fill( + OutputIterator& it, std::ios_base& iosb, const char* prefix, + const char* body, CharType fill) const + { + int width = (int)strlen(prefix) + (int)strlen(body); + std::ios_base::fmtflags adjust + = iosb.flags() & std::ios_base::adjustfield; + const std::ctype& ct + = std::use_facet >(iosb.getloc()); + + if(adjust != std::ios_base::internal && adjust != std::ios_base::left) + put_fill(it, iosb, fill, width); + + while(*prefix) + *it = ct.widen(*(prefix++)); + + if(adjust == std::ios_base::internal) + put_fill(it, iosb, fill, width); + + if(iosb.flags() & std::ios_base::uppercase) { + while(*body) + *it = ct.toupper(ct.widen(*(body++))); + } + else { + while(*body) + *it = ct.widen(*(body++)); + } + + if(adjust == std::ios_base::left) + put_fill(it, iosb, fill, width); + } + + void put_fill( + OutputIterator& it, std::ios_base& iosb, + CharType fill, int width) const + { + for(std::streamsize i = iosb.width() - static_cast(width); i > 0; --i) + *it = fill; + } + + private: + const int flags_; + }; + + + // class nonfinite_num_get ------------------------------------------------------ + + template< + class CharType, + class InputIterator = std::istreambuf_iterator + > + class nonfinite_num_get : public std::num_get + { + + public: + explicit nonfinite_num_get(int flags = 0) : flags_(flags) + {} + + protected: + virtual InputIterator do_get( + InputIterator it, InputIterator end, std::ios_base& iosb, + std::ios_base::iostate& state, float& val) const + { + get_and_check_eof(it, end, iosb, state, val); + return it; + } + + virtual InputIterator do_get( + InputIterator it, InputIterator end, std::ios_base& iosb, + std::ios_base::iostate& state, double& val) const + { + get_and_check_eof(it, end, iosb, state, val); + return it; + } + + virtual InputIterator do_get( + InputIterator it, InputIterator end, std::ios_base& iosb, + std::ios_base::iostate& state, long double& val) const + { + get_and_check_eof(it, end, iosb, state, val); + return it; + } + + //.............................................................................. + + private: + template static ValType positive_nan() + { + // On some platforms quiet_NaN() may be negative. + return (boost::math::copysign)( + std::numeric_limits::quiet_NaN(), static_cast(1) + ); + // static_cast(1) added Paul A. Bristow 5 Apr 11 + } + + template void get_and_check_eof + ( + InputIterator& it, InputIterator end, std::ios_base& iosb, + std::ios_base::iostate& state, ValType& val + ) const + { + get_signed(it, end, iosb, state, val); + if(it == end) + state |= std::ios_base::eofbit; + } + + template void get_signed + ( + InputIterator& it, InputIterator end, std::ios_base& iosb, + std::ios_base::iostate& state, ValType& val + ) const + { + const std::ctype& ct + = std::use_facet >(iosb.getloc()); + + char c = peek_char(it, end, ct); + + bool negative = (c == '-'); + + if(negative || c == '+') + { + ++it; + c = peek_char(it, end, ct); + if(c == '-' || c == '+') + { // Without this check, "++5" etc would be accepted. + state |= std::ios_base::failbit; + return; + } + } + + get_unsigned(it, end, iosb, ct, state, val); + + if(negative) + { + val = (boost::math::changesign)(val); + } + } // void get_signed + + template void get_unsigned + ( // get an unsigned value into val + InputIterator& it, InputIterator end, std::ios_base& iosb, + const std::ctype& ct, + std::ios_base::iostate& state, ValType& val + ) const + { + switch(peek_char(it, end, ct)) + { + case 'i': + get_i(it, end, ct, state, val); + break; + + case 'n': + get_n(it, end, ct, state, val); + break; + + case 'q': + case 's': + get_q(it, end, ct, state, val); + break; + + default: + it = std::num_get::do_get( + it, end, iosb, state, val); + if((flags_ & legacy) && val == static_cast(1) + && peek_char(it, end, ct) == '#') + get_one_hash(it, end, ct, state, val); + break; + } + } // get_unsigned + + //.......................................................................... + + template void get_i + ( // Get the rest of all strings starting with 'i', expect "inf", "infinity". + InputIterator& it, InputIterator end, const std::ctype& ct, + std::ios_base::iostate& state, ValType& val + ) const + { + if(!std::numeric_limits::has_infinity + || (flags_ & trap_infinity)) + { + state |= std::ios_base::failbit; + return; + } + + ++it; + if(!match_string(it, end, ct, "nf")) + { + state |= std::ios_base::failbit; + return; + } + + if(peek_char(it, end, ct) != 'i') + { + val = std::numeric_limits::infinity(); // "inf" + return; + } + + ++it; + if(!match_string(it, end, ct, "nity")) + { // Expected "infinity" + state |= std::ios_base::failbit; + return; + } + + val = std::numeric_limits::infinity(); // "infinity" + } // void get_i + + template void get_n + ( // Get expected strings after 'n', "nan", "nanq", "nans", "nan(...)" + InputIterator& it, InputIterator end, const std::ctype& ct, + std::ios_base::iostate& state, ValType& val + ) const + { + if(!std::numeric_limits::has_quiet_NaN + || (flags_ & trap_nan)) { + state |= std::ios_base::failbit; + return; + } + + ++it; + if(!match_string(it, end, ct, "an")) + { + state |= std::ios_base::failbit; + return; + } + + switch(peek_char(it, end, ct)) { + case 'q': + case 's': + if(flags_ && legacy) + ++it; + break; // "nanq", "nans" + + case '(': // Optional payload field in (...) follows. + { + ++it; + char c; + while((c = peek_char(it, end, ct)) + && c != ')' && c != ' ' && c != '\n' && c != '\t') + ++it; + if(c != ')') + { // Optional payload field terminator missing! + state |= std::ios_base::failbit; + return; + } + ++it; + break; // "nan(...)" + } + + default: + break; // "nan" + } + + val = positive_nan(); + } // void get_n + + template void get_q + ( // Get expected rest of string starting with 'q': "qnan". + InputIterator& it, InputIterator end, const std::ctype& ct, + std::ios_base::iostate& state, ValType& val + ) const + { + if(!std::numeric_limits::has_quiet_NaN + || (flags_ & trap_nan) || !(flags_ & legacy)) + { + state |= std::ios_base::failbit; + return; + } + + ++it; + if(!match_string(it, end, ct, "nan")) + { + state |= std::ios_base::failbit; + return; + } + + val = positive_nan(); // "QNAN" + } // void get_q + + template void get_one_hash + ( // Get expected string after having read "1.#": "1.#IND", "1.#QNAN", "1.#SNAN". + InputIterator& it, InputIterator end, const std::ctype& ct, + std::ios_base::iostate& state, ValType& val + ) const + { + + ++it; + switch(peek_char(it, end, ct)) + { + case 'i': // from IND (indeterminate), considered same a QNAN. + get_one_hash_i(it, end, ct, state, val); // "1.#IND" + return; + + case 'q': // from QNAN + case 's': // from SNAN - treated the same as QNAN. + if(std::numeric_limits::has_quiet_NaN + && !(flags_ & trap_nan)) + { + ++it; + if(match_string(it, end, ct, "nan")) + { // "1.#QNAN", "1.#SNAN" + // ++it; // removed as caused assert() cannot increment iterator). +// (match_string consumes string, so not needed?). +// https://svn.boost.org/trac/boost/ticket/5467 +// Change in nonfinite_num_facet.hpp Paul A. Bristow 11 Apr 11 makes legacy_test.cpp work OK. + val = positive_nan(); // "1.#QNAN" + return; + } + } + break; + + default: + break; + } + + state |= std::ios_base::failbit; + } // void get_one_hash + + template void get_one_hash_i + ( // Get expected strings after 'i', "1.#INF", 1.#IND". + InputIterator& it, InputIterator end, const std::ctype& ct, + std::ios_base::iostate& state, ValType& val + ) const + { + ++it; + + if(peek_char(it, end, ct) == 'n') + { + ++it; + switch(peek_char(it, end, ct)) + { + case 'f': // "1.#INF" + if(std::numeric_limits::has_infinity + && !(flags_ & trap_infinity)) + { + ++it; + val = std::numeric_limits::infinity(); + return; + } + break; + + case 'd': // 1.#IND" + if(std::numeric_limits::has_quiet_NaN + && !(flags_ & trap_nan)) + { + ++it; + val = positive_nan(); + return; + } + break; + + default: + break; + } + } + + state |= std::ios_base::failbit; + } // void get_one_hash_i + + //.......................................................................... + + char peek_char + ( // Return next char (from input buffer). + InputIterator& it, InputIterator end, + const std::ctype& ct + ) const + { + if(it == end) return 0; + return ct.narrow(ct.tolower(*it), 0); // Always tolower to ensure case insensitive. + } + + bool match_string + ( // Match remaining chars to expected string (case insensitive). + InputIterator& it, InputIterator end, + const std::ctype& ct, + const char* s + ) const + { + while(it != end && *s && *s == ct.narrow(ct.tolower(*it), 0)) + { + ++s; + ++it; + } + return !*s; + } // char peek_char + + private: + const int flags_; + }; // + + //------------------------------------------------------------------------------ + + } // namespace math +} // namespace boost + +#ifdef _MSC_VER +# pragma warning(pop) +#endif + +#endif From 957aac784a8a10856911ac80c304cf93cbcde323 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Tue, 19 Apr 2011 17:59:46 +0000 Subject: [PATCH 44/82] Tabs removed, end newlines added, and max/min () to meet inspection report comments. [SVN r71379] --- example/inspect_fp.cpp | 106 +++++++++++----------- example/inverse_gaussian_example.cpp | 80 ++++++++-------- example/lexical_cast_nonfinite_facets.cpp | 9 +- example/nonfinite_facet_sstream.cpp | 56 ++++++------ example/nonfinite_legacy.cpp | 36 ++++---- example/nonfinite_loopback_ok.cpp | 14 +-- example/nonfinite_signaling_NaN.cpp | 48 +++++----- example/test_nonfinite_loopback.cpp | 20 ++-- 8 files changed, 184 insertions(+), 185 deletions(-) diff --git a/example/inspect_fp.cpp b/example/inspect_fp.cpp index f9e1146fa..0838b8ddd 100644 --- a/example/inspect_fp.cpp +++ b/example/inspect_fp.cpp @@ -164,61 +164,61 @@ void print_row(const char* name, T val, bool ok) Sample output on an AMD Quadcore running MSVC 10 Processor: x86 or x64 - + This platform is little-endian. BOOST_LITTTLE_ENDIAN is defined. - + ---------- float -------------------- - - 0 00 00 00 00 - sn.min 00 00 00 01 - -sn.min 80 00 00 01 - n.min/256 00 00 80 00 - n.min/2 00 40 00 00 - -n.min/2 80 40 00 00 - n.min 00 80 00 00 - 1 3f 80 00 00 - 3/4 3f 40 00 00 - 4/3 3f aa aa ab - max 7f 7f ff ff - inf 7f 80 00 00 - q.nan 7f c0 00 00 - s.nan 7f c0 00 01 - - + + 0 00 00 00 00 + sn.min 00 00 00 01 + -sn.min 80 00 00 01 + n.min/256 00 00 80 00 + n.min/2 00 40 00 00 + -n.min/2 80 40 00 00 + n.min 00 80 00 00 + 1 3f 80 00 00 + 3/4 3f 40 00 00 + 4/3 3f aa aa ab + max 7f 7f ff ff + inf 7f 80 00 00 + q.nan 7f c0 00 00 + s.nan 7f c0 00 01 + + ---------- double ------------------- - - 0 00 00 00 00 00 00 00 00 - sn.min 00 00 00 00 00 00 00 01 - -sn.min 80 00 00 00 00 00 00 01 - n.min/256 00 00 10 00 00 00 00 00 - n.min/2 00 08 00 00 00 00 00 00 - -n.min/2 80 08 00 00 00 00 00 00 - n.min 00 10 00 00 00 00 00 00 - 1 3f f0 00 00 00 00 00 00 - 3/4 3f e8 00 00 00 00 00 00 - 4/3 3f f5 55 55 55 55 55 55 - max 7f ef ff ff ff ff ff ff - inf 7f f0 00 00 00 00 00 00 - q.nan 7f f8 00 00 00 00 00 00 - s.nan 7f f8 00 00 00 00 00 01 - - + + 0 00 00 00 00 00 00 00 00 + sn.min 00 00 00 00 00 00 00 01 + -sn.min 80 00 00 00 00 00 00 01 + n.min/256 00 00 10 00 00 00 00 00 + n.min/2 00 08 00 00 00 00 00 00 + -n.min/2 80 08 00 00 00 00 00 00 + n.min 00 10 00 00 00 00 00 00 + 1 3f f0 00 00 00 00 00 00 + 3/4 3f e8 00 00 00 00 00 00 + 4/3 3f f5 55 55 55 55 55 55 + max 7f ef ff ff ff ff ff ff + inf 7f f0 00 00 00 00 00 00 + q.nan 7f f8 00 00 00 00 00 00 + s.nan 7f f8 00 00 00 00 00 01 + + ---------- long double -------------- - - 0 00 00 00 00 00 00 00 00 - sn.min 00 00 00 00 00 00 00 01 - -sn.min 80 00 00 00 00 00 00 01 - n.min/256 00 00 10 00 00 00 00 00 - n.min/2 00 08 00 00 00 00 00 00 - -n.min/2 80 08 00 00 00 00 00 00 - n.min 00 10 00 00 00 00 00 00 - 1 3f f0 00 00 00 00 00 00 - 3/4 3f e8 00 00 00 00 00 00 - 4/3 3f f5 55 55 55 55 55 55 - max 7f ef ff ff ff ff ff ff - inf 7f f0 00 00 00 00 00 00 - q.nan 7f f8 00 00 00 00 00 00 - s.nan 7f f8 00 00 00 00 00 01 - - */ \ No newline at end of file + + 0 00 00 00 00 00 00 00 00 + sn.min 00 00 00 00 00 00 00 01 + -sn.min 80 00 00 00 00 00 00 01 + n.min/256 00 00 10 00 00 00 00 00 + n.min/2 00 08 00 00 00 00 00 00 + -n.min/2 80 08 00 00 00 00 00 00 + n.min 00 10 00 00 00 00 00 00 + 1 3f f0 00 00 00 00 00 00 + 3/4 3f e8 00 00 00 00 00 00 + 4/3 3f f5 55 55 55 55 55 55 + max 7f ef ff ff ff ff ff ff + inf 7f f0 00 00 00 00 00 00 + q.nan 7f f8 00 00 00 00 00 00 + s.nan 7f f8 00 00 00 00 00 01 + + */ diff --git a/example/inverse_gaussian_example.cpp b/example/inverse_gaussian_example.cpp index 155b531b7..4f212aa5e 100644 --- a/example/inverse_gaussian_example.cpp +++ b/example/inverse_gaussian_example.cpp @@ -8,7 +8,7 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) // Example of using the Inverse Gaussian (or Inverse Normal) distribution. -// The Wald Distribution is +// The Wald Distribution is // Note that this file contains Quickbook mark-up as well as code @@ -72,22 +72,22 @@ int main() cout.precision(17); // std::numeric_limits::max_digits10; for 64-bit doubles. // Traditional tables and values. - double step = 0.2; // in z + double step = 0.2; // in z double range = 4; // min and max z = -range to +range. // Construct a (standard) inverse gaussian distribution s - inverse_gaussian w11(1, 1); + inverse_gaussian w11(1, 1); // (default mean = units, and standard deviation = unity) cout << "(Standard) Inverse Gaussian distribution, mean = "<< w11.mean() << ", scale = " << w11.scale() << endl; /*` First the probability distribution function (pdf). - */ + */ cout << "Probability distribution function (pdf) values" << endl; cout << " z " " pdf " << endl; cout.precision(5); for (double z = (numeric_limits::min)(); z < range + step; z += step) { - cout << left << setprecision(3) << setw(6) << z << " " + cout << left << setprecision(3) << setw(6) << z << " " << setprecision(precision) << setw(12) << pdf(w11, z) << endl; } cout.precision(6); // default @@ -100,13 +100,13 @@ int main() cout << " z " " cdf " << endl; for (double z = (numeric_limits::min)(); z < range + step; z += step) { - cout << left << setprecision(3) << setw(6) << z << " " + cout << left << setprecision(3) << setw(6) << z << " " << setprecision(precision) << setw(12) << cdf(w11, z) << endl; } /*`giving the following table: [pre - z pdf - 2.23e-308 -1.#IND + z pdf + 2.23e-308 -1.#IND 0.2 0.90052111680384117 0.4 1.0055127039453111 0.6 0.75123750098955733 @@ -127,9 +127,9 @@ int main() 3.6 0.022840312999395804 3.8 0.019196657941016954 4 0.016189699458236451 - Integral (area under the curve) from 0 up to z (cdf) - z cdf - 2.23e-308 0 + Integral (area under the curve) from 0 up to z (cdf) + z cdf + 2.23e-308 0 0.2 0.063753567519976254 0.4 0.2706136704424541 0.6 0.44638391340412931 @@ -152,7 +152,7 @@ int main() 4 0.97907636417888622 ] -/*`We can get the inverse, the quantile, percentile, percentage point, or critical value +/*`We can get the inverse, the quantile, percentile, percentage point, or critical value for a probability for a few probability from the above table, for z = 0.4, 1.0, 2.0: */ cout << quantile(w11, 0.27061367044245421 ) << endl; // 0.4 @@ -174,7 +174,7 @@ for a probability for a few probability from the above table, for z = 0.4, 1.0, // formatC(SuppDists::qinvGauss(0.3649755481729598, 1, 1), digits=17) [1] "0.50000000969034875" - + // formatC(SuppDists::dinvGauss(0.01, 1, 1), digits=17) [1] "2.0811768202028392e-19" // formatC(SuppDists::pinvGauss(0.01, 1, 1), digits=17) [1] "4.122313403318778e-23" @@ -193,12 +193,12 @@ for a probability for a few probability from the above table, for z = 0.4, 1.0, //double p = pdf(w11, x); //double c = cdf(w11, x); // cdf(1, 1, 1) = 0.66810200122317065 //cout << "cdf(" << x << ", " << w11.mean() << ", "<< w11.scale() << ") = " << c << endl; // cdf(x, 1, 1) 0.27061367044245421 - //cout << "pdf(" << x << ", " << w11.mean() << ", "<< w11.scale() << ") = " << p << endl; + //cout << "pdf(" << x << ", " << w11.mean() << ", "<< w11.scale() << ") = " << p << endl; //double q = quantile(w11, c); //cout << "quantile(w11, " << c << ") = " << q << endl; //cout << "quantile(w11, 4.122313403318778e-23) = "<< quantile(w11, 4.122313403318778e-23) << endl; // quantile - //cout << "quantile(w11, 4.8791443010851493e-219) = " << quantile(w11, 4.8791443010851493e-219) << endl; // quantile + //cout << "quantile(w11, 4.8791443010851493e-219) = " << quantile(w11, 4.8791443010851493e-219) << endl; // quantile //double c1 = 1 - cdf(w11, x); // 1 - cdf(1, 1, 1) = 0.33189799877682935 //cout << "1 - cdf(" << x << ", " << w11.mean() << ", " << w11.scale() << ") = " << c1 << endl; // cdf(x, 1, 1) 0.27061367044245421 @@ -210,7 +210,7 @@ for a probability for a few probability from the above table, for z = 0.4, 1.0, //cout << "quantile(w11, " << c << ") = "<< quantile(w11, c) << endl; // quantile = 0.99999999999999978 == x = 1 //cout << "quantile(w11, " << c << ") = "<< quantile(w11, 1 - c) << endl; // quantile complement. quantile(w11, 0.66810200122317065) = 0.46336593652340152 // cout << "quantile(complement(w11, " << c << ")) = " << quantile(complement(w11, c)) << endl; // quantile complement = 0.46336593652340163 - + // cdf(1, 1, 1) = 0.66810200122317065 // 1 - cdf(1, 1, 1) = 0.33189799877682935 // cdf(complement(1, 1, 1)) = 0.33189799877682929 @@ -219,21 +219,21 @@ for a probability for a few probability from the above table, for z = 0.4, 1.0, // 1 - quantile(w11, 0.66810200122317065) = 2.2204460492503131e-016 // quantile(complement(w11, 0.33189799877682929)) = 0.99999999999999989 - + // qinvgauss(c, 1, 1) = 0.3999999999999998 // SuppDists::qinvGauss(0.270613670442454, 1, 1) [1] 0.4 - + /* - double qs = pinvgaussU(c, 1, 1); // + double qs = pinvgaussU(c, 1, 1); // cout << "qinvgaussU(c, 1, 1) = " << qs << endl; // qinvgaussU(c, 1, 1) = 0.86567442459240929 - // > z=q - exp(c) * p [1] 0.8656744 qs 0.86567442459240929 double + // > z=q - exp(c) * p [1] 0.8656744 qs 0.86567442459240929 double // Is this the complement? cout << "qgamma(0.2, 0.5, 1) expect 0.0320923 = " << qgamma(0.2, 0.5, 1) << endl; // qgamma(0.2, 0.5, 1) expect 0.0320923 = 0.032092377333650807 - - cout << "qinvgauss(pinvgauss(x, 1, 1) = " << q + + cout << "qinvgauss(pinvgauss(x, 1, 1) = " << q << ", diff = " << x - q << ", fraction = " << (x - q) /x << endl; // 0.5 */ // > SuppDists::pinvGauss(0.02, 1,1) [1] 4.139176e-12 @@ -241,15 +241,15 @@ for a probability for a few probability from the above table, for z = 0.4, 1.0, // pinvGauss(1,1,1) = 0.668102 C++ == 0.66810200122317065 - // qinvGauss(0.668102,1,1) = 1 + // qinvGauss(0.668102,1,1) = 1 // SuppDists::pinvGauss(0.3,1,1) = 0.1657266 // cout << "qinvGauss(0.0040761113207110162, 1, 1) = " << qinvgauss(0.0040761113207110162, 1, 1) << endl; //cout << "quantile(s, 0.1657266) = " << quantile(s, 0.1657266) << endl; // expect 1. - //wald s12(2, 1); + //wald s12(2, 1); //cout << "qinvGauss(0.3, 2, 1) = " << qinvgauss(0.3, 2, 1) << endl; // SuppDists::qinvGauss(0.3,2,1) == 0.58288065635052944 - //// but actually get qinvGauss(0.3, 2, 1) = 0.58288064777632187 + //// but actually get qinvGauss(0.3, 2, 1) = 0.58288064777632187 //cout << "cdf(s12, 0.3) = " << cdf(s12, 0.3) << endl; // cdf(s12, 0.3) = 0.10895339868447573 // using boost::math::wald; @@ -295,8 +295,8 @@ for a probability for a few probability from the above table, for z = 0.4, 1.0, cout.precision(6); // Restore to default. } // try catch(const std::exception& e) - { // Always useful to include try & catch blocks because default policies - // are to throw exceptions on arguments that cause errors like underflow, overflow. + { // Always useful to include try & catch blocks because default policies + // are to throw exceptions on arguments that cause errors like underflow, overflow. // Lacking try & catch blocks, the program will abort without a message below, // which may give some helpful clues as to the cause of the exception. std::cout << @@ -309,14 +309,14 @@ for a probability for a few probability from the above table, for z = 0.4, 1.0, /* Output is: - + inverse_gaussian_example.cpp inverse_gaussian_example.vcxproj -> J:\Cpp\MathToolkit\test\Math_test\Debug\inverse_gaussian_example.exe Example: Inverse Gaussian Distribution. (Standard) Inverse Gaussian distribution, mean = 1, scale = 1 Probability distribution function (pdf) values - z pdf - 2.23e-308 -1.#IND + z pdf + 2.23e-308 -1.#IND 0.2 0.90052111680384117 0.4 1.0055127039453111 0.6 0.75123750098955733 @@ -337,9 +337,9 @@ inverse_gaussian_example.cpp 3.6 0.022840312999395804 3.8 0.019196657941016954 4 0.016189699458236451 - Integral (area under the curve) from 0 up to z (cdf) - z cdf - 2.23e-308 0 + Integral (area under the curve) from 0 up to z (cdf) + z cdf + 2.23e-308 0 0.2 0.063753567519976254 0.4 0.2706136704424541 0.6 0.44638391340412931 @@ -377,33 +377,33 @@ inverse_gaussian_example.cpp > SuppDists::dinvGauss(0.3, 1, 1) [1] 1.072888 > SuppDists::dinvGauss(0.1, 1, 1) [1] 0.2197948 > SuppDists::dinvGauss(0.2, 1, 1) [1] 0.9005211 -> +> x = 0.3 [1, 1] 1.0728879234594337 // R SuppDists::dinvGauss(0.3, 1, 1) [1] 1.072888 x = 1 [1, 1] 0.3989422804014327 - 0 " NA" + 0 " NA" 1 "0.3989422804014327" - 2 "0.10984782236693059" + 2 "0.10984782236693059" 3 "0.039418357969819733" 4 "0.016189699458236468" - 5 "0.007204168934430732" - 6 "0.003379893528659049" + 5 "0.007204168934430732" + 6 "0.003379893528659049" 7 "0.0016462878258114036" 8 "0.00082460931140859956" 9 "0.00042207355643694234" 10 "0.00021979480031862676" -[1] " NA" " 0.690988298942671" "0.11539974210409144" +[1] " NA" " 0.690988298942671" "0.11539974210409144" [4] "0.01799698883772935" "0.0029555399206496469" "0.00050863023587406587" [7] "9.0761842931362914e-05" "1.6655279133132795e-05" "3.1243174913715429e-06" [10] "5.96530227727434e-07" "1.1555606328299836e-07" matC(dinvGauss(0:10, 1, 3), digits=17) df = 3 -[1] " NA" " 0.690988298942671" "0.11539974210409144" +[1] " NA" " 0.690988298942671" "0.11539974210409144" [4] "0.01799698883772935" "0.0029555399206496469" "0.00050863023587406587" [7] "9.0761842931362914e-05" "1.6655279133132795e-05" "3.1243174913715429e-06" [10] "5.96530227727434e-07" "1.1555606328299836e-07" diff --git a/example/lexical_cast_nonfinite_facets.cpp b/example/lexical_cast_nonfinite_facets.cpp index b85fbf6f3..d9e0cf49a 100644 --- a/example/lexical_cast_nonfinite_facets.cpp +++ b/example/lexical_cast_nonfinite_facets.cpp @@ -64,7 +64,7 @@ using std::locale; int main () { std::cout << "finite_num_facet with lexical_cast example." << std::endl; - + // Example of using non_finite num_put and num_get facets with lexical_cast. locale old_locale; locale tmp_locale(old_locale, new nonfinite_num_put); @@ -74,7 +74,7 @@ int main () // Create a new output locale (from the tmp locale), and add the input nonfinite_num_get facet. // Note that is necessary to do add get and put facets in two steps. - + locale::global(new_locale); // Newly constructed streams // (including those streams inside lexical_cast) // now use new_locale with nonfinite facets. @@ -118,10 +118,9 @@ int main () Output: finite_num_facet with lexical_cast example. - Using C99_out_locale + Using C99_out_locale +std::numeric_limits::infinity() = inf -std::numeric_limits::infinity() = -inf +std::numeric_limits::quiet_NaN () = nan - -*/ \ No newline at end of file +*/ diff --git a/example/nonfinite_facet_sstream.cpp b/example/nonfinite_facet_sstream.cpp index 49b1d7439..686ff94c2 100644 --- a/example/nonfinite_facet_sstream.cpp +++ b/example/nonfinite_facet_sstream.cpp @@ -30,9 +30,9 @@ using std::endl; using std::locale; #include - using std::stringstream; - using std::istringstream; - using std::ostringstream; +using std::stringstream; +using std::istringstream; +using std::ostringstream; #include using std::numeric_limits; @@ -41,70 +41,70 @@ using std::numeric_limits; int main() { -//[nonfinite_facets_sstream_1 + //[nonfinite_facets_sstream_1 locale old_locale; locale tmp_locale(old_locale, new nonfinite_num_put); locale new_locale(tmp_locale, new nonfinite_num_get); -//] [/nonfinite_facets_sstream_1] + //] [/nonfinite_facets_sstream_1] // Note that to add two facets, nonfinite_num_put and nonfinite_num_get, // you have to add one at a time, using a temporary locale. { ostringstream oss; - oss.imbue(new_locale); + oss.imbue(new_locale); double inf = numeric_limits::infinity(); - oss << inf; // Write out. + oss << inf; // Write out. cout << "infinity output was " << oss.str() << endl; - assert(oss.str() == "inf"); + assert(oss.str() == "inf"); } - { + { istringstream iss; iss.str("inf"); - iss.imbue(new_locale); + iss.imbue(new_locale); double inf; - iss >> inf; // Read from "inf" + iss >> inf; // Read from "inf" cout << "Infinity input was " << iss.str() << endl; - assert(inf == numeric_limits::infinity()); + assert(inf == numeric_limits::infinity()); } { -//[nonfinite_facets_sstream_2 + //[nonfinite_facets_sstream_2 stringstream ss; ss.imbue(new_locale); double inf = numeric_limits::infinity(); ss << inf; // Write out. assert(ss.str() == "inf"); - double r; + double r; ss >> r; // Read back in. assert(inf == r); // Confirms that the double values really are identical. cout << "infinity output was " << ss.str() << endl; cout << "infinity input was " << r << endl; // But the string representation of r displayed will be the native type - // because, when it was constructed, cout had NOT been imbued + // because, when it was constructed, cout had NOT been imbued // with the new locale containing the nonfinite_numput facet. // So the cout output will be "1.#INF on MS platforms // and may be "inf" or other string representation on other platforms. - -//] [/nonfinite_facets_sstream_2] + + //] [/nonfinite_facets_sstream_2] } { stringstream ss; - ss.imbue(new_locale); + ss.imbue(new_locale); double nan = numeric_limits::quiet_NaN(); - ss << nan; // Write out. + ss << nan; // Write out. assert(ss.str() == "nan"); - double v; - ss >> v; // Read back in. + double v; + ss >> v; // Read back in. cout << "NaN output was " << ss.str() << endl; cout << "NaN input was " << v << endl; - // assert(nan == v); // Always fails because NaN == NaN fails! + // assert(nan == v); // Always fails because NaN == NaN fails! // assert(nan == numeric_limits::quiet_NaN()); asserts! // And the string representation will be the native type @@ -120,12 +120,12 @@ int main() /* //[nonfinite_facet_sstream_output - infinity output was inf - Infinity input was inf - infinity output was inf - infinity input was 1.#INF - NaN output was nan - NaN input was 1.#QNAN +infinity output was inf +Infinity input was inf +infinity output was inf +infinity input was 1.#INF +NaN output was nan +NaN input was 1.#QNAN //] [nonfinite_facet_sstream_output] */ diff --git a/example/nonfinite_legacy.cpp b/example/nonfinite_legacy.cpp index 281dde098..fdfc4e212 100644 --- a/example/nonfinite_legacy.cpp +++ b/example/nonfinite_legacy.cpp @@ -32,7 +32,7 @@ using std::endl; using std::locale; #include - using std::stringstream; +using std::stringstream; #include using std::numeric_limits; @@ -40,39 +40,39 @@ using std::numeric_limits; int main() { - + locale old_locale; - locale tmp_locale(old_locale, new nonfinite_num_put(legacy)); - locale new_locale(tmp_locale, new nonfinite_num_get(legacy)); + locale tmp_locale(old_locale, new nonfinite_num_put(legacy)); + locale new_locale(tmp_locale, new nonfinite_num_get(legacy)); // Note that to add two facets, nonfinite_num_put and nonfinite_num_get, // you have to add one at a time, using a temporary locale. { stringstream ss; - ss.imbue(new_locale); + ss.imbue(new_locale); double inf = numeric_limits::infinity(); - ss << inf; // Write out. - double r; - ss >> r; // Read back in. + ss << inf; // Write out. + double r; + ss >> r; // Read back in. cout << "infinity output was " << inf << endl; cout << "infinity input was " << r << endl; - assert(inf == r); + assert(inf == r); } { stringstream ss; - ss.imbue(new_locale); + ss.imbue(new_locale); double nan = numeric_limits::quiet_NaN(); - ss << nan; // Write out. - double v; - ss >> v; // Read back in. + ss << nan; // Write out. + double v; + ss >> v; // Read back in. cout << "NaN output was " << nan << endl; cout << "NaN input was " << v << endl; - // assert(nan == v); // Always fails because NaN == NaN fails! + // assert(nan == v); // Always fails because NaN == NaN fails! // assert(nan == numeric_limits::quiet_NaN()); asserts! } @@ -82,10 +82,10 @@ int main() Output: - infinity output was 1.#INF - infinity input was 1.#INF - NaN output was 1.#QNAN - NaN input was 1.#QNAN +infinity output was 1.#INF +infinity input was 1.#INF +NaN output was 1.#QNAN +NaN input was 1.#QNAN */ diff --git a/example/nonfinite_loopback_ok.cpp b/example/nonfinite_loopback_ok.cpp index c98de020d..6b8ac6d44 100644 --- a/example/nonfinite_loopback_ok.cpp +++ b/example/nonfinite_loopback_ok.cpp @@ -32,7 +32,7 @@ using std::endl; using std::locale; #include - using std::stringstream; +using std::stringstream; #include using std::numeric_limits; @@ -50,10 +50,10 @@ int main() stringstream ss; // Both input and output. ss.imbue(new_locale); - double inf = numeric_limits::infinity(); - ss << inf; // Write out. - double r; - ss >> r; // Read back in. + double inf = numeric_limits::infinity(); + ss << inf; // Write out. + double r; + ss >> r; // Read back in. assert(inf == r); // OK MSVC <= 10.0! @@ -63,8 +63,8 @@ int main() Output: - nonfinite_loopback_ok.vcxproj -> J:\Cpp\fp_facet\fp_facet\Debug\nonfinite_loopback_ok.exe - +nonfinite_loopback_ok.vcxproj -> J:\Cpp\fp_facet\fp_facet\Debug\nonfinite_loopback_ok.exe */ + diff --git a/example/nonfinite_signaling_NaN.cpp b/example/nonfinite_signaling_NaN.cpp index 416352d10..6bf3eae0e 100644 --- a/example/nonfinite_signaling_NaN.cpp +++ b/example/nonfinite_signaling_NaN.cpp @@ -9,7 +9,7 @@ \file \brief Tests of nonfinite signaling NaN loopback. -\detail nonfinite signaling NaN +\detail nonfinite signaling NaN test outputs using nonfinite facets (output and input) and reads back in, and checks if loopback OK. @@ -53,20 +53,20 @@ int main() { // Try Quiet NaN stringstream ss; // Both input and output. ss.imbue(default_locale); // Redundant, of course. - string infs; + string infs; if(numeric_limits::has_quiet_NaN) { // Make sure quiet NaN is specialised for type double. double qnan = numeric_limits::quiet_NaN(); ss << qnan; // Output quiet_NaN. - infs = ss.str(); // + infs = ss.str(); // } else { // Need to provide a suitable string for quiet NaN. - infs = "1.#QNAN"; + infs = "1.#QNAN"; ss << infs; } - double r; - ss >> r; // Read back in. + double r; + ss >> r; // Read back in. cout << "quiet_NaN output was " << infs << endl; // "1.#QNAN" cout << "quiet_NaN input was " << r << endl; // "1" @@ -75,20 +75,20 @@ int main() { // Try Signaling NaN stringstream ss; // Both input and output. ss.imbue(default_locale); // Redundant, of course. - string infs; + string infs; if(numeric_limits::has_signaling_NaN) { // Make sure signaling NaN is specialised for type double. double qnan = numeric_limits::signaling_NaN(); ss << qnan; // Output signaling_NaN. - infs = ss.str(); // + infs = ss.str(); // } else { // Need to provide a suitable string for signaling NaN. - infs = "1.#SNAN"; + infs = "1.#SNAN"; ss << infs; } - double r; - ss >> r; // Read back in. + double r; + ss >> r; // Read back in. cout << "signaling_NaN output was " << infs << endl; // "1.#QNAN" (or "1.#SNAN"?) cout << "signaling_NaN input was " << r << endl; // "1" @@ -99,39 +99,39 @@ int main() // Note that the legacy flag has no effect on the nonfinite_num_put output facet. cout << "Use legacy locale." << endl; - + { // Try infinity. stringstream ss; // Both input and output. ss.imbue(legacy_locale); - string infs; + string infs; if(numeric_limits::has_infinity) { // Make sure infinity is specialised for type double. double inf = numeric_limits::infinity(); ss << inf; // Output infinity. - infs = ss.str(); // + infs = ss.str(); // } else { // Need to provide a suitable string for infinity. - infs = "1.#INF"; + infs = "1.#INF"; ss << infs; } - double r; - ss >> r; // Read back in. + double r; + ss >> r; // Read back in. cout << "infinity output was " << infs << endl; // "1.#INF" cout << "infinity input was " << r << endl; // "1.#INF" } { // Try input of "1.#SNAN". - //double inf = numeric_limits::signaling_NaN(); // Assigns "1.#QNAN" on MSVC. + //double inf = numeric_limits::signaling_NaN(); // Assigns "1.#QNAN" on MSVC. // So must use explicit string "1.#SNAN" instead. stringstream ss; // Both input and output. ss.imbue(legacy_locale); string s = "1.#SNAN"; - ss << s; // Write out. - double r; - + ss << s; // Write out. + double r; + ss >> r; // Read back in. cout << "SNAN output was " << s << endl; // "1.#SNAN" @@ -142,9 +142,9 @@ int main() stringstream ss; // Both input and output. ss.imbue(legacy_locale); string s = "1.#IND"; - ss << s; // Write out. - double r; - ss >> r; // Read back in. + ss << s; // Write out. + double r; + ss >> r; // Read back in. cout << "IND output was " << s << endl; // "1.#IND" cout << "IND input was " << r << endl; // "1.#QNAN" diff --git a/example/test_nonfinite_loopback.cpp b/example/test_nonfinite_loopback.cpp index d3eba155b..c7b8e4204 100644 --- a/example/test_nonfinite_loopback.cpp +++ b/example/test_nonfinite_loopback.cpp @@ -38,20 +38,20 @@ int main() { // Try infinity. stringstream ss; // Both input and output. ss.imbue(default_locale); // Redundant, of course. - string infs; + string infs; if(numeric_limits::has_infinity) { // Make sure infinity is specialised for type double. double inf = numeric_limits::infinity(); ss << inf; // Output infinity. - infs = ss.str(); // + infs = ss.str(); // } else { // Need to provide a suitable string for infinity. infs = "1.#INF"; // Might suit MSVC? ss << infs; } - double r; - ss >> r; // Read back in. + double r; + ss >> r; // Read back in. cout << "infinity output was " << infs << endl; // "1.#INF" cout << "infinity input was " << r << endl; // "1" @@ -60,20 +60,20 @@ int main() { // Try Quiet NaN stringstream ss; // Both input and output. ss.imbue(default_locale); // Redundant, of course. - string infs; + string infs; if(numeric_limits::has_quiet_NaN) { // Make sure quiet NaN is specialised for type double. double qnan = numeric_limits::quiet_NaN(); ss << qnan; // Output quiet_NaN. - infs = ss.str(); // + infs = ss.str(); // } else { // Need to provide a suitable string for quiet_NAN. - infs = "1.#QNAN"; + infs = "1.#QNAN"; ss << infs; } - double r; - ss >> r; // Read back in. + double r; + ss >> r; // Read back in. cout << "quiet_NaN output was " << infs << endl; // "1.#QNAN" cout << "quiet_NaN input was " << r << endl; // "1#" @@ -92,6 +92,6 @@ Output (MSVC Version 10.0): quiet_NaN output was 1.#QNAN quiet_NaN input was 1 - + */ From 70adb63c875a7f8fb17f0507e52623c9be88efd6 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Tue, 19 Apr 2011 18:00:17 +0000 Subject: [PATCH 45/82] Tabs removed, end newlines added, and max/min () to meet inspection report comments. [SVN r71380] --- test/test_basic_nonfinite.cpp | 4 ++-- test/test_nonfinite_trap.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/test_basic_nonfinite.cpp b/test/test_basic_nonfinite.cpp index 3ab36f620..fe6222d54 100644 --- a/test/test_basic_nonfinite.cpp +++ b/test/test_basic_nonfinite.cpp @@ -89,8 +89,8 @@ template void basic_test_finite_impl() ValType a1 = (ValType)1.2; ValType a2 = (ValType)-3.5; - ValType a3 = std::numeric_limits::max(); - ValType a4 = -std::numeric_limits::max(); + ValType a3 = (std::numeric_limits::max)(); + ValType a4 = -(std::numeric_limits::max)(); ss << a1 << ' ' << a2 << ' ' << a3 << ' ' << a4; ValType b1, b2, b3, b4; diff --git a/test/test_nonfinite_trap.cpp b/test/test_nonfinite_trap.cpp index 63e014b50..628ae9e91 100644 --- a/test/test_nonfinite_trap.cpp +++ b/test/test_nonfinite_trap.cpp @@ -68,8 +68,8 @@ template void trap_test_finite_impl() ValType a1 = (ValType)1.2; ValType a2 = (ValType)-3.5; - ValType a3 = std::numeric_limits::max(); - ValType a4 = -std::numeric_limits::max(); + ValType a3 = (std::numeric_limits::max)(); + ValType a4 = -(std::numeric_limits::max)(); ss << a1 << ' ' << a2 << ' ' << a3 << ' ' << a4; ValType b1, b2, b3, b4; From caf05d27cdf16ee8c039f715411e03c1f8c39bba Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Tue, 19 Apr 2011 18:04:58 +0000 Subject: [PATCH 46/82] Added boost::math::detail::changesign_impl(x, method()); to try to get to work with gcc. [SVN r71381] --- include/boost/math/special_functions/sign.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/math/special_functions/sign.hpp b/include/boost/math/special_functions/sign.hpp index fdbae280f..0c01fbae1 100644 --- a/include/boost/math/special_functions/sign.hpp +++ b/include/boost/math/special_functions/sign.hpp @@ -128,7 +128,7 @@ template T (changesign)(T x) typedef typename traits::method method; typedef typename boost::is_floating_point::type fp_tag; - return detail::changesign_impl(x, method()); + return boost::math::detail::changesign_impl(x, method()); } } // namespace math From 5cb894721be34f590faa6fcb6d0bf849ff0af5f0 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Wed, 20 Apr 2011 08:49:02 +0000 Subject: [PATCH 47/82] Added native_tag specialisation to try to cure failures on gcc. [SVN r71389] --- include/boost/math/special_functions/sign.hpp | 41 ++++++++++++------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/include/boost/math/special_functions/sign.hpp b/include/boost/math/special_functions/sign.hpp index 0c01fbae1..405bfc021 100644 --- a/include/boost/math/special_functions/sign.hpp +++ b/include/boost/math/special_functions/sign.hpp @@ -21,6 +21,8 @@ namespace boost{ namespace math{ namespace detail { + // signbit + #ifdef BOOST_MATH_USE_STD_FPCLASSIFY template inline int signbit_impl(T x, native_tag const&) @@ -62,6 +64,29 @@ namespace detail { return a & traits::sign ? 1 : 0; } + // Changesign + +#ifdef BOOST_MATH_USE_STD_FPCLASSIFY + template + inline int changesign_impl(T x, native_tag const&) + { + return -x; + } +#endif + + template + inline T (changesign_impl)(T x, generic_tag const&) + { + return -x; + } + + template + inline T (changesign_impl)(T x, generic_tag const&) + { + return -x; + } + + template inline T changesign_impl(T x, ieee_copy_all_bits_tag const&) { @@ -86,18 +111,6 @@ namespace detail { return x; } - template - inline T (changesign_impl)(T x, generic_tag const&) - { - return -x; - } - - template - inline T (changesign_impl)(T x, generic_tag const&) - { - return -x; - } - } // namespace detail @@ -123,12 +136,12 @@ inline T copysign BOOST_NO_MACRO_EXPAND(const T& x, const T& y) } template T (changesign)(T x) -{ +{ //!< \brief return unchanged binary pattern of x, except for change of sign bit. typedef typename detail::fp_traits::type traits; typedef typename traits::method method; typedef typename boost::is_floating_point::type fp_tag; - return boost::math::detail::changesign_impl(x, method()); + return detail::changesign_impl(x, method()); } } // namespace math From 72db3cd5cbe1c9eaa20d71bb8f123dfbcfea4678 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Wed, 20 Apr 2011 08:55:52 +0000 Subject: [PATCH 48/82] Added std:: to numeric_limits in #ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST branch. [SVN r71390] --- example/nonfinite_facet_simple.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example/nonfinite_facet_simple.cpp b/example/nonfinite_facet_simple.cpp index 0d7596a79..0ef924b79 100644 --- a/example/nonfinite_facet_simple.cpp +++ b/example/nonfinite_facet_simple.cpp @@ -159,8 +159,8 @@ int main () // With the nonfinite_num_put and _get facets, the width of the output is constant. #ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST - std::streamsize max_digits10 = 2 + numeric_limits::digits * 30103UL / 100000UL; - cout << "BOOST_NO_NUMERIC_LIMITS_LOWEST is defined." << endl; + cout << "BOOST_NO_NUMERIC_LIMITS_LOWEST is defined, so no max_digits10 available." << endl; + std::streamsize max_digits10 = 2 + std::numeric_limits::digits * 30103UL / 100000UL; #else // Can use new C++0X max_digits10 (the maximum potentially significant digits). std::streamsize max_digits10 = std::numeric_limits::max_digits10; From 1a9b4c6c36a0539dbf6bbce0c953a90e2af19ab8 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Wed, 20 Apr 2011 09:08:56 +0000 Subject: [PATCH 49/82] Provided workaround for older compilers without max_digits10. [SVN r71391] --- example/nonfinite_num_facet.cpp | 56 +++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/example/nonfinite_num_facet.cpp b/example/nonfinite_num_facet.cpp index 9c8b2b71f..19c2b6f12 100644 --- a/example/nonfinite_num_facet.cpp +++ b/example/nonfinite_num_facet.cpp @@ -9,15 +9,16 @@ * * This simple program illustrates how to use the * `boost/math/nonfinite_num_facets.hpp' material from the original - * Floating Point Utilities by Johan Rade. - + * Floating Point Utilities contribution by Johan Rade. + * Floating Point Utility library has been accepted into Boost, + * but the utilities have been/will be incorporated into Boost.Math library. * \file \brief A fairly simple example of using non_finite_num facet for C99 standard output of infinity and NaN. -\detail This program illustrates how to use the +\detail This program illustrates how to use the `boost/math/nonfinite_num_facets.hpp' material from the original Floating Point Utilities contribution by Johan Rade. Floating Point Utility library has been accepted into Boost, @@ -25,7 +26,7 @@ C99 standard output of infinity and NaN. Based on an example from Francois Mauger. - double and float variables are assigned ordinary finite values (pi), + Double and float variables are assigned ordinary finite values (pi), and nonfinite like infinity and NaN. These values are then output and read back in, and then redisplayed. @@ -36,15 +37,28 @@ C99 standard output of infinity and NaN. using std::cout; using std::endl; -//#include #include // numeric_limits +using std::numeric_limits; #include -// from Johan Rade Floating Point Utilities : #include -static const char sep = ','; +static const char sep = ','; // Separator of bracketed float and double values. + +// Use max_digits10 (or equivalent) to obtain +// all potentially significant decimal digits for the floating-point types. + +#ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST + cout << "BOOST_NO_NUMERIC_LIMITS_LOWEST is defined, so no max_digits10 available." << endl; + std::streamsize max_digits10_float = 2 + std::numeric_limits::digits * 30103UL / 100000UL; + std::streamsize max_digits10_double = 2 + std::numeric_limits::digits * 30103UL / 100000UL; +#else + // Can use new C++0X max_digits10 (the maximum potentially significant digits). + std::streamsize max_digits10_float = std::numeric_limits::max_digits10; + std::streamsize max_digits10_double = std::numeric_limits::max_digits10; +#endif + /* A class with a float and a double */ struct foo @@ -80,12 +94,11 @@ struct foo else a_out << a_title; a_out << " : " << std::endl; a_out << "|-- " << "fvalue = "; - // Use max_digits10 to obtain - // all potentially significant decimal digits for the floating-point type. - a_out.precision (std::numeric_limits::max_digits10); + + a_out.precision (max_digits10_float); a_out << fvalue << std::endl; a_out << "`-- " << "dvalue = "; - a_out.precision (std::numeric_limits::max_digits10); + a_out.precision (max_digits10_double); a_out << dvalue << std::endl; return; } @@ -101,15 +114,15 @@ struct foo std::ostream & operator<< (std::ostream & a_out, const foo & a_foo) { // Output bracketed FPs, for example "(3.1415927,3.1415926535897931)" - a_out.precision (std::numeric_limits::max_digits10); + a_out.precision (max_digits10_float); a_out << "(" << a_foo.fvalue << sep ; - a_out.precision (std::numeric_limits::max_digits10); + a_out.precision (max_digits10_double); a_out << a_foo.dvalue << ")"; return a_out; } std::istream & operator>> (std::istream & a_in, foo & a_foo) -{ // Input bracketed FPs, into a foo structure, +{ // Input bracketed floating-point values into a foo structure, // for example from "(3.1415927,3.1415926535897931)" char c = 0; a_in.get (c); @@ -157,7 +170,10 @@ int main () { std::cout << "nonfinite_num_facet simple example." << std::endl; - std::locale the_default_locale (std::locale::classic ()); + std::cout << "std::numeric_limits::max_digits10 is " << max_digits10_float << endl; + std::cout << "std::numeric_limits::max_digits10 is " << max_digits10_double << endl; + + std::locale the_default_locale (std::locale::classic ()); { std::cout << "Write to a string buffer (using default locale) :" << std::endl; @@ -193,11 +209,11 @@ int main () iss >> f0 >> f1 >> f2 >> f3; if (! iss) { - std::cout << "Input Format error !" << std::endl; + std::cerr << "Input Format error !" << std::endl; } else { - std::cout << "Input OK." << std::endl; + std::cerr << "Input OK." << std::endl; cout << "Display in default locale format " << endl; f0.print (std::cout, "f0"); f1.print (std::cout, "f1"); @@ -217,8 +233,9 @@ int main () Output: - nonfinite_num_facet.vcxproj -> J:\Cpp\MathToolkit\test\Math_test\Release\nonfinite_num_facet.exe - nonfinite_num_facet simple example. +nonfinite_num_facet simple example. + std::numeric_limits::max_digits10 is 8 + std::numeric_limits::max_digits10 is 17 Write to a string buffer (using default locale) : f0 : |-- fvalue = 3.1415927 @@ -250,6 +267,5 @@ Output: `-- dvalue = 1.#QNAN Input done. End nonfinite_num_facet.cpp - Input OK. */ \ No newline at end of file From fd4ae7ed8fedd15324475f8a537a695581d6eede Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Wed, 20 Apr 2011 09:19:21 +0000 Subject: [PATCH 50/82] Provided workaround for older compilers without max_digits10. [SVN r71392] --- example/nonfinite_num_facet_serialization.cpp | 219 ++++++++++++++---- 1 file changed, 172 insertions(+), 47 deletions(-) diff --git a/example/nonfinite_num_facet_serialization.cpp b/example/nonfinite_num_facet_serialization.cpp index c094abb7b..4a31883dc 100644 --- a/example/nonfinite_num_facet_serialization.cpp +++ b/example/nonfinite_num_facet_serialization.cpp @@ -7,23 +7,20 @@ * (See accompanying file LICENSE_1_0.txt * or copy at http://www.boost.org/LICENSE_1_0.txt) * - * This sample program illustrates how to use the + * This sample program by Francois Mauger illustrates how to use the * `boost/math/nonfinite_num_facets.hpp' material from the original * Floating Point Utilities contribution by Johan Rade. Here it is * shown how non finite floating number can be serialized and * deserialized from I/O streams and/or Boost text/XML archives. It * produces two archives stored in `test.txt' and `test.xml' files. * - * Tested with Boost 1.44, gcc 4.4.1, Linux/i686 (32bits) - * + * Tested with Boost 1.44, gcc 4.4.1, Linux/i686 (32bits). + * Tested with Boost.1.46.1 MSVC 10.0 32 bit. */ - #ifdef _MSC_VER # pragma warning(push) - -# pragma warning(disable : 4224) // formal parameter 'version' was previously defined as a type -# pragma warning(disable : 4100) // unreferenced formal parameter +//# pragma warning(disable : 4100) // unreferenced formal parameter. #endif #include @@ -39,35 +36,53 @@ #include #include -// from Johan Rade Floating Point Utilities : +// from the Floating Point Utilities : #include +static const char sep = ','; // Separator of bracketed float and double values. + +// Use max_digits10 (or equivalent) to obtain +// all potentially significant decimal digits for the floating-point types. + +#ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST + cout << "BOOST_NO_NUMERIC_LIMITS_LOWEST is defined, so no max_digits10 available." << endl; + std::streamsize max_digits10_float = 2 + std::numeric_limits::digits * 30103UL / 100000UL; + std::streamsize max_digits10_double = 2 + std::numeric_limits::digits * 30103UL / 100000UL; +#else + // Can use new C++0X max_digits10 (the maximum potentially significant digits). + std::streamsize max_digits10_float = std::numeric_limits::max_digits10; + std::streamsize max_digits10_double = std::numeric_limits::max_digits10; +#endif + + /* A class with a float and a double */ struct foo { - foo () : fvalue (3.141593F), dvalue (3.14159265358979) {} - // set the values at -infinity : + foo () : fvalue (3.1415927F), dvalue (3.1415926535897931) + { // Construct using 32 and 64-bit max_digits10 decimal digits value of pi. + } + // Set the values at -infinity : void minus_infinity () { fvalue = -std::numeric_limits::infinity (); dvalue = -std::numeric_limits::infinity (); return; } - // set the values at +infinity : + // Set the values at +infinity : void plus_infinity () { fvalue = +std::numeric_limits::infinity (); dvalue = +std::numeric_limits::infinity (); return; } - // set the values at NaN : + // Set the values at NaN : void nan () { fvalue = +std::numeric_limits::quiet_NaN (); dvalue = +std::numeric_limits::quiet_NaN (); return; } - // print : + // Print : void print (std::ostream & a_out, const std::string & a_title) { if (a_title.empty ()) a_out << "foo"; @@ -96,18 +111,22 @@ struct foo } // Attributes : - float fvalue; // single precision floating number - double dvalue; // double precision floating number + float fvalue; // Single precision floating-point number. + double dvalue; // Double precision floating-point number. }; std::ostream & operator<< (std::ostream & a_out, const foo & a_foo) -{ - a_out << "(" << a_foo.fvalue << ";" << a_foo.dvalue << ")"; +{ // Output bracketed FPs, for example "(3.1415927,3.1415926535897931)" + a_out.precision (max_digits10_float); + a_out << "(" << a_foo.fvalue << sep ; + a_out.precision (max_digits10_double); + a_out << a_foo.dvalue << ")"; return a_out; } std::istream & operator>> (std::istream & a_in, foo & a_foo) -{ +{ // Input bracketed floating-point values into a foo structure, + // for example from "(3.1415927,3.1415926535897931)" char c = 0; a_in.get (c); if (c != '(') @@ -124,10 +143,10 @@ std::istream & operator>> (std::istream & a_in, foo & a_foo) } a_in >> std::ws; a_in.get (c); - if (c != ';') + if (c != sep) { std::cerr << "ERROR: operator>> c='" << c << "'" << std::endl; - std::cerr << "ERROR: operator>> No ; " << std::endl; + std::cerr << "ERROR: operator>> No '" << sep << "'" << std::endl; a_in.setstate(std::ios::failbit); return a_in; } @@ -152,36 +171,43 @@ std::istream & operator>> (std::istream & a_in, foo & a_foo) int main (void) { - std::clog << "Hello Booster !" << std::endl - << "This is the `test_nonfinite_num_facets_1.cpp' sample program !" << std::endl; + std::clog << std::endl + << "Nonfinite_serialization.cpp' example program." << std::endl; + + + std::cout << "std::numeric_limits::max_digits10 is " << max_digits10_float << std::endl; + std::cout << "std::numeric_limits::max_digits10 is " << max_digits10_double << std::endl; std::locale the_default_locale (std::locale::classic (), new boost::archive::codecvt_null); + // Demonstrate use of nonfinite facets with stringstreams. { - std::clog << "Write to some string buffer..." << std::endl; + std::clog << "Construct some foo structures with a finite and nonfinites." << std::endl; foo f0; foo f1; f1.minus_infinity (); foo f2; f2.plus_infinity (); foo f3; f3.nan (); - + // Display them. f0.print (std::clog, "f0"); f1.print (std::clog, "f1"); f2.print (std::clog, "f2"); f3.print (std::clog, "f3"); + std::clog << " Write to a string buffer." << std::endl; std::ostringstream oss; std::locale the_out_locale (the_default_locale, new boost::math::nonfinite_num_put); oss.imbue (the_out_locale); - oss.precision (15); + oss.precision (max_digits10_double); oss << f0 << f1 << f2 << f3; std::clog << "Output is: `" << oss.str () << "'" << std::endl; - std::clog << "Done." << std::endl; + std::clog << "Done output to ostringstream." << std::endl; } { - std::clog << "Read from to some string buffer..." << std::endl; - std::string the_string = "(3.14159;3.14159)(-inf;-inf)(inf;inf)(nan;nan)"; + std::clog << "Read foo structures from a string buffer." << std::endl; + + std::string the_string = "(3.1415927,3.1415926535897931)(-inf,-inf)(inf,inf)(nan,nan)"; std::clog << "Input is: `" << the_string << "'" << std::endl; std::locale the_in_locale (the_default_locale, new boost::math::nonfinite_num_get); @@ -196,32 +222,33 @@ int main (void) } else { - std::cerr << "Success !" << std::endl; + std::cerr << "Read OK." << std::endl; f0.print (std::clog, "f0"); f1.print (std::clog, "f1"); f2.print (std::clog, "f2"); f3.print (std::clog, "f3"); } - std::clog << "Done." << std::endl; + std::clog << "Done input from istringstream." << std::endl; } - { - std::clog << "Serialize (boost text archive)..." << std::endl; + { // Demonstrate use of nonfinite facets for Serialization with Boost text archives. + std::clog << "Serialize (using Boost text archive)." << std::endl; + // Construct some foo structures with a finite and nonfinites. foo f0; foo f1; f1.minus_infinity (); foo f2; f2.plus_infinity (); foo f3; f3.nan (); - + // Display them. f0.print (std::clog, "f0"); f1.print (std::clog, "f1"); f2.print (std::clog, "f2"); f3.print (std::clog, "f3"); std::locale the_out_locale (the_default_locale, new boost::math::nonfinite_num_put); - std::ofstream fout ("test.txt"); + std::ofstream fout ("nonfinite_archive_test.txt"); fout.imbue (the_out_locale); boost::archive::text_oarchive toar (fout, boost::archive::no_codecvt); - + // Write to archive. toar & f0; toar & f1; toar & f2; @@ -230,18 +257,18 @@ int main (void) } { - std::clog << "Deserialize (boost text archive)..." << std::endl; + std::clog << "Deserialize (Boost text archive)..." << std::endl; std::locale the_in_locale (the_default_locale, new boost::math::nonfinite_num_get); - std::ifstream fin ("test.txt"); + std::ifstream fin ("nonfinite_archive_test.txt"); fin.imbue (the_in_locale); boost::archive::text_iarchive tiar (fin, boost::archive::no_codecvt); foo f0, f1, f2, f3; - + // Read from archive. tiar & f0; tiar & f1; tiar & f2; tiar & f3; - + // Display foos. f0.print (std::clog, "f0"); f1.print (std::clog, "f1"); f2.print (std::clog, "f2"); @@ -250,20 +277,21 @@ int main (void) std::clog << "Done." << std::endl; } - { - std::clog << "Serialize (boost XML archive)..." << std::endl; + { // Demonstrate use of nonfinite facets for Serialization with Boost XML Archive. + std::clog << "Serialize (Boost XML archive)..." << std::endl; + // Construct some foo structures with a finite and nonfinites. foo f0; foo f1; f1.minus_infinity (); foo f2; f2.plus_infinity (); foo f3; f3.nan (); - + // Display foos. f0.print (std::clog, "f0"); f1.print (std::clog, "f1"); f2.print (std::clog, "f2"); f3.print (std::clog, "f3"); std::locale the_out_locale (the_default_locale, new boost::math::nonfinite_num_put); - std::ofstream fout ("test.xml"); + std::ofstream fout ("nonfinite_XML_archive_test.txt"); fout.imbue (the_out_locale); boost::archive::xml_oarchive xoar (fout, boost::archive::no_codecvt); @@ -275,9 +303,9 @@ int main (void) } { - std::clog << "Deserialize (boost XML archive)..." << std::endl; + std::clog << "Deserialize (Boost XML archive)..." << std::endl; std::locale the_in_locale (the_default_locale, new boost::math::nonfinite_num_get); - std::ifstream fin ("test.xml"); + std::ifstream fin ("nonfinite_XML_archive_test.txt"); fin.imbue (the_in_locale); boost::archive::xml_iarchive xiar (fin, boost::archive::no_codecvt); foo f0, f1, f2, f3; @@ -295,8 +323,105 @@ int main (void) std::clog << "Done." << std::endl; } - std::clog << "Bye ! " << std::endl; + std::clog << "End nonfinite_serialization.cpp' example program." << std::endl; return 0; } - /* end of test_nonfinite_num_facets_1.cpp */ +/* + +Output: + + Nonfinite_serialization.cpp' example program. + std::numeric_limits::max_digits10 is 8 + std::numeric_limits::max_digits10 is 17 + Construct some foo structures with a finite and nonfinites. + f0 : + |-- fvalue = 3.141593 + `-- dvalue = 3.14159265358979 + f1 : + |-- fvalue = -1.#INF + `-- dvalue = -1.#INF + f2 : + |-- fvalue = 1.#INF + `-- dvalue = 1.#INF + f3 : + |-- fvalue = 1.#QNAN + `-- dvalue = 1.#QNAN + Write to a string buffer. + Output is: `(3.1415927,3.1415926535897931)(-inf,-inf)(inf,inf)(nan,nan)' + Done output to ostringstream. + Read foo structures from a string buffer. + Input is: `(3.1415927,3.1415926535897931)(-inf,-inf)(inf,inf)(nan,nan)' + Read OK. + f0 : + |-- fvalue = 3.141593 + `-- dvalue = 3.14159265358979 + f1 : + |-- fvalue = -1.#INF + `-- dvalue = -1.#INF + f2 : + |-- fvalue = 1.#INF + `-- dvalue = 1.#INF + f3 : + |-- fvalue = 1.#QNAN + `-- dvalue = 1.#QNAN + Done input from istringstream. + Serialize (using Boost text archive). + f0 : + |-- fvalue = 3.141593 + `-- dvalue = 3.14159265358979 + f1 : + |-- fvalue = -1.#INF + `-- dvalue = -1.#INF + f2 : + |-- fvalue = 1.#INF + `-- dvalue = 1.#INF + f3 : + |-- fvalue = 1.#QNAN + `-- dvalue = 1.#QNAN + Done. + Deserialize (Boost text archive)... + f0 : + |-- fvalue = 3.141593 + `-- dvalue = 3.14159265358979 + f1 : + |-- fvalue = -1.#INF + `-- dvalue = -1.#INF + f2 : + |-- fvalue = 1.#INF + `-- dvalue = 1.#INF + f3 : + |-- fvalue = 1.#QNAN + `-- dvalue = 1.#QNAN + Done. + Serialize (Boost XML archive)... + f0 : + |-- fvalue = 3.141593 + `-- dvalue = 3.14159265358979 + f1 : + |-- fvalue = -1.#INF + `-- dvalue = -1.#INF + f2 : + |-- fvalue = 1.#INF + `-- dvalue = 1.#INF + f3 : + |-- fvalue = 1.#QNAN + `-- dvalue = 1.#QNAN + Done. + Deserialize (Boost XML archive)... + f0 : + |-- fvalue = 3.141593 + `-- dvalue = 3.14159265358979 + f1 : + |-- fvalue = -1.#INF + `-- dvalue = -1.#INF + f2 : + |-- fvalue = 1.#INF + `-- dvalue = 1.#INF + f3 : + |-- fvalue = 1.#QNAN + `-- dvalue = 1.#QNAN + Done. + End nonfinite_serialization.cpp' example program. + + */ From a62e2c7dcc723065cc27cb68735e5d4f71b5e521 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Wed, 20 Apr 2011 17:05:40 +0000 Subject: [PATCH 51/82] Added to docs for fp_facets [SVN r71395] --- .../html/math_toolkit/utils/fp_facets.html | 1056 +++++++++++++++++ 1 file changed, 1056 insertions(+) create mode 100644 doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html new file mode 100644 index 000000000..d7adcbf32 --- /dev/null +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html @@ -0,0 +1,1056 @@ + + + +Facets for Floating-Point Infinities and NaNs + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + 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>
    +
    +
    + + Introduction +
    +
    + + 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!
    +
    +
    + + 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. +

    +

    + +

    +
    locale old_locale;
    +locale tmp_locale(old_locale, new nonfinite_num_put<char>);
    +locale new_locale(tmp_locale, new nonfinite_num_get<char>);
    +
    +

    +

    +
    + + + + + +
    [Tip]Tip

    + To add two facets, nonfinite_num_put + and nonfinite_num_get, + you have to add one at a time, using a temporary locale. +

    +

    + +

    +
    stringstream ss;
    +ss.imbue(new_locale);
    +double inf = numeric_limits<double>::infinity();
    +ss << inf; // Write out.
    +assert(ss.str() == "inf");
    +    double r;
    +ss >> r; // Read back in.
    +assert(inf == r); // Confirms that the double values really are identical.
    +
    +cout << "infinity output was " << ss.str() << endl;
    +cout << "infinity input was " << r << endl;
    +// But the string representation of r displayed will be the native type
    +// because, when it was constructed, cout had NOT been imbued 
    +// with the new locale containing the nonfinite_numput facet.
    +// So the cout output will be "1.#INF on MS platforms
    +// and may be "inf" or other string representation on other platforms.
    +
    +
    +

    +

    +
    + + C++0X + standard for output of infinity and NaN +
    +

    + 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. +

    +
    + + C99 + standard for output of infinity and NaN +
    +

    + The 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 50. 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. +

    +
    + + 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 + IEEE + 754-2008. +

    +

    + Floating-point values with layout s111 1111 1axx + 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. 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 C99 + format, and output as 1.#QNAN + by Microsoft compilers. +

    +
    + + + + + +
    [Note]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]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 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]Warning

    + This implementation does not (yet) provide output of, or access to, the + NaN payload. +

    +
    + + Reference +
    +
    + + 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: +

    +
    ++++ + + + + + + + + + + + + + + + + + + + + + + +
    +

    + 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. +

    +
    + + 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: +

    +
    ++++ + + + + + + + + + + + + + + + + + + + + + + +
    +

    + 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. +

    +
    + + 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. +

    +
    + + 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: +

    +
    ++++ + + + + + + + + + + + + + + + + + + + + + + +
    +

    + 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.. +

    +

    + 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. +

    +
    + + signed_zero +
    +

    + If the signed_zero flag is + used with nonfinite_num_put, + then the facet will 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. +

    +
    + + 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.) +

    +
    + + trap_nan +
    +

    + Same as trap_infinity, but + positive and negative NaN are trapped instead. +

    +

    + + Examples +

    +
    + + Simple + example with std::stringstreams +
    +

    + +

    +
    locale old_locale;
    +locale tmp_locale(old_locale, new nonfinite_num_put<char>);
    +locale new_locale(tmp_locale, new nonfinite_num_get<char>);
    +
    +

    +

    +

    + +

    +
    stringstream ss;
    +ss.imbue(new_locale);
    +double inf = numeric_limits<double>::infinity();
    +ss << inf; // Write out.
    +assert(ss.str() == "inf");
    +    double r;
    +ss >> r; // Read back in.
    +assert(inf == r); // Confirms that the double values really are identical.
    +
    +cout << "infinity output was " << ss.str() << endl;
    +cout << "infinity input was " << r << endl;
    +// But the string representation of r displayed will be the native type
    +// because, when it was constructed, cout had NOT been imbued 
    +// with the new locale containing the nonfinite_numput facet.
    +// So the cout output will be "1.#INF on MS platforms
    +// and may be "inf" or other string representation on other platforms.
    +
    +
    +

    +

    +
    + + Use with + lexical_cast +
    +

    + Without using a new locale that contains the nonfinite facets, lexical_cast is not portable (and often + fails) if nonfinite values are found. +

    +

    + +

    +
    locale old_locale;
    +locale tmp_locale(old_locale, new nonfinite_num_put<char>);
    +locale new_locale(tmp_locale, new nonfinite_num_get<char>);
    +
    +

    +

    +

    + Although other examples imbue individual streams with the new locale, for + the streams constructed inside lexical_cast, it is 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]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 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 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;
    +
    +
    + + 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. +

    +
    + + Other examples +
    +

    + 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 nonfinite_facet_sstream.cpp + for this example of use with std::stringstreams. +

    +

    + 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. +

    +

    + 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 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 +

    +
    + + 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. +

    +
    + + 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. +
    • +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + From 48d766e48b86f6bf22125d2d50616c66b8c54bd0 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Wed, 20 Apr 2011 17:24:55 +0000 Subject: [PATCH 52/82] Minor edits. [SVN r71396] --- doc/sf_and_dist/fp_facets.qbk | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/doc/sf_and_dist/fp_facets.qbk b/doc/sf_and_dist/fp_facets.qbk index d2c9a09de..5c4aef1a1 100644 --- a/doc/sf_and_dist/fp_facets.qbk +++ b/doc/sf_and_dist/fp_facets.qbk @@ -38,11 +38,11 @@ To use these facets #include -[h4 Introduction] +[section:intro Introduction] [h5 The Problem] -The C++98 standard does not specify how infinity and NaN are represented in text streams. +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! @@ -189,7 +189,9 @@ corresponding to the integer value n. [warning This implementation does not (yet) provide output of, or access to, the NaN payload.] -[h4 Reference] +[endsect] [/section:intro Introduction] + +[section:reference Reference] [h5 The Facet `nonfinite_num_put`] @@ -351,7 +353,10 @@ to parse a string that represents positive or negative infinity. Same as `trap_infinity`, but positive and negative NaN are trapped instead. -[h3 Examples] +[endsect] [/section:reference Reference] + + +[section:examples Examples] [h5 Simple example with std::stringstreams] @@ -481,13 +486,17 @@ A very basic example of using Boost.Archive is at A full demonstration of serialization by Francois Mauger is at [@../../../example/nonfinite_num_facet_serialization.cpp] -[h4 Portability] +[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. -[h4 Design Rationale] +[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. @@ -506,6 +515,8 @@ 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] [/ From 633b83de7d0b6df3349a7ad70eec23ca7a42f80b Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Wed, 20 Apr 2011 17:25:31 +0000 Subject: [PATCH 53/82] Typo corrected [SVN r71397] --- doc/sf_and_dist/sign.qbk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/sf_and_dist/sign.qbk b/doc/sf_and_dist/sign.qbk index 8ca4c6cae..3a1483661 100644 --- a/doc/sf_and_dist/sign.qbk +++ b/doc/sf_and_dist/sign.qbk @@ -47,7 +47,7 @@ for more detail. 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. +and where the other bits are the same as in /x/. This function is widely available, but not specified in any standards. From e537496a337dc0c255f216730cb92ce25b4e0b7b Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Wed, 20 Apr 2011 17:27:25 +0000 Subject: [PATCH 54/82] Rebuild after add fp_facets.html (and a few minor edits). [SVN r71398] --- doc/sf_and_dist/html/index.html | 11 +- .../backgrounders/implementation.html | 30 +- .../math_toolkit/backgrounders/lanczos.html | 10 +- .../html/math_toolkit/backgrounders/refs.html | 6 +- .../backgrounders/relative_error.html | 2 +- .../math_toolkit/backgrounders/remez.html | 16 +- .../dist/dist_ref/dist_algorithms.html | 6 +- .../dist/dist_ref/dists/bernoulli_dist.html | 10 +- .../dist/dist_ref/dists/beta_dist.html | 20 +- .../dist/dist_ref/dists/binomial_dist.html | 24 +- .../dist/dist_ref/dists/cauchy_dist.html | 10 +- .../dist/dist_ref/dists/chi_squared_dist.html | 12 +- .../dist/dist_ref/dists/exp_dist.html | 10 +- .../dist/dist_ref/dists/extreme_dist.html | 8 +- .../dist/dist_ref/dists/f_dist.html | 10 +- .../dist/dist_ref/dists/gamma_dist.html | 8 +- .../dist/dist_ref/dists/geometric_dist.html | 22 +- .../dist_ref/dists/hypergeometric_dist.html | 10 +- .../dists/inverse_chi_squared_dist.html | 10 +- .../dist_ref/dists/inverse_gamma_dist.html | 8 +- .../dist_ref/dists/inverse_gaussian_dist.html | 10 +- .../dist/dist_ref/dists/laplace_dist.html | 10 +- .../dist/dist_ref/dists/logistic_dist.html | 8 +- .../dist/dist_ref/dists/lognormal_dist.html | 8 +- .../dist/dist_ref/dists/nc_beta_dist.html | 10 +- .../dist_ref/dists/nc_chi_squared_dist.html | 12 +- .../dist/dist_ref/dists/nc_f_dist.html | 10 +- .../dist/dist_ref/dists/nc_t_dist.html | 10 +- .../dists/negative_binomial_dist.html | 22 +- .../dist/dist_ref/dists/normal_dist.html | 8 +- .../dist/dist_ref/dists/pareto.html | 12 +- .../dist/dist_ref/dists/poisson_dist.html | 8 +- .../dist/dist_ref/dists/rayleigh.html | 12 +- .../dist/dist_ref/dists/students_t_dist.html | 10 +- .../dist/dist_ref/dists/triangular_dist.html | 10 +- .../dist/dist_ref/dists/uniform_dist.html | 10 +- .../dist/dist_ref/dists/weibull_dist.html | 12 +- .../html/math_toolkit/dist/dist_ref/nmp.html | 54 +- .../html/math_toolkit/dist/future.html | 8 +- .../weg/binom_eg/binomial_quiz_example.html | 4 +- .../stat_tut/weg/cs_eg/chi_sq_intervals.html | 2 +- .../dist/stat_tut/weg/dist_construct_eg.html | 2 +- .../weg/find_eg/find_location_eg.html | 2 +- .../weg/find_eg/find_mean_and_sd_eg.html | 6 +- .../stat_tut/weg/find_eg/find_scale_eg.html | 2 +- .../dist/stat_tut/weg/geometric_eg.html | 8 +- .../weg/normal_example/normal_misc.html | 14 +- .../html/math_toolkit/extern_c/c99.html | 4 +- .../html/math_toolkit/extern_c/tr1.html | 10 +- .../html/math_toolkit/extern_c/tr1_ref.html | 6 +- .../math_toolkit/main_overview/building.html | 6 +- .../main_overview/directories.html | 4 +- .../main_overview/error_handling.html | 24 +- .../math_toolkit/main_overview/history1.html | 30 +- .../math_toolkit/main_overview/intro.html | 6 +- .../main_overview/navigation.html | 2 +- .../html/math_toolkit/main_overview/tr1.html | 10 +- .../html/math_toolkit/perf/comparisons.html | 54 +- .../policy/pol_ref/discrete_quant_ref.html | 12 +- .../pol_ref/error_handling_policies.html | 14 +- .../policy/pol_ref/internal_promotion.html | 2 +- .../policy/pol_ref/policy_defaults.html | 32 +- .../pol_tutorial/understand_dis_quant.html | 2 +- .../math_toolkit/special/bessel/bessel.html | 10 +- .../special/bessel/bessel_over.html | 6 +- .../math_toolkit/special/bessel/mbessel.html | 10 +- .../special/bessel/sph_bessel.html | 10 +- .../math_toolkit/special/ellint/ellint_1.html | 10 +- .../math_toolkit/special/ellint/ellint_2.html | 10 +- .../math_toolkit/special/ellint/ellint_3.html | 14 +- .../special/ellint/ellint_carlson.html | 10 +- .../special/ellint/ellint_intro.html | 12 +- .../math_toolkit/special/expint/expint_i.html | 14 +- .../math_toolkit/special/expint/expint_n.html | 10 +- .../special/factorials/sf_binomial.html | 6 +- .../factorials/sf_double_factorial.html | 6 +- .../special/factorials/sf_factorial.html | 10 +- .../factorials/sf_falling_factorial.html | 6 +- .../factorials/sf_rising_factorial.html | 6 +- .../math_toolkit/special/inv_hyper/acosh.html | 6 +- .../math_toolkit/special/inv_hyper/asinh.html | 6 +- .../math_toolkit/special/inv_hyper/atanh.html | 6 +- .../math_toolkit/special/powers/cbrt.html | 4 +- .../math_toolkit/special/powers/ct_pow.html | 14 +- .../math_toolkit/special/powers/expm1.html | 4 +- .../math_toolkit/special/powers/hypot.html | 2 +- .../math_toolkit/special/powers/log1p.html | 4 +- .../math_toolkit/special/powers/powm1.html | 4 +- .../math_toolkit/special/powers/sqrt1pm1.html | 4 +- .../special/sf_beta/beta_derivative.html | 8 +- .../special/sf_beta/beta_function.html | 10 +- .../special/sf_beta/ibeta_function.html | 10 +- .../special/sf_beta/ibeta_inv_function.html | 10 +- .../special/sf_erf/error_function.html | 10 +- .../special/sf_erf/error_inv.html | 10 +- .../special/sf_gamma/digamma.html | 10 +- .../special/sf_gamma/gamma_derivatives.html | 8 +- .../special/sf_gamma/gamma_ratios.html | 8 +- .../math_toolkit/special/sf_gamma/igamma.html | 12 +- .../special/sf_gamma/igamma_inv.html | 10 +- .../math_toolkit/special/sf_gamma/lgamma.html | 10 +- .../math_toolkit/special/sf_gamma/tgamma.html | 10 +- .../math_toolkit/special/sf_poly/hermite.html | 10 +- .../special/sf_poly/laguerre.html | 10 +- .../special/sf_poly/legendre.html | 10 +- .../special/sf_poly/sph_harm.html | 10 +- .../html/math_toolkit/special/zetas/zeta.html | 10 +- .../html/math_toolkit/status/history1.html | 30 +- .../html/math_toolkit/status/issues.html | 16 +- .../math_toolkit/toolkit/internals1/cf.html | 8 +- .../toolkit/internals1/constants.html | 4 +- .../toolkit/internals1/minima.html | 6 +- .../toolkit/internals1/rational.html | 6 +- .../toolkit/internals1/roots.html | 12 +- .../toolkit/internals1/roots2.html | 12 +- .../toolkit/internals1/series_evaluation.html | 6 +- .../toolkit/internals1/tuples.html | 4 +- .../toolkit/internals2/error_test.html | 6 +- .../toolkit/internals2/polynomials.html | 4 +- .../toolkit/internals2/test_data.html | 12 +- .../math_toolkit/using_udt/archetypes.html | 8 +- .../html/math_toolkit/using_udt/concepts.html | 4 +- doc/sf_and_dist/html/math_toolkit/utils.html | 7 + .../html/math_toolkit/utils/fp_facets.html | 987 +----------------- .../html/math_toolkit/utils/fpclass.html | 6 +- .../html/math_toolkit/utils/next_float.html | 6 +- .../utils/next_float/float_advance.html | 4 +- .../utils/next_float/float_distance.html | 4 +- .../utils/next_float/float_next.html | 4 +- .../utils/next_float/float_prior.html | 4 +- .../utils/next_float/nextafter.html | 6 +- .../math_toolkit/utils/sign_functions.html | 12 +- 132 files changed, 676 insertions(+), 1627 deletions(-) diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html index 47e36f886..4d8f61464 100644 --- a/doc/sf_and_dist/html/index.html +++ b/doc/sf_and_dist/html/index.html @@ -53,7 +53,7 @@ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and Thijs van den Berg

    -

    +

    Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    @@ -346,6 +346,13 @@ Functions
    Facets for Floating-Point Infinities and NaNs
    +
    +
    Introduction
    +
    Reference
    +
    Examples
    +
    Portability
    +
    Design Rationale
    +
    Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values
    @@ -501,7 +508,7 @@

    - +

    Last revised: April 15, 2011 at 14:01:20 GMT

    Last revised: April 20, 2011 at 17:15:42 GMT


    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index c0eeb5f84..1d0df1459 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

    - + Implemention philosophy
    @@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

    - + Accuracy and Representation of Test Values
    @@ -130,7 +130,7 @@ binary value).

    - + Tolerance of Tests
    @@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

    - + Handling Unsuitable Arguments
    @@ -224,7 +224,7 @@

    - + Handling of Functions that are Not Mathematically defined
    @@ -258,7 +258,7 @@

    - + Median of distributions
    @@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

    - + Handling of Floating-Point Infinity
    @@ -337,7 +337,7 @@ handling policies.

    - + Scale, Shape and Location
    @@ -364,7 +364,7 @@ functions, they can be added if required.

    - + Notes on Implementation of Specific Functions & Distributions
    @@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
    - + Rational Approximations Used
    @@ -419,7 +419,7 @@ to the "true" minimax solution.

    - + Representation of Mathematical Constants
    @@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
    - + Thread safety
    @@ -505,7 +505,7 @@ the right thing here at some point.

    - + Sources of Test Data
    @@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

    - + Creating and Managing the Equations
    @@ -731,7 +731,7 @@ done HTML: this needs further investigation.

    - + Producing Graphs
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index 0b0d8d4d1..8162f6c77 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
    - + Motivation

    @@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

    - + The Approximation
    @@ -161,7 +161,7 @@

    - + Computing the Coefficients
    @@ -205,7 +205,7 @@ multiplied by F as the last step.

    - + Choosing the Right Parameters
    @@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index f2891075c..9730bf803 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
    - + General references
    @@ -98,7 +98,7 @@ Library (version 2), Walter E. Brown

    - + Calculators

    @@ -120,7 +120,7 @@ Binomial Probability Distribution Calculator.

    - + Other Libraries

    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index 667ec5e45..405fa9ba6 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

    - + The Impossibility of Zero Error
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index d4c74a591..c2b05e9c4 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

    - + The Remez Method
    @@ -174,7 +174,7 @@
    - + Remez Step 1
    @@ -205,7 +205,7 @@ to 5.6x10-4.

    - + Remez Step 2
    @@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

    - + Iteration

    @@ -250,7 +250,7 @@ remez-4

    - + Rational Approximations
    @@ -299,7 +299,7 @@ number of terms overall.

    - + Practical Considerations
    @@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

    - + Remez Method Checklist
    @@ -461,7 +461,7 @@
    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index 66dd99e5c..ddba08931 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms

    - + Finding the Location and Scale for Normal and similar distributions
    @@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
    - + find_location function
    @@ -80,7 +80,7 @@ }} // namespaces
    - + find_scale function
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index adec4a2de..c9e03dd13 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

    - + Member Functions
    @@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ exception and make an error message available.

    - + Accuracy

    @@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

    - + Implementation

    @@ -327,7 +327,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index 842b21277..1e64b78a0 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

      - + Member Functions
      - + Constructor
      beta_distribution(RealType alpha, RealType beta);
      @@ -164,7 +164,7 @@
                   yellow in the graph above).
                 

      - + Parameter Accessors
      @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
      - + Parameter Estimators
      @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

      - + Non-member Accessor Functions
      @@ -263,7 +263,7 @@ Mathworld.

      - + Applications

      @@ -276,7 +276,7 @@ statistical inference.

      - + Related distributions
      @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

      - + Accuracy

      @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

      - + Implementation

      @@ -594,7 +594,7 @@

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index 9d6dc1cf1..d3bb0e983 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

    - + Member Functions
    - + Construct
    binomial_distribution(RealType n, RealType p);
    @@ -183,7 +183,7 @@
                 otherwise calls domain_error.
               

    - + Accessors
    RealType success_fraction() const;
    @@ -199,7 +199,7 @@
                 was constructed.
               

    - + Lower Bound on the Success Fraction
    @@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

    - + Upper Bound on the Success Fraction
    @@ -383,7 +383,7 @@
    - + Estimating the Number of Trials Required for a Certain Number of Successes
    @@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

    - + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

    - + Non-member Accessors
    @@ -622,7 +622,7 @@
    - + Examples

    @@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

    - + Accuracy

    @@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -884,7 +884,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index e68d755fa..2038a522a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

      - + Accuracy

      @@ -157,7 +157,7 @@ have very low error rates.

      - + Implementation

      @@ -273,7 +273,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index cbd0235bc..335074d2f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

      - + Member Functions
      @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

      - + Non-member Accessors
      @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

      - + Examples

      @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

      - + Accuracy

      @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

      - + Implementation

      @@ -379,7 +379,7 @@ independent, normally distributed random

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index 343f721f5..d2c5b9b89 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

      - + Member Functions
      @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

      - + Non-member Accessors
      @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -122,7 +122,7 @@ should have very low error rates.

      - + Implementation

      @@ -283,7 +283,7 @@

    - + references
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index 5d22fdae5..9beac37ec 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

      - + Member Functions
      @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

      - + Accuracy

      @@ -154,7 +154,7 @@ very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index 0a6942c66..95413b94e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

      - + Member Functions
      @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

      - + Non-member Accessors
      @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

      - + Accuracy

      @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index 78a5ebb37..0e29d16b7 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

      - + Member Functions
      @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index facb9af85..e396ed80e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

      - + Related Distributions
      @@ -206,12 +206,12 @@
    - + Member Functions
    - + Constructor
    geometric_distribution(RealType p);
    @@ -226,7 +226,7 @@
                 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -253,7 +253,7 @@
                 Binomial Distribution for more discussion.
               

    - + Lower Bound on success_fraction Parameter p
    @@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on success_fraction Parameter p
    @@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -415,7 +415,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -463,7 +463,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -611,7 +611,7 @@
    - + Accuracy

    @@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index 041e729a9..6661ea371 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

    - + Member Functions
    @@ -131,7 +131,7 @@ from the population N.

    - + Non-member Accessors
    @@ -185,7 +185,7 @@
    - + Accuracy

    @@ -211,7 +211,7 @@ meaningless for N >= 1015.

    - + Testing

    @@ -223,7 +223,7 @@ this implementation and NTL::RR.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index 40f516cb2..a6525d92d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

    - + Member Functions
    @@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

    - + Non-member Accessors
    @@ -255,7 +255,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

    - + Implementation

    @@ -452,7 +452,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index 8fc992e6d..10022b6e0 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

      - + Member Functions
      @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

      - + Non-member Accessors
      @@ -184,7 +184,7 @@

    - + Accuracy

    @@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index bb6751757..b217c0506 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -146,7 +146,7 @@ the __wald_distrib (where mean μ is unity) is also provided.

    - + Member Functions
    @@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

    - + Non-member Accessors
    @@ -201,7 +201,7 @@

    - + Accuracy

    @@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    @@ -390,7 +390,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index a0e98324d..e067d210b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

      - + Member Functions
      @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

      - + Accuracy

      @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

      - + Implementation

      @@ -329,7 +329,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index 20306f07c..dc6a853aa 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

      - + Member Functions
      @@ -98,7 +98,7 @@ Returns the scale of this distribution.

      - + Non-member Accessors
      @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

      - + Accuracy

      @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

      - + Implementation
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index 125bc9672..83af4c9de 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index a382533b4..575d0f0bb 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

      - + Member Functions
      @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

      - + Non-member Accessors
      @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

      - + Accuracy

      @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

      - + Tests

      @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index 6649bf3c7..2c950419f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

      - + Member Functions
      @@ -183,7 +183,7 @@ == q.

      - + Non-member Accessors
      @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

      - + Accuracy

      @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

      - + Tests

      @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index 77306905b..2e809ad6f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

      - + Member Functions
      @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

      - + Non-member Accessors
      @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

      - + Tests

      @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index bc8fb9773..9c3b950ed 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

      - + Member Functions
      @@ -111,7 +111,7 @@ which this object was constructed.

      - + Non-member Accessors
      @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

      - + Accuracy

      @@ -255,7 +255,7 @@ epsilon.

      - + Tests

      @@ -270,7 +270,7 @@ least 50 decimal places.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index 4561bbd11..ffdb88d05 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

      - + Related Distributions
      @@ -195,12 +195,12 @@
      - + Member Functions
      - + Construct
      negative_binomial_distribution(RealType r, RealType p);
      @@ -216,7 +216,7 @@
                   <= 1.
                 

      - + Accessors
      RealType success_fraction() const; // successes / trials (0 <= p <= 1)
      @@ -237,7 +237,7 @@
                   Distribution for more discussion.
                 

      - + Lower Bound on Parameter p
      @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

      - + Upper Bound on Parameter p
      @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

      - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
      @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

      - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
      @@ -457,7 +457,7 @@ probability of observing more than k failures.

      - + Non-member Accessors
      @@ -606,7 +606,7 @@

    - + Accuracy

    @@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index 34e6890de..56732847c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

    - + Member Functions
    @@ -109,7 +109,7 @@ be used generically).

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

    - + Accuracy

    @@ -139,7 +139,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index 1feadd9ca..22b68820b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

    - + Related distributions
    - + Member Functions
    @@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

    - + Non-member Accessors
    @@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ zero) see also why complements?.

    - + Implementation

    @@ -318,7 +318,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index 3ead9b58e..28ed22515 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
    - + Member Functions
    @@ -131,7 +131,7 @@ Returns the mean of this distribution.

    - + Non-member Accessors
    @@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

    - + Accuracy

    @@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index be8f3527e..ccf388593 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

    - + Related distributions
    @@ -102,7 +102,7 @@ distribution.

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

    - + Accuracy

    @@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

    - + Implementation

    @@ -320,7 +320,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index 8dd589e61..443522a9a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

      - + Member Functions
      @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

      - + Non-member Accessors
      @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

      - + Examples

      @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

      - + Accuracy

      @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index 83e7280c0..69d28012b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

      - + Member Functions
      @@ -163,7 +163,7 @@ (default+1).

      - + Non-member Accessors
      @@ -184,7 +184,7 @@ range is lower <= x <= upper.

      - + Accuracy

      @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

      - + Implementation

      @@ -378,7 +378,7 @@ Calculate and plot probability distributions

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index 7f49b6b7a..2f8261b7a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

        - + Member Functions
        @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

        - + Non-member Accessors
        @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

        - + Accuracy

        @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index 595544c69..914edf19f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

        - + Related distributions
        @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

        - + Member Functions
        @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

        - + Non-member Accessors
        @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

        - + Accuracy

        @@ -170,7 +170,7 @@ as such should have very low error rates.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index 549ab3678..13fe619c1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

        - + Function Index
          @@ -94,7 +94,7 @@
        - + Conceptual Index
          @@ -180,7 +180,7 @@
        - + Cumulative Distribution Function
        template <class RealType, class Policy>
        @@ -203,7 +203,7 @@
                   cdf
                 

        - + Complement of the Cumulative Distribution Function
        template <class Distribution, class RealType>
        @@ -243,7 +243,7 @@
                   complement is useful and when it should be used.
                 

        - + Hazard Function
        template <class RealType, class Policy>
        @@ -271,7 +271,7 @@
                   

      - + Cumulative Hazard Function
      template <class RealType, class Policy>
      @@ -298,7 +298,7 @@
                 

    - + mean
    template<class RealType, class Policy>
    @@ -313,7 +313,7 @@
               distribution).
             

    - + median
    template<class RealType, class Policy>
    @@ -323,7 +323,7 @@
               Returns the median of the distribution dist.
             

    - + mode
    template<class RealType, Policy>
    @@ -337,7 +337,7 @@
               if the distribution does not have a defined mode.
             

    - + Probability Density Function
    template <class RealType, class Policy>
    @@ -365,7 +365,7 @@
               pdf
             

    - + Range
    template<class RealType, class Policy>
    @@ -375,7 +375,7 @@
               Returns the valid range of the random variable over distribution dist.
             

    - + Quantile
    template <class RealType, class Policy>
    @@ -405,7 +405,7 @@
               quantile
             

    - + Quantile from the complement of the probability.

    @@ -450,7 +450,7 @@ survival_inv

    - + Standard Deviation
    template <class RealType, class Policy>
    @@ -464,7 +464,7 @@
               if the distribution does not have a defined standard deviation.
             

    - + support
    template<class RealType, class Policy>
    @@ -481,7 +481,7 @@
               where the pdf is zero, and the cdf zero or unity.
             

    - + Variance
    template <class RealType, class Policy>
    @@ -495,7 +495,7 @@
               if the distribution does not have a defined variance.
             

    - + Skewness
    template <class RealType, class Policy>
    @@ -509,7 +509,7 @@
               if the distribution does not have a defined skewness.
             

    - + Kurtosis
    template <class RealType, class Policy>
    @@ -551,7 +551,7 @@
               'Proper' kurtosis can have a value from zero to + infinity.
             

    - + Kurtosis excess
    template <class RealType, Policy>
    @@ -585,7 +585,7 @@
               The kurtosis excess of a normal distribution is zero.
             

    - + P and Q

    @@ -595,7 +595,7 @@ returned by these functions.

    - + Percent Point Function or Percentile

    @@ -603,7 +603,7 @@ the Quantile.

    - + Inverse CDF Function.

    @@ -611,14 +611,14 @@ Quantile.

    - + Inverse Survival Function.

    The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

    - + Probability Mass Function

    @@ -631,7 +631,7 @@ applies to continuous distributions.

    - + Lower Critical Value.

    @@ -640,7 +640,7 @@ the Quantile.

    - + Upper Critical Value.

    @@ -650,7 +650,7 @@ complement of the probability.

    - + Survival Function

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index 6d1f6b62f..17c699870 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

    - + Adding Additional Location and Scale Parameters
    @@ -55,7 +55,7 @@ functions.

    - + An "any_distribution" class
    @@ -91,7 +91,7 @@ investigation.

    - + Higher Level Hypothesis Tests
    @@ -111,7 +111,7 @@ expected_mean.

    - + Integration With Statistical Accumulators
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index 3772d3da1..47bc5e096 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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
    - + Using Binomial distribution moments
    @@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
    - + Quantiles

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index 9498c6747..dc31a921e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

    - + Confidence intervals as a function of the number of observations
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index 3389dde36..9b484fa96 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
    negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
     
    - + Default arguments to distribution constructors.
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index 459cb2f95..4ab6f922b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
    - + Controlling Error Handling from find_location
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index 2eb999066..45770c5e4 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

    - + Using find_location and find_scale to meet dispensing and measurement specifications
    @@ -193,7 +193,7 @@

    - + Using Cauchy-Lorentz instead of normal distribution
    @@ -305,7 +305,7 @@ of estimating these intervals.

    - + Changing the scale or standard deviation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index 68cf84e96..db7b03701 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
    - + Controlling how Errors from find_scale are handled
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index 4a6f5786a..be8a0c11c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

    - + Throwing a dice
    @@ -288,7 +288,7 @@ replicated in C++ if desired.

    - + Surveying customers to find one with a faulty product
    @@ -333,7 +333,7 @@

    - + Basket Ball Shooters
    @@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

    - + Estimating failures
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index 20907e73b..e2f17f8b5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

    - + Traditional Tables
    @@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

    - + Standard deviations either side of the Mean
    @@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

    - + Some simple examples
    - + Life of light bulbs
    @@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + How many onions?
    @@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + Packing beef
    @@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

    - + Length of bolts
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index 074b72e07..b1533e9bc 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
    - + Supported C99 Functions
    @@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
    - + Quick Reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index 0981a06fc..18e4bb658 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

    - + Usage Recomendations

    @@ -295,7 +295,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -391,7 +391,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -520,7 +520,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index 01326432b..05eaf5955 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
    - + Supported TR1 Functions
    @@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
    - + Quick Reference
    // [5.2.1.1] associated Laguerre polynomials:
    @@ -494,7 +494,7 @@
             for the full template (header only) version of this function.
           

    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index 84c5e2e5c..fa588ca4c 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
    - + Building a Library (shared, dynamic .dll or static .lib)
    @@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

    - + Building the Examples
    @@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

    - + Building the Tests
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index 67a5e8863..ccb817c48 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
    - + boost/math
    @@ -73,7 +73,7 @@
    - + boost/libs
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index db3d70ef0..e639d6c2f 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
    - + Quick Reference
    @@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

    - + Rationale

    @@ -766,7 +766,7 @@

    - + Finding More Information
    @@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

    - + Domain Errors

    @@ -859,7 +859,7 @@ for more details.

    - + Evaluation at a pole

    @@ -897,7 +897,7 @@ for more details.

    - + Numeric Overflow

    @@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

    - + Numeric Underflow

    @@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

    - + Denormalisation Errors

    @@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

    - + Evaluation Errors

    @@ -1001,7 +1001,7 @@ for more details.

    - + Indeterminate Result Errors

    @@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

    - + Rounding Errors

    @@ -1068,7 +1068,7 @@ for more details.

    - + Errors from typecasts

    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index fc0120178..c49d184f6 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -28,7 +28,7 @@ New

    - + Boost-1.47
      @@ -45,7 +45,7 @@
    - + Boost-1.46.1
    • @@ -53,7 +53,7 @@ #5113.
    - + Boost-1.46.0
      @@ -68,7 +68,7 @@
    - + Boost-1.45.0
      @@ -85,7 +85,7 @@
    - + Boost-1.44.0
      @@ -99,7 +99,7 @@
    - + Boost-1.41.0
    • @@ -107,7 +107,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -144,7 +144,7 @@
    - + Boost-1.38.0
      @@ -156,14 +156,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -196,7 +196,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -228,7 +228,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -242,7 +242,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -270,7 +270,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -306,7 +306,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index 3c21642d0..85947f5b4 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

    - + Statistical Distributions
    @@ -56,7 +56,7 @@ tests.

    - + Mathematical Special Functions
    @@ -83,7 +83,7 @@ double.

    - + Implementation Toolkit
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index 94fd1208c..1b4c9a74d 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

    - + Shortcuts
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index 2471821a3..273e7e05f 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

    - + Usage Recomendations
    @@ -297,7 +297,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -393,7 +393,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -522,7 +522,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index 3b2d8a1f7..c20e118b7 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

    - + Comparison to GSL-1.13 and Cephes
    @@ -344,7 +344,7 @@

    - +INF [1] + +INF [1]

    @@ -423,7 +423,7 @@

    -

    17.89[2]

    +

    17.89[2]

    (4.248e-005s)

    @@ -548,11 +548,11 @@ -

    [1] +

    [1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

    -

    [2] +

    [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 @@ -563,7 +563,7 @@

    - + Comparison to the R and DCDFLIB Statistical Libraries on Windows
    @@ -659,7 +659,7 @@

    -

    67.66[1]

    +

    67.66[1]

    (3.366e-004s)

    @@ -1088,7 +1088,7 @@

    -

    3.60[2]

    +

    3.60[2]

    (5.987e-007s)

    @@ -1317,7 +1317,7 @@

    -

    43.43[3]

    +

    43.43[3]

    (3.732e-004s)

    @@ -1387,7 +1387,7 @@

    -

    393.90[4]

    +

    393.90[4]

    (2.673e-002s)

    @@ -1523,7 +1523,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (4.411e-004s)

    @@ -1809,28 +1809,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. @@ -1839,7 +1839,7 @@


    - + Comparison to the R Statistical Library on Linux
    @@ -1934,7 +1934,7 @@

    -

    30.51[1]

    +

    30.51[1]

    (3.616e-004s)

    @@ -2363,7 +2363,7 @@

    -

    2.20[2]

    +

    2.20[2]

    (3.522e-007s)

    @@ -2592,7 +2592,7 @@

    -

    25.92[3]

    +

    25.92[3]

    (4.407e-004s)

    @@ -2662,7 +2662,7 @@

    -

    144.91[4]

    +

    144.91[4]

    (3.214e-002s)

    @@ -2798,7 +2798,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (5.916e-004s)

    @@ -3084,28 +3084,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index 34ea3218f..5c1866c00 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

    - + real

    @@ -89,7 +89,7 @@ = 68.1584.

    - + integer_round_outwards

    @@ -143,7 +143,7 @@ in each tail.

    - + integer_round_inwards

    @@ -202,7 +202,7 @@ in each tail.

    - + integer_round_down

    @@ -210,7 +210,7 @@ or a lower quantile.

    - + integer_round_up

    @@ -218,7 +218,7 @@ a lower quantile.

    - + integer_round_nearest

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index 4f0ddbee2..e3eee41f1 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

    - + Available Actions When an Error is Raised
    @@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

    - + throw_on_error

    @@ -174,7 +174,7 @@

    - + errno_on_error

    @@ -289,7 +289,7 @@

    - + ignore_error

    @@ -402,7 +402,7 @@

    - + user_error

    @@ -451,7 +451,7 @@ here.

    - + Kinds of Error Raised
    @@ -691,7 +691,7 @@
    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index efdc65412..869c0fc89 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index 1a0ffa5c4..5d3dcc886 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

    - + BOOST_MATH_DOMAIN_ERROR_POLICY

    @@ -71,7 +71,7 @@ ignore_error or user_error.

    - + BOOST_MATH_POLE_ERROR_POLICY

    @@ -81,7 +81,7 @@ ignore_error or user_error.

    - + BOOST_MATH_OVERFLOW_ERROR_POLICY

    @@ -91,7 +91,7 @@ ignore_error or user_error.

    - + BOOST_MATH_ROUNDING_ERROR_POLICY

    @@ -101,7 +101,7 @@ ignore_error or user_error.

    - + BOOST_MATH_EVALUATION_ERROR_POLICY

    @@ -111,7 +111,7 @@ ignore_error or user_error.

    - + BOOST_MATH_UNDERFLOW_ERROR_POLICY

    @@ -121,7 +121,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DENORM_ERROR_POLICY

    @@ -131,7 +131,7 @@ ignore_error or user_error.

    - + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

    @@ -142,7 +142,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DIGITS10_POLICY

    @@ -153,7 +153,7 @@ recommended that you change this from the default.

    - + BOOST_MATH_PROMOTE_FLOAT_POLICY

    @@ -165,7 +165,7 @@ off.

    - + BOOST_MATH_PROMOTE_DOUBLE_POLICY

    @@ -177,7 +177,7 @@ off.

    - + BOOST_MATH_DISCRETE_QUANTILE_POLICY

    @@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

    - + BOOST_MATH_ASSERT_UNDEFINED_POLICY

    @@ -201,7 +201,7 @@ whether or not a particular property is well defined.

    - + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

    @@ -210,7 +210,7 @@ Defaults to 1000000.

    - + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

    @@ -219,7 +219,7 @@ Defaults to 200.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index 08f51a36f..2a3cd6e91 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

    - + Other Rounding Policies are Available
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index a7c8396de..663f546e1 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -105,7 +105,7 @@

    - + Testing

    @@ -114,7 +114,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -489,7 +489,7 @@ were found.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index c067af594..7bb79f12e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

    - + Ordinary Bessel Functions
    @@ -103,7 +103,7 @@ and is known as either a Bessel

    - + Modified Bessel Functions
    @@ -167,7 +167,7 @@ respectively:

    - + Spherical Bessel Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index 82bc8a66b..622f08faf 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -104,7 +104,7 @@

    - + Testing

    @@ -113,7 +113,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -321,7 +321,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index bed5d5efe..13c484c47 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
     
    - + Description

    @@ -92,7 +92,7 @@ for small x:

    - + Testing

    @@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

    - + Accuracy

    @@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index 3cf4a17f4..e24a249c9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index 08f80e5e8..382ea3c9b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index 4d9410a5c..e5cb64e48 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -231,7 +231,7 @@

    - + Testing

    @@ -241,7 +241,7 @@ this implementation.

    - + Implementation

    @@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

    - Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

    are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



    -

    [1] +

    [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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index 12a730440..6be2a4120 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

    - + Synopsis

    @@ -100,7 +100,7 @@ }} // namespaces

    - + Description

    @@ -216,7 +216,7 @@

    - + Testing

    @@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

    - + Accuracy

    @@ -393,7 +393,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index 8a49f0087..d5f2a84c4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

    - + Notation

    All variables are real numbers unless otherwise noted.

    - + Definition

    @@ -245,7 +245,7 @@

    - + Duplication Theorem

    @@ -256,7 +256,7 @@

    - + Carlson's Formulas

    @@ -273,7 +273,7 @@

    - + Numerical Algorithms
    @@ -287,7 +287,7 @@ integrals with satisfactory precisions.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index ab7fb2f10..f047a8402 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -202,7 +202,7 @@ slightly over the range [4,6].

    - + Testing

    @@ -217,7 +217,7 @@ check.

    - + Implementation

    @@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



    -

    [2] +

    [2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index 825467d63..a87991e48 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -220,7 +220,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index 06c573c59..5df1e56a5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

    - + Accuracy

    @@ -99,14 +99,14 @@ function for larger arguments.

    - + Testing

    The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index 40e967878..96eeae1da 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

    - + Accuracy

    @@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

    - + Testing

    The spot tests for the double factorial use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index 4e70f05ed..5b51f4d3c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    @@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

    - + Accuracy

    @@ -166,7 +166,7 @@ will be the same as for tgamma.

    - + Testing

    @@ -175,7 +175,7 @@ function handle those cases already.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index f4f78a3b8..09a7fbe82 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

    - + Accuracy

    @@ -79,14 +79,14 @@ function.

    - + Testing

    The spot tests for the falling factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index 9cf735a47..9e10da0f4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

    - + Accuracy

    @@ -83,14 +83,14 @@ function.

    - + Testing

    The spot tests for the rising factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index 25b218380..d4c52e812 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -85,7 +85,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index cb9c4ce8a..3103a0abe 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -80,7 +80,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index e4363e3fa..e5606a9ef 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index 8159736b9..6e0e0d455 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

    - + Accuracy

    @@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index cd2710a06..8dea3c7b5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

    - + Synopsis

    @@ -49,7 +49,7 @@ }}

    - + Rationale and Usage
    @@ -91,7 +91,7 @@ Only 3 different products were actually computed.

    - + Return Type

    @@ -112,7 +112,7 @@

    - + Policies

    @@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Error Handling
    @@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
    - + Acknowledgements

    @@ -238,7 +238,7 @@ improving the implementation.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index 9c9fd69c9..dc10c683b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

    - + Accuracy

    @@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index 28584c679..08b3192a1 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index f5b018bcc..97329b763 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

    - + Accuracy

    @@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index 42887e456..9a53a86b8 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

    - + Accuracy

    Should have approximately 2-3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index 12fc085c4..d1646bace 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

    - + Accuracy

    @@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index 3115d0285..e52c41343 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Almost identical to the incomplete beta function ibeta.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index e1b4b512e..ffe8b78c6 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

    - + Accuracy

    @@ -239,7 +239,7 @@ very small.

    - + Testing

    @@ -248,7 +248,7 @@ at 1000-bit precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index 1c19d6b0d..6550eaee9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -158,7 +158,7 @@

    - + Accuracy

    @@ -865,7 +865,7 @@


    - + Testing

    @@ -883,7 +883,7 @@ have test data that is fully independent of the code.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index 8e85f769b..9e3dd7a13 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

    - + Description

    @@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -300,7 +300,7 @@ or 1.

    - + Testing

    @@ -324,7 +324,7 @@

    - + Implementation of ibeta_inv and ibetac_inv
    @@ -492,7 +492,7 @@ rapidly converges on the true value.

    - + Implementation of inverses on the a and b parameters
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index 931583c3b..29ce95ad4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
    - + Synopsis

    @@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -100,7 +100,7 @@
               
             

    - + Accuracy

    @@ -525,7 +525,7 @@

    - + Testing

    @@ -540,7 +540,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index fca1efd13..52cd44270 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

    - + Synopsis

    @@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -98,7 +98,7 @@
               
             

    - + Accuracy

    @@ -108,7 +108,7 @@ error functions.

    - + Testing

    @@ -131,7 +131,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index a8289236d..51aedf2d7 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -77,7 +77,7 @@ T otherwise.

    - + Accuracy

    @@ -265,7 +265,7 @@ absolute error will remain very low.

    - + Testing

    @@ -275,7 +275,7 @@ see below).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index f56888610..5bd619a0a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -75,7 +75,7 @@ otherwise the return type is simply T1.

    - + Accuracy

    @@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index 1b595b198..0fac3c0cd 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

    - + Description
    template <class T1, class T2> 
    @@ -107,7 +107,7 @@
               
             

    - + Accuracy

    @@ -317,7 +317,7 @@

    - + Testing

    @@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index 89a4b39e5..112f1aa8d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -155,7 +155,7 @@

    - + Accuracy

    @@ -823,7 +823,7 @@

    - + Testing

    @@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

    - + Implementation

    @@ -1008,7 +1008,7 @@ by Temme (see references below).

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index d379b59fa..0dd0feb63 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -168,7 +168,7 @@ 0.

    - + Accuracy

    @@ -182,7 +182,7 @@ functions.

    - + Testing

    @@ -206,7 +206,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index 71c4bd582..5f7f6e22c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description

    @@ -93,7 +93,7 @@ T otherwise.

    - + Accuracy

    @@ -344,7 +344,7 @@

    - + Testing

    @@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index 8146fe2f5..9f7c9b543 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    template <class T>
    @@ -119,7 +119,7 @@
               it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
             

    - + Accuracy

    @@ -374,7 +374,7 @@

    - + Testing

    @@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index 64eafbcdc..4cb68c8d0 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

    - + Synopsis

    @@ -51,7 +51,7 @@ }} // namespaces

    - + Description

    @@ -131,7 +131,7 @@

    - + Accuracy

    @@ -248,7 +248,7 @@ is very close to a root.

    - + Testing

    @@ -258,7 +258,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index 1ac7d8088..7196931fe 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -62,7 +62,7 @@ }} // namespaces

    - + Description

    @@ -205,7 +205,7 @@

    - + Accuracy

    @@ -422,7 +422,7 @@ is very close to a root.

    - + Testing

    @@ -432,7 +432,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index 073fd349a..426622811 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -295,7 +295,7 @@
     
     
     
    - + Accuracy

    @@ -676,7 +676,7 @@ given here.

    - + Testing

    @@ -686,7 +686,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index d2a34a6c9..95244ee65 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

    - + Synopsis

    @@ -60,7 +60,7 @@ }} // namespaces

    - + Description

    @@ -150,7 +150,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

    - + Testing

    @@ -281,7 +281,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index f50c80527..d216e6724 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

    - + Synopsis

    @@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -80,7 +80,7 @@
               
             

    - + Accuracy

    @@ -229,7 +229,7 @@

    - + Testing

    @@ -244,7 +244,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index 02f59eba0..370a189ac 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -27,7 +27,7 @@ History and What's New

    - + Boost-1.47
      @@ -44,7 +44,7 @@
    - + Boost-1.46.1
    • @@ -52,7 +52,7 @@ #5113.
    - + Boost-1.46.0
      @@ -67,7 +67,7 @@
    - + Boost-1.45.0
      @@ -84,7 +84,7 @@
    - + Boost-1.44.0
      @@ -98,7 +98,7 @@
    - + Boost-1.41.0
    • @@ -106,7 +106,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -143,7 +143,7 @@
    - + Boost-1.38.0
      @@ -155,14 +155,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -195,7 +195,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -227,7 +227,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -241,7 +241,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -269,7 +269,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -305,7 +305,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index b6b6670b0..0fd7d0f1f 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

    - + tgamma
    • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
    - + Incomplete Beta
    • @@ -56,7 +56,7 @@ b (medium priority).
    - + Inverse Gamma
    • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
    - + Polynomials
    • @@ -74,7 +74,7 @@ not (Low Priority).
    - + Elliptic Integrals
      @@ -127,7 +127,7 @@
    - + Inverse Hyperbolic Functions
    @@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
    - + Statistical distributions
    @@ -146,7 +146,7 @@ for very large degrees of freedom?
    - + Feature Requests

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index 62a50ed86..ef4cd7278 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -78,7 +78,7 @@ }}} // namespaces

    - + Description

    @@ -178,7 +178,7 @@ a continued fraction for convergence.

    - + Implementation

    @@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index f3bd6c1bb..786d314d6 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

    - + Synopsis

    @@ -59,7 +59,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index 1195afa48..3e7308c33 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

    - + synopsis

    @@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

    - + Description

    @@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index fb18d72fc..1b7710e2e 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

    - + synopsis

    @@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

    - + Description

    @@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index 2dc34331e..ed7264d50 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

    - + Synopsis

    @@ -62,7 +62,7 @@ }}} // namespaces

    - + Description

    @@ -206,7 +206,7 @@

    - + Newton Raphson Method
    @@ -224,7 +224,7 @@ iteration.

    - + Halley's Method
    @@ -246,7 +246,7 @@ iteration.

    - + Schroeder's Method
    @@ -270,7 +270,7 @@ iteration.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index 8cdaa9ad7..dd83229da 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

    - + Synopsis

    @@ -144,7 +144,7 @@ }}} // namespaces

    - + Description

    @@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

    - + Bisection
    template <class F, class T, class Tol>
    @@ -280,7 +280,7 @@
               tol was satisfied.
             

    - + Bracket and solve
    @@ -388,7 +388,7 @@ was satisfied.

    - + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
    @@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index b6b7b89a9..ab9a9a11c 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -70,7 +70,7 @@ }}} // namespaces

    - + Description

    @@ -127,7 +127,7 @@ summation in this way.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index 3b1b6bcd8..3078163f3 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

    - + Synopsis

    @@ -38,7 +38,7 @@

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index 0c3c663db..4c8f67963 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

    - + Synopsis

    @@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

    - + Description
    template <class T>
    @@ -157,7 +157,7 @@
               is mainly a debugging/development aid (and a good place for a breakpoint).
             

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index abaaa2f63..663bcbf3d 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

    - + Synopsis

    @@ -103,7 +103,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index 8ca3343e6..a26a00986 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

    - + Synopsis
    namespace boost{ namespace math{ namespace tools{
    @@ -147,7 +147,7 @@
     }}} // namespaces
     
    - + Description

    @@ -177,7 +177,7 @@

    - + Example 1: Output Data for Graph Plotting
    @@ -211,7 +211,7 @@

    - + Example 2: Creating Test Data
    @@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

    - + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
    @@ -482,7 +482,7 @@ of a and z.

    - + reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index 68b731f12..7df2cdb98 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@

    - + Real concept

    @@ -84,7 +84,7 @@ declaration.

    - + Testing the real concept

    @@ -130,7 +130,7 @@ double, also tests real_concept.

    - + Distribution Concept

    @@ -166,7 +166,7 @@ class for distribution types.

    - + Testing the distribution concept

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index cf1f393d1..8ac41a513 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

    - + Basic Arithmetic Requirements
    @@ -1035,7 +1035,7 @@
    - + Standard Library Support Requirements
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils.html b/doc/sf_and_dist/html/math_toolkit/utils.html index 087edfd31..63a0f7cb4 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils.html +++ b/doc/sf_and_dist/html/math_toolkit/utils.html @@ -41,6 +41,13 @@ Functions
    Facets for Floating-Point Infinities and NaNs
    +
    +
    Introduction
    +
    Reference
    +
    Examples
    +
    Portability
    +
    Design Rationale
    +
    Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html index d7adcbf32..23c824440 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html @@ -7,7 +7,7 @@ - + @@ -20,15 +20,22 @@

    -PrevUpHomeNext +PrevUpHomeNext
    +
    - + Synopsis
    namespace boost{ namespace math
    @@ -65,978 +72,6 @@
           

    #include <boost\math\special_functions\nonfinite_num_facets.hpp>
     
    -
    - - Introduction -
    -
    - - 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!
    -
    -
    - - 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. -

    -

    - -

    -
    locale old_locale;
    -locale tmp_locale(old_locale, new nonfinite_num_put<char>);
    -locale new_locale(tmp_locale, new nonfinite_num_get<char>);
    -
    -

    -

    -
    - - - - - -
    [Tip]Tip

    - To add two facets, nonfinite_num_put - and nonfinite_num_get, - you have to add one at a time, using a temporary locale. -

    -

    - -

    -
    stringstream ss;
    -ss.imbue(new_locale);
    -double inf = numeric_limits<double>::infinity();
    -ss << inf; // Write out.
    -assert(ss.str() == "inf");
    -    double r;
    -ss >> r; // Read back in.
    -assert(inf == r); // Confirms that the double values really are identical.
    -
    -cout << "infinity output was " << ss.str() << endl;
    -cout << "infinity input was " << r << endl;
    -// But the string representation of r displayed will be the native type
    -// because, when it was constructed, cout had NOT been imbued 
    -// with the new locale containing the nonfinite_numput facet.
    -// So the cout output will be "1.#INF on MS platforms
    -// and may be "inf" or other string representation on other platforms.
    -
    -
    -

    -

    -
    - - C++0X - standard for output of infinity and NaN -
    -

    - 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. -

    -
    - - C99 - standard for output of infinity and NaN -
    -

    - The 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 50. 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. -

    -
    - - 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 - IEEE - 754-2008. -

    -

    - Floating-point values with layout s111 1111 1axx - 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. 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 C99 - format, and output as 1.#QNAN - by Microsoft compilers. -

    -
    - - - - - -
    [Note]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]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 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]Warning

    - This implementation does not (yet) provide output of, or access to, the - NaN payload. -

    -
    - - Reference -
    -
    - - 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: -

    -
    ---- - - - - - - - - - - - - - - - - - - - - - - -
    -

    - 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. -

    -
    - - 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: -

    -
    ---- - - - - - - - - - - - - - - - - - - - - - - -
    -

    - 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. -

    -
    - - 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. -

    -
    - - 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: -

    -
    ---- - - - - - - - - - - - - - - - - - - - - - - -
    -

    - 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.. -

    -

    - 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. -

    -
    - - signed_zero -
    -

    - If the signed_zero flag is - used with nonfinite_num_put, - then the facet will 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. -

    -
    - - 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.) -

    -
    - - trap_nan -
    -

    - Same as trap_infinity, but - positive and negative NaN are trapped instead. -

    -

    - - Examples -

    -
    - - Simple - example with std::stringstreams -
    -

    - -

    -
    locale old_locale;
    -locale tmp_locale(old_locale, new nonfinite_num_put<char>);
    -locale new_locale(tmp_locale, new nonfinite_num_get<char>);
    -
    -

    -

    -

    - -

    -
    stringstream ss;
    -ss.imbue(new_locale);
    -double inf = numeric_limits<double>::infinity();
    -ss << inf; // Write out.
    -assert(ss.str() == "inf");
    -    double r;
    -ss >> r; // Read back in.
    -assert(inf == r); // Confirms that the double values really are identical.
    -
    -cout << "infinity output was " << ss.str() << endl;
    -cout << "infinity input was " << r << endl;
    -// But the string representation of r displayed will be the native type
    -// because, when it was constructed, cout had NOT been imbued 
    -// with the new locale containing the nonfinite_numput facet.
    -// So the cout output will be "1.#INF on MS platforms
    -// and may be "inf" or other string representation on other platforms.
    -
    -
    -

    -

    -
    - - Use with - lexical_cast -
    -

    - Without using a new locale that contains the nonfinite facets, lexical_cast is not portable (and often - fails) if nonfinite values are found. -

    -

    - -

    -
    locale old_locale;
    -locale tmp_locale(old_locale, new nonfinite_num_put<char>);
    -locale new_locale(tmp_locale, new nonfinite_num_get<char>);
    -
    -

    -

    -

    - Although other examples imbue individual streams with the new locale, for - the streams constructed inside lexical_cast, it is 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]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 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 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;
    -
    -
    - - 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. -

    -
    - - Other examples -
    -

    - 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 nonfinite_facet_sstream.cpp - for this example of use with std::stringstreams. -

    -

    - 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. -

    -

    - 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 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 -

    -
    - - 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. -

    -
    - - 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. -
    • -
    @@ -1050,7 +85,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index 18280a87b..7bad5d64f 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -28,7 +28,7 @@ Infinities and NaNs
    - + Synopsis
    #define FP_ZERO        /* implementation specific value */
    @@ -58,7 +58,7 @@
             to use these functions.
           

    - + Description

    @@ -217,7 +217,7 @@ infinite, NaN, or denormalised).

    - + Floating-point format
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float.html index 831f5121e..eb1fa2d8f 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float.html @@ -6,7 +6,7 @@ - + @@ -20,7 +20,7 @@
    -PrevUpHomeNext +PrevUpHomeNext

    @@ -77,7 +77,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index 7939720bb..f141007e0 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

    - + Synopsis

    @@ -50,7 +50,7 @@ }} // namespaces

    - + Description - float_advance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index 903df2b80..4433d4f51 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

    - + Synopsis

    @@ -52,7 +52,7 @@ }} // namespaces

    - + Description - float_distance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index cc70947a8..7b765967f 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_next
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index 200fbcc01..ec2ab2979 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_prior
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index 95844a587..073456408 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - nextafter
    @@ -76,7 +76,7 @@ returns an overflow_error.

    - + Examples - nextafter
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index 5abbb35df..63d128450 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -28,7 +28,7 @@ Functions
    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description
    template<class T> 
    @@ -91,7 +91,7 @@
     

    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. + other bits are the same as in x.

    This function is widely available, but not specified in any standards. @@ -109,7 +109,7 @@ may be the only portable way to ensure that the sign bit is changed.

    - + Sign bits

    @@ -130,7 +130,7 @@ it may be necessary to explicitly specialize then for UDT type T.

    - + Examples
    signbit(3.5) is zero (or false)
    @@ -143,7 +143,7 @@
     changesign(-1.8) is 1.8
     
    - + Portability

    From e62f8f1a695846615069ef57188d36fc8e3058cd Mon Sep 17 00:00:00 2001 From: John Maddock Date: Thu, 21 Apr 2011 10:46:10 +0000 Subject: [PATCH 55/82] Regenerate docs and add missing files. Fix examples so they build for VC-9.0 and earlier (ie when BOOST_NO_NUMERIC_LIMITS_LOWEST is defined). [SVN r71401] --- doc/sf_and_dist/html/index.html | 13 +- doc/sf_and_dist/html/index/s12.html | 4 +- doc/sf_and_dist/html/index/s13.html | 6 +- doc/sf_and_dist/html/index/s14.html | 2 +- doc/sf_and_dist/html/index/s15.html | 21 +- doc/sf_and_dist/html/index/s16.html | 56 ++- .../backgrounders/implementation.html | 30 +- .../math_toolkit/backgrounders/lanczos.html | 10 +- .../html/math_toolkit/backgrounders/refs.html | 6 +- .../backgrounders/relative_error.html | 2 +- .../math_toolkit/backgrounders/remez.html | 16 +- doc/sf_and_dist/html/math_toolkit/dist.html | 2 +- .../dist/dist_ref/dist_algorithms.html | 6 +- .../dist/dist_ref/dists/bernoulli_dist.html | 10 +- .../dist/dist_ref/dists/beta_dist.html | 20 +- .../dist/dist_ref/dists/binomial_dist.html | 24 +- .../dist/dist_ref/dists/cauchy_dist.html | 10 +- .../dist/dist_ref/dists/chi_squared_dist.html | 12 +- .../dist/dist_ref/dists/exp_dist.html | 10 +- .../dist/dist_ref/dists/extreme_dist.html | 8 +- .../dist/dist_ref/dists/f_dist.html | 10 +- .../dist/dist_ref/dists/gamma_dist.html | 8 +- .../dist/dist_ref/dists/geometric_dist.html | 22 +- .../dist_ref/dists/hypergeometric_dist.html | 10 +- .../dists/inverse_chi_squared_dist.html | 10 +- .../dist_ref/dists/inverse_gamma_dist.html | 8 +- .../dist_ref/dists/inverse_gaussian_dist.html | 10 +- .../dist/dist_ref/dists/laplace_dist.html | 10 +- .../dist/dist_ref/dists/logistic_dist.html | 8 +- .../dist/dist_ref/dists/lognormal_dist.html | 8 +- .../dist/dist_ref/dists/nc_beta_dist.html | 10 +- .../dist_ref/dists/nc_chi_squared_dist.html | 12 +- .../dist/dist_ref/dists/nc_f_dist.html | 10 +- .../dist/dist_ref/dists/nc_t_dist.html | 10 +- .../dists/negative_binomial_dist.html | 22 +- .../dist/dist_ref/dists/normal_dist.html | 8 +- .../dist/dist_ref/dists/pareto.html | 12 +- .../dist/dist_ref/dists/poisson_dist.html | 8 +- .../dist/dist_ref/dists/rayleigh.html | 12 +- .../dist/dist_ref/dists/students_t_dist.html | 10 +- .../dist/dist_ref/dists/triangular_dist.html | 10 +- .../dist/dist_ref/dists/uniform_dist.html | 10 +- .../dist/dist_ref/dists/weibull_dist.html | 12 +- .../html/math_toolkit/dist/dist_ref/nmp.html | 54 +-- .../html/math_toolkit/dist/future.html | 8 +- .../html/math_toolkit/dist/stat_tut.html | 2 +- .../math_toolkit/dist/stat_tut/overview.html | 2 +- .../dist/stat_tut/overview/complements.html | 4 +- .../weg/binom_eg/binomial_quiz_example.html | 4 +- .../stat_tut/weg/cs_eg/chi_sq_intervals.html | 2 +- .../dist/stat_tut/weg/dist_construct_eg.html | 2 +- .../weg/find_eg/find_location_eg.html | 2 +- .../weg/find_eg/find_mean_and_sd_eg.html | 6 +- .../stat_tut/weg/find_eg/find_scale_eg.html | 2 +- .../dist/stat_tut/weg/geometric_eg.html | 8 +- .../weg/normal_example/normal_misc.html | 14 +- .../html/math_toolkit/extern_c/c99.html | 4 +- .../html/math_toolkit/extern_c/tr1.html | 10 +- .../html/math_toolkit/extern_c/tr1_ref.html | 6 +- .../math_toolkit/main_overview/building.html | 6 +- .../main_overview/directories.html | 4 +- .../main_overview/error_handling.html | 24 +- .../math_toolkit/main_overview/history1.html | 30 +- .../math_toolkit/main_overview/intro.html | 6 +- .../main_overview/navigation.html | 2 +- .../html/math_toolkit/main_overview/tr1.html | 10 +- .../html/math_toolkit/perf/comparisons.html | 54 +-- .../policy/pol_ref/discrete_quant_ref.html | 12 +- .../pol_ref/error_handling_policies.html | 14 +- .../policy/pol_ref/internal_promotion.html | 2 +- .../policy/pol_ref/policy_defaults.html | 32 +- .../pol_tutorial/understand_dis_quant.html | 2 +- .../math_toolkit/special/bessel/bessel.html | 10 +- .../special/bessel/bessel_over.html | 6 +- .../math_toolkit/special/bessel/mbessel.html | 10 +- .../special/bessel/sph_bessel.html | 10 +- .../math_toolkit/special/ellint/ellint_1.html | 10 +- .../math_toolkit/special/ellint/ellint_2.html | 10 +- .../math_toolkit/special/ellint/ellint_3.html | 14 +- .../special/ellint/ellint_carlson.html | 10 +- .../special/ellint/ellint_intro.html | 12 +- .../math_toolkit/special/expint/expint_i.html | 14 +- .../math_toolkit/special/expint/expint_n.html | 10 +- .../special/factorials/sf_binomial.html | 6 +- .../factorials/sf_double_factorial.html | 6 +- .../special/factorials/sf_factorial.html | 10 +- .../factorials/sf_falling_factorial.html | 6 +- .../factorials/sf_rising_factorial.html | 6 +- .../math_toolkit/special/inv_hyper/acosh.html | 6 +- .../math_toolkit/special/inv_hyper/asinh.html | 6 +- .../math_toolkit/special/inv_hyper/atanh.html | 6 +- .../math_toolkit/special/powers/cbrt.html | 4 +- .../math_toolkit/special/powers/ct_pow.html | 14 +- .../math_toolkit/special/powers/expm1.html | 4 +- .../math_toolkit/special/powers/hypot.html | 2 +- .../math_toolkit/special/powers/log1p.html | 4 +- .../math_toolkit/special/powers/powm1.html | 4 +- .../math_toolkit/special/powers/sqrt1pm1.html | 4 +- .../special/sf_beta/beta_derivative.html | 8 +- .../special/sf_beta/beta_function.html | 10 +- .../special/sf_beta/ibeta_function.html | 10 +- .../special/sf_beta/ibeta_inv_function.html | 10 +- .../special/sf_erf/error_function.html | 10 +- .../special/sf_erf/error_inv.html | 10 +- .../special/sf_gamma/digamma.html | 10 +- .../special/sf_gamma/gamma_derivatives.html | 8 +- .../special/sf_gamma/gamma_ratios.html | 8 +- .../math_toolkit/special/sf_gamma/igamma.html | 12 +- .../special/sf_gamma/igamma_inv.html | 10 +- .../math_toolkit/special/sf_gamma/lgamma.html | 10 +- .../math_toolkit/special/sf_gamma/tgamma.html | 10 +- .../math_toolkit/special/sf_poly/hermite.html | 10 +- .../special/sf_poly/laguerre.html | 10 +- .../special/sf_poly/legendre.html | 10 +- .../special/sf_poly/sph_harm.html | 10 +- .../html/math_toolkit/special/zetas/zeta.html | 10 +- .../html/math_toolkit/status/credits.html | 5 +- .../html/math_toolkit/status/history1.html | 30 +- .../html/math_toolkit/status/issues.html | 16 +- .../math_toolkit/toolkit/internals1/cf.html | 8 +- .../toolkit/internals1/constants.html | 4 +- .../toolkit/internals1/minima.html | 6 +- .../toolkit/internals1/rational.html | 6 +- .../toolkit/internals1/roots.html | 12 +- .../toolkit/internals1/roots2.html | 12 +- .../toolkit/internals1/series_evaluation.html | 6 +- .../toolkit/internals1/tuples.html | 4 +- .../toolkit/internals2/error_test.html | 6 +- .../toolkit/internals2/polynomials.html | 4 +- .../toolkit/internals2/test_data.html | 12 +- .../math_toolkit/using_udt/archetypes.html | 8 +- .../html/math_toolkit/using_udt/concepts.html | 4 +- .../html/math_toolkit/utils/fp_facets.html | 2 +- .../utils/fp_facets/examples.html | 249 ++++++++++ .../math_toolkit/utils/fp_facets/intro.html | 371 +++++++++++++++ .../utils/fp_facets/portability.html | 50 ++ .../utils/fp_facets/rationale.html | 67 +++ .../utils/fp_facets/reference.html | 448 ++++++++++++++++++ .../html/math_toolkit/utils/fpclass.html | 6 +- .../utils/next_float/float_advance.html | 4 +- .../utils/next_float/float_distance.html | 4 +- .../utils/next_float/float_next.html | 4 +- .../utils/next_float/float_prior.html | 4 +- .../utils/next_float/nextafter.html | 6 +- .../math_toolkit/utils/sign_functions.html | 10 +- example/nonfinite_num_facet.cpp | 6 +- example/nonfinite_num_facet_serialization.cpp | 8 +- 147 files changed, 1913 insertions(+), 695 deletions(-) create mode 100644 doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html create mode 100644 doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html create mode 100644 doc/sf_and_dist/html/math_toolkit/utils/fp_facets/portability.html create mode 100644 doc/sf_and_dist/html/math_toolkit/utils/fp_facets/rationale.html create mode 100644 doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html index 4d8f61464..4c2f679c1 100644 --- a/doc/sf_and_dist/html/index.html +++ b/doc/sf_and_dist/html/index.html @@ -53,7 +53,7 @@ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and Thijs van den Berg

    -

    +

    Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    @@ -104,7 +104,7 @@ are Objects
    Generic operations common to all distributions are non-member functions
    -
    Complements +
    Complements are supported too - and when to use them
    Parameters can be calculated
    @@ -497,6 +497,11 @@
    Known Issues, and TODO List
    Credits and Acknowledgements
    +
    Function Index
    +
    Class Index
    +
    Typedef Index
    +
    Macro Index
    +
    Index

    @@ -504,11 +509,9 @@ friendly PDF format, and as a CD ISBN 0-9504833-2-X 978-0-9504833-2-0, Classification 519.2-dc22.

    -

    -

    - +

    Last revised: April 20, 2011 at 17:15:42 GMT

    Last revised: April 21, 2011 at 10:10:03 GMT


    diff --git a/doc/sf_and_dist/html/index/s12.html b/doc/sf_and_dist/html/index/s12.html index ad72556d6..b16e22bda 100644 --- a/doc/sf_and_dist/html/index/s12.html +++ b/doc/sf_and_dist/html/index/s12.html @@ -24,7 +24,7 @@

    -Function Index

    +Function Index

    A B C D E F G H I K L M N P Q R S T U V Z

    diff --git a/doc/sf_and_dist/html/index/s13.html b/doc/sf_and_dist/html/index/s13.html index cdeb1d02d..642aa5eb4 100644 --- a/doc/sf_and_dist/html/index/s13.html +++ b/doc/sf_and_dist/html/index/s13.html @@ -24,7 +24,7 @@

    -Class Index

    +Class Index

    B C D E F G H I L M N P R S T U W

    @@ -131,6 +131,10 @@
    negative_binomial_distribution

    Negative Binomial Distribution

    +
    nonfinite_num_get
    +

    Facets for Floating-Point Infinities and NaNs

    +
    nonfinite_num_put
    +

    Facets for Floating-Point Infinities and NaNs

    non_central_beta_distribution

    Noncentral Beta Distribution

    non_central_chi_squared_distribution
    diff --git a/doc/sf_and_dist/html/index/s14.html b/doc/sf_and_dist/html/index/s14.html index 638097b0e..9b30ac59b 100644 --- a/doc/sf_and_dist/html/index/s14.html +++ b/doc/sf_and_dist/html/index/s14.html @@ -24,7 +24,7 @@

    -Typedef Index

    +Typedef Index

    A B C D E F G H I L N O P R S T U V W

    diff --git a/doc/sf_and_dist/html/index/s15.html b/doc/sf_and_dist/html/index/s15.html index 4a485776b..23097e528 100644 --- a/doc/sf_and_dist/html/index/s15.html +++ b/doc/sf_and_dist/html/index/s15.html @@ -24,7 +24,7 @@

    -Macro Index

    +Macro Index

    A B C E F H I L N R S T

    H @@ -1055,6 +1055,8 @@
    + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Introduction

    Reference

    nanf
    @@ -1202,6 +1204,7 @@ + diff --git a/doc/sf_and_dist/html/index/s16.html b/doc/sf_and_dist/html/index/s16.html index 05d9ed7e1..9ec255a6e 100644 --- a/doc/sf_and_dist/html/index/s16.html +++ b/doc/sf_and_dist/html/index/s16.html @@ -23,7 +23,7 @@

    -Index

    +Index

    A B C D E F G H I K L M N O P Q R S T U V W Z

    @@ -894,7 +894,7 @@
    chi_squared_distribution

    Error Functions

    Error Handling

    Error Handling Policies

    Examples

    Find Scale (Standard Deviation) Example

    Generic operations common to all distributions are non-member functions

    Geometric Distribution Examples

    Chi Squared Distribution

    Comparing Compilers
    -

    erf

    +

    erf

    Comparisons to Other Open Source Libraries
    @@ -1269,16 +1269,16 @@ - + - + - +

    cbrt

    C99 and TR1 C Functions Overview

    C99 C Functions

    Calling User Defined Error Handlers

    Comparing Compilers

    Comparing Compilers

    Comparisons to Other Open Source Libraries

    Conceptual Requirements for Real Number Types

    Credits and Acknowledgements

    Directory and File Structure

    Error Function Inverses

    Error Functions

    Getting the Best Performance from this Library

    Getting the Best Performance from this Library

    History and What's New

    Performance Tuning Macros

    Performance Tuning Macros

    erfc
    @@ -1483,6 +1483,11 @@

    fisher_f_distribution

    value_type

    +
    Facets for Floating-Point Infinities and NaNs
    +
    + + +

    nonfinite_num_get

    nonfinite_num_put

    Factorial
    @@ -1558,14 +1563,14 @@

    factorial

    fisher_f_distribution

    F Distribution

    -
    Floating-Point Classification: Infinities and NaN's
    +
    Floating-Point Classification: Infinities and NaNs
    - - - - - - + + + + + +

    FP_INFINITE

    FP_NAN

    FP_NORMAL

    FP_SUBNORMAL

    FP_ZERO

    isnan

    FP_INFINITE

    FP_NAN

    FP_NORMAL

    FP_SUBNORMAL

    FP_ZERO

    isnan

    float_advance

    Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance

    @@ -1633,15 +1638,15 @@

    C99 C Functions

    FP_INFINITE
    -

    Floating-Point Classification: Infinities and NaN's

    +

    Floating-Point Classification: Infinities and NaNs

    FP_NAN
    -

    Floating-Point Classification: Infinities and NaN's

    +

    Floating-Point Classification: Infinities and NaNs

    FP_NORMAL
    -

    Floating-Point Classification: Infinities and NaN's

    +

    Floating-Point Classification: Infinities and NaNs

    FP_SUBNORMAL
    -

    Floating-Point Classification: Infinities and NaN's

    +

    Floating-Point Classification: Infinities and NaNs

    FP_ZERO
    -

    Floating-Point Classification: Infinities and NaN's

    +

    Floating-Point Classification: Infinities and NaNs

    G @@ -1701,7 +1706,7 @@
    geometric_distribution

    Geometric Distribution

    Getting the Best Performance from this Library
    -

    erf

    +

    erf

    get_user_parameter_info

    Graphing, Profiling, and Generating Test Data for Special Functions

    Graphing, Profiling, and Generating Test Data for Special Functions
    @@ -1893,6 +1898,8 @@

    Policy Class Reference

    Internal Floating-point Promotion Policies

    tgamma

    +
    Introduction
    +

    nan

    Inverse Chi Squared Distribution
    @@ -1927,7 +1934,7 @@
    iround

    inverse_chi_squared

    Rounding Functions

    isnan
    -

    Floating-Point Classification: Infinities and NaN's

    +

    Floating-Point Classification: Infinities and NaNs

    Iteration Limits Policies
    @@ -2280,6 +2287,8 @@

    BOOST_MATH_MAX_ROOT_ITERATION_POLICY

    + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Introduction

    Reference

    nanf
    @@ -2417,6 +2426,10 @@

    policy_type

    value_type

    +
    nonfinite_num_get
    +

    Facets for Floating-Point Infinities and NaNs

    +
    nonfinite_num_put
    +

    Facets for Floating-Point Infinities and NaNs

    non_central_beta

    Noncentral Beta Distribution

    non_central_beta_distribution
    @@ -2487,7 +2500,7 @@

    BOOST_MATH_POLY_METHOD

    BOOST_MATH_PROMOTE_DOUBLE_POLICY

    BOOST_MATH_RATIONAL_METHOD

    -

    erf

    +

    erf

    Lanczos approximation

    poisson
    @@ -2610,6 +2623,8 @@
    rayleigh_distribution

    Rayleigh Distribution

    +
    Reference
    +

    nan

    References

    Lanczos approximation

    Relative Error and Testing
    @@ -2726,6 +2741,7 @@

    Error Functions

    Error Handling

    Error Handling Policies

    +

    Examples

    Find Scale (Standard Deviation) Example

    Generic operations common to all distributions are non-member functions

    Geometric Distribution Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index 1d0df1459..a43cabefa 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

    - + Implemention philosophy
    @@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

    - + Accuracy and Representation of Test Values
    @@ -130,7 +130,7 @@ binary value).

    - + Tolerance of Tests
    @@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

    - + Handling Unsuitable Arguments
    @@ -224,7 +224,7 @@

    - + Handling of Functions that are Not Mathematically defined
    @@ -258,7 +258,7 @@

    - + Median of distributions
    @@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

    - + Handling of Floating-Point Infinity
    @@ -337,7 +337,7 @@ handling policies.

    - + Scale, Shape and Location
    @@ -364,7 +364,7 @@ functions, they can be added if required.

    - + Notes on Implementation of Specific Functions & Distributions
    @@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
    - + Rational Approximations Used
    @@ -419,7 +419,7 @@ to the "true" minimax solution.

    - + Representation of Mathematical Constants
    @@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
    - + Thread safety
    @@ -505,7 +505,7 @@ the right thing here at some point.

    - + Sources of Test Data
    @@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

    - + Creating and Managing the Equations
    @@ -731,7 +731,7 @@ done HTML: this needs further investigation.

    - + Producing Graphs
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index 8162f6c77..ce776272a 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
    - + Motivation

    @@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

    - + The Approximation
    @@ -161,7 +161,7 @@

    - + Computing the Coefficients
    @@ -205,7 +205,7 @@ multiplied by F as the last step.

    - + Choosing the Right Parameters
    @@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index 9730bf803..e4c924e8c 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
    - + General references
    @@ -98,7 +98,7 @@ Library (version 2), Walter E. Brown

    - + Calculators

    @@ -120,7 +120,7 @@ Binomial Probability Distribution Calculator.

    - + Other Libraries

    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index 405fa9ba6..8967d100a 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

    - + The Impossibility of Zero Error
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index c2b05e9c4..9bd27264e 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

    - + The Remez Method
    @@ -174,7 +174,7 @@
    - + Remez Step 1
    @@ -205,7 +205,7 @@ to 5.6x10-4.

    - + Remez Step 2
    @@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

    - + Iteration

    @@ -250,7 +250,7 @@ remez-4

    - + Rational Approximations
    @@ -299,7 +299,7 @@ number of terms overall.

    - + Practical Considerations
    @@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

    - + Remez Method Checklist
    @@ -461,7 +461,7 @@
    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist.html b/doc/sf_and_dist/html/math_toolkit/dist.html index b60ef2dd8..a97c7ccd1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist.html @@ -38,7 +38,7 @@ are Objects

    Generic operations common to all distributions are non-member functions
    -
    Complements +
    Complements are supported too - and when to use them
    Parameters can be calculated
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index ddba08931..03c3328f4 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms
    - + Finding the Location and Scale for Normal and similar distributions
    @@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
    - + find_location function
    @@ -80,7 +80,7 @@ }} // namespaces
    - + find_scale function
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index c9e03dd13..4cf8e1e5a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

    - + Member Functions
    @@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ exception and make an error message available.

    - + Accuracy

    @@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

    - + Implementation

    @@ -327,7 +327,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index 1e64b78a0..a6feccef6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

      - + Member Functions
      - + Constructor
      beta_distribution(RealType alpha, RealType beta);
      @@ -164,7 +164,7 @@
                   yellow in the graph above).
                 

      - + Parameter Accessors
      @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
      - + Parameter Estimators
      @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

      - + Non-member Accessor Functions
      @@ -263,7 +263,7 @@ Mathworld.

      - + Applications

      @@ -276,7 +276,7 @@ statistical inference.

      - + Related distributions
      @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

      - + Accuracy

      @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

      - + Implementation

      @@ -594,7 +594,7 @@

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index d3bb0e983..ceb22ed07 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

    - + Member Functions
    - + Construct
    binomial_distribution(RealType n, RealType p);
    @@ -183,7 +183,7 @@
                 otherwise calls domain_error.
               

    - + Accessors
    RealType success_fraction() const;
    @@ -199,7 +199,7 @@
                 was constructed.
               

    - + Lower Bound on the Success Fraction
    @@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

    - + Upper Bound on the Success Fraction
    @@ -383,7 +383,7 @@
    - + Estimating the Number of Trials Required for a Certain Number of Successes
    @@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

    - + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

    - + Non-member Accessors
    @@ -622,7 +622,7 @@
    - + Examples

    @@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

    - + Accuracy

    @@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -884,7 +884,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index 2038a522a..ddeb537c2 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

      - + Accuracy

      @@ -157,7 +157,7 @@ have very low error rates.

      - + Implementation

      @@ -273,7 +273,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index 335074d2f..bf8a07433 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

      - + Member Functions
      @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

      - + Non-member Accessors
      @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

      - + Examples

      @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

      - + Accuracy

      @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

      - + Implementation

      @@ -379,7 +379,7 @@ independent, normally distributed random

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index d2c5b9b89..f3757d293 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

      - + Member Functions
      @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

      - + Non-member Accessors
      @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -122,7 +122,7 @@ should have very low error rates.

      - + Implementation

      @@ -283,7 +283,7 @@

    - + references
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index 9beac37ec..aef6a012c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

      - + Member Functions
      @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

      - + Accuracy

      @@ -154,7 +154,7 @@ very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index 95413b94e..9359ff2be 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

      - + Member Functions
      @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

      - + Non-member Accessors
      @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

      - + Accuracy

      @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index 0e29d16b7..71f64d524 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

      - + Member Functions
      @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index e396ed80e..e50b264ef 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

      - + Related Distributions
      @@ -206,12 +206,12 @@
    - + Member Functions
    - + Constructor
    geometric_distribution(RealType p);
    @@ -226,7 +226,7 @@
                 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -253,7 +253,7 @@
                 Binomial Distribution for more discussion.
               

    - + Lower Bound on success_fraction Parameter p
    @@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on success_fraction Parameter p
    @@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -415,7 +415,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -463,7 +463,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -611,7 +611,7 @@
    - + Accuracy

    @@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index 6661ea371..f377fdc25 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

    - + Member Functions
    @@ -131,7 +131,7 @@ from the population N.

    - + Non-member Accessors
    @@ -185,7 +185,7 @@
    - + Accuracy

    @@ -211,7 +211,7 @@ meaningless for N >= 1015.

    - + Testing

    @@ -223,7 +223,7 @@ this implementation and NTL::RR.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index a6525d92d..a863a2ae6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

    - + Member Functions
    @@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

    - + Non-member Accessors
    @@ -255,7 +255,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

    - + Implementation

    @@ -452,7 +452,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index 10022b6e0..01c4f3b10 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

      - + Member Functions
      @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

      - + Non-member Accessors
      @@ -184,7 +184,7 @@

    - + Accuracy

    @@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index b217c0506..7306d27cd 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -146,7 +146,7 @@ the __wald_distrib (where mean μ is unity) is also provided.

    - + Member Functions
    @@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

    - + Non-member Accessors
    @@ -201,7 +201,7 @@

    - + Accuracy

    @@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    @@ -390,7 +390,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index e067d210b..0d6541982 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

      - + Member Functions
      @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

      - + Accuracy

      @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

      - + Implementation

      @@ -329,7 +329,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index dc6a853aa..e2c31d7d1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

      - + Member Functions
      @@ -98,7 +98,7 @@ Returns the scale of this distribution.

      - + Non-member Accessors
      @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

      - + Accuracy

      @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

      - + Implementation
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index 83af4c9de..4a2cf01b6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index 575d0f0bb..4ea26dc56 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

      - + Member Functions
      @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

      - + Non-member Accessors
      @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

      - + Accuracy

      @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

      - + Tests

      @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index 2c950419f..2d7fe4c70 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

      - + Member Functions
      @@ -183,7 +183,7 @@ == q.

      - + Non-member Accessors
      @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

      - + Accuracy

      @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

      - + Tests

      @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index 2e809ad6f..524298980 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

      - + Member Functions
      @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

      - + Non-member Accessors
      @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

      - + Tests

      @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index 9c3b950ed..a1646d6f4 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

      - + Member Functions
      @@ -111,7 +111,7 @@ which this object was constructed.

      - + Non-member Accessors
      @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

      - + Accuracy

      @@ -255,7 +255,7 @@ epsilon.

      - + Tests

      @@ -270,7 +270,7 @@ least 50 decimal places.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index ffdb88d05..5d113d879 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

      - + Related Distributions
      @@ -195,12 +195,12 @@
      - + Member Functions
      - + Construct
      negative_binomial_distribution(RealType r, RealType p);
      @@ -216,7 +216,7 @@
                   <= 1.
                 

      - + Accessors
      RealType success_fraction() const; // successes / trials (0 <= p <= 1)
      @@ -237,7 +237,7 @@
                   Distribution for more discussion.
                 

      - + Lower Bound on Parameter p
      @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

      - + Upper Bound on Parameter p
      @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

      - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
      @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

      - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
      @@ -457,7 +457,7 @@ probability of observing more than k failures.

      - + Non-member Accessors
      @@ -606,7 +606,7 @@

    - + Accuracy

    @@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index 56732847c..90ff95023 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

    - + Member Functions
    @@ -109,7 +109,7 @@ be used generically).

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

    - + Accuracy

    @@ -139,7 +139,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index 22b68820b..d24b75f4a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

    - + Related distributions
    - + Member Functions
    @@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

    - + Non-member Accessors
    @@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ zero) see also why complements?.

    - + Implementation

    @@ -318,7 +318,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index 28ed22515..9a3ae7c11 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
    - + Member Functions
    @@ -131,7 +131,7 @@ Returns the mean of this distribution.

    - + Non-member Accessors
    @@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

    - + Accuracy

    @@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index ccf388593..a87a5407a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

    - + Related distributions
    @@ -102,7 +102,7 @@ distribution.

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

    - + Accuracy

    @@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

    - + Implementation

    @@ -320,7 +320,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index 443522a9a..c2591a66a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

      - + Member Functions
      @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

      - + Non-member Accessors
      @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

      - + Examples

      @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

      - + Accuracy

      @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index 69d28012b..e9c99ae54 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

      - + Member Functions
      @@ -163,7 +163,7 @@ (default+1).

      - + Non-member Accessors
      @@ -184,7 +184,7 @@ range is lower <= x <= upper.

      - + Accuracy

      @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

      - + Implementation

      @@ -378,7 +378,7 @@ Calculate and plot probability distributions

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index 2f8261b7a..e20512d45 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

        - + Member Functions
        @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

        - + Non-member Accessors
        @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

        - + Accuracy

        @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index 914edf19f..80d29c09c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

        - + Related distributions
        @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

        - + Member Functions
        @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

        - + Non-member Accessors
        @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

        - + Accuracy

        @@ -170,7 +170,7 @@ as such should have very low error rates.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index 13fe619c1..17e6994d7 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

        - + Function Index
          @@ -94,7 +94,7 @@
        - + Conceptual Index
          @@ -180,7 +180,7 @@
        - + Cumulative Distribution Function
        template <class RealType, class Policy>
        @@ -203,7 +203,7 @@
                   cdf
                 

        - + Complement of the Cumulative Distribution Function
        template <class Distribution, class RealType>
        @@ -243,7 +243,7 @@
                   complement is useful and when it should be used.
                 

        - + Hazard Function
        template <class RealType, class Policy>
        @@ -271,7 +271,7 @@
                   

      - + Cumulative Hazard Function
      template <class RealType, class Policy>
      @@ -298,7 +298,7 @@
                 

    - + mean
    template<class RealType, class Policy>
    @@ -313,7 +313,7 @@
               distribution).
             

    - + median
    template<class RealType, class Policy>
    @@ -323,7 +323,7 @@
               Returns the median of the distribution dist.
             

    - + mode
    template<class RealType, Policy>
    @@ -337,7 +337,7 @@
               if the distribution does not have a defined mode.
             

    - + Probability Density Function
    template <class RealType, class Policy>
    @@ -365,7 +365,7 @@
               pdf
             

    - + Range
    template<class RealType, class Policy>
    @@ -375,7 +375,7 @@
               Returns the valid range of the random variable over distribution dist.
             

    - + Quantile
    template <class RealType, class Policy>
    @@ -405,7 +405,7 @@
               quantile
             

    - + Quantile from the complement of the probability.

    @@ -450,7 +450,7 @@ survival_inv

    - + Standard Deviation
    template <class RealType, class Policy>
    @@ -464,7 +464,7 @@
               if the distribution does not have a defined standard deviation.
             

    - + support
    template<class RealType, class Policy>
    @@ -481,7 +481,7 @@
               where the pdf is zero, and the cdf zero or unity.
             

    - + Variance
    template <class RealType, class Policy>
    @@ -495,7 +495,7 @@
               if the distribution does not have a defined variance.
             

    - + Skewness
    template <class RealType, class Policy>
    @@ -509,7 +509,7 @@
               if the distribution does not have a defined skewness.
             

    - + Kurtosis
    template <class RealType, class Policy>
    @@ -551,7 +551,7 @@
               'Proper' kurtosis can have a value from zero to + infinity.
             

    - + Kurtosis excess
    template <class RealType, Policy>
    @@ -585,7 +585,7 @@
               The kurtosis excess of a normal distribution is zero.
             

    - + P and Q

    @@ -595,7 +595,7 @@ returned by these functions.

    - + Percent Point Function or Percentile

    @@ -603,7 +603,7 @@ the Quantile.

    - + Inverse CDF Function.

    @@ -611,14 +611,14 @@ Quantile.

    - + Inverse Survival Function.

    The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

    - + Probability Mass Function

    @@ -631,7 +631,7 @@ applies to continuous distributions.

    - + Lower Critical Value.

    @@ -640,7 +640,7 @@ the Quantile.

    - + Upper Critical Value.

    @@ -650,7 +650,7 @@ complement of the probability.

    - + Survival Function

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index 17c699870..0d4ce5033 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

    - + Adding Additional Location and Scale Parameters
    @@ -55,7 +55,7 @@ functions.

    - + An "any_distribution" class
    @@ -91,7 +91,7 @@ investigation.

    - + Higher Level Hypothesis Tests
    @@ -111,7 +111,7 @@ expected_mean.

    - + Integration With Statistical Accumulators
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html index 3c6685e99..15dcf4614 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html @@ -36,7 +36,7 @@ are Objects
    Generic operations common to all distributions are non-member functions
    -
    Complements +
    Complements are supported too - and when to use them
    Parameters can be calculated
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html index 9d7816398..0d81ff770 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html @@ -33,7 +33,7 @@ are Objects
    Generic operations common to all distributions are non-member functions
    -
    Complements +
    Complements are supported too - and when to use them
    Parameters can be calculated
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html index 57b9e3db6..83a3c54e0 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html @@ -24,10 +24,10 @@
    -

    +

    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 diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index 47bc5e096..d1c66da7c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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

    - + Using Binomial distribution moments
    @@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
    - + Quantiles

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index dc31a921e..08b35431f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

    - + Confidence intervals as a function of the number of observations
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index 9b484fa96..c85b033a3 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
    negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
     
    - + Default arguments to distribution constructors.
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index 4ab6f922b..9efba7eff 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
    - + Controlling Error Handling from find_location
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index 45770c5e4..223bab4b8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

    - + Using find_location and find_scale to meet dispensing and measurement specifications
    @@ -193,7 +193,7 @@

    - + Using Cauchy-Lorentz instead of normal distribution
    @@ -305,7 +305,7 @@ of estimating these intervals.

    - + Changing the scale or standard deviation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index db7b03701..bd6286cdb 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
    - + Controlling how Errors from find_scale are handled
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index be8a0c11c..1a7395616 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

    - + Throwing a dice
    @@ -288,7 +288,7 @@ replicated in C++ if desired.

    - + Surveying customers to find one with a faulty product
    @@ -333,7 +333,7 @@

    - + Basket Ball Shooters
    @@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

    - + Estimating failures
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index e2f17f8b5..5d2d3eec1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

    - + Traditional Tables
    @@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

    - + Standard deviations either side of the Mean
    @@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

    - + Some simple examples
    - + Life of light bulbs
    @@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + How many onions?
    @@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + Packing beef
    @@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

    - + Length of bolts
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index b1533e9bc..d1a96c511 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
    - + Supported C99 Functions
    @@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
    - + Quick Reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index 18e4bb658..3d5e33e91 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

    - + Usage Recomendations

    @@ -295,7 +295,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -391,7 +391,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -520,7 +520,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index 05eaf5955..c66dd3d4c 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
    - + Supported TR1 Functions
    @@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
    - + Quick Reference
    // [5.2.1.1] associated Laguerre polynomials:
    @@ -494,7 +494,7 @@
             for the full template (header only) version of this function.
           

    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index fa588ca4c..8109b3c8d 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
    - + Building a Library (shared, dynamic .dll or static .lib)
    @@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

    - + Building the Examples
    @@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

    - + Building the Tests
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index ccb817c48..39c9bcdc9 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
    - + boost/math
    @@ -73,7 +73,7 @@
    - + boost/libs
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index e639d6c2f..905d93d7b 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
    - + Quick Reference
    @@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

    - + Rationale

    @@ -766,7 +766,7 @@

    - + Finding More Information
    @@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

    - + Domain Errors

    @@ -859,7 +859,7 @@ for more details.

    - + Evaluation at a pole

    @@ -897,7 +897,7 @@ for more details.

    - + Numeric Overflow

    @@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

    - + Numeric Underflow

    @@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

    - + Denormalisation Errors

    @@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

    - + Evaluation Errors

    @@ -1001,7 +1001,7 @@ for more details.

    - + Indeterminate Result Errors

    @@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

    - + Rounding Errors

    @@ -1068,7 +1068,7 @@ for more details.

    - + Errors from typecasts

    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index c49d184f6..9be8e709d 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -28,7 +28,7 @@ New

    - + Boost-1.47
      @@ -45,7 +45,7 @@
    - + Boost-1.46.1
    • @@ -53,7 +53,7 @@ #5113.
    - + Boost-1.46.0
      @@ -68,7 +68,7 @@
    - + Boost-1.45.0
      @@ -85,7 +85,7 @@
    - + Boost-1.44.0
      @@ -99,7 +99,7 @@
    - + Boost-1.41.0
    • @@ -107,7 +107,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -144,7 +144,7 @@
    - + Boost-1.38.0
      @@ -156,14 +156,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -196,7 +196,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -228,7 +228,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -242,7 +242,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -270,7 +270,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -306,7 +306,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index 85947f5b4..c8c1d6035 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

    - + Statistical Distributions
    @@ -56,7 +56,7 @@ tests.

    - + Mathematical Special Functions
    @@ -83,7 +83,7 @@ double.

    - + Implementation Toolkit
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index 1b4c9a74d..37583136c 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

    - + Shortcuts
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index 273e7e05f..d9ed87fd5 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

    - + Usage Recomendations
    @@ -297,7 +297,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -393,7 +393,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -522,7 +522,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index c20e118b7..d2ca09c92 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

    - + Comparison to GSL-1.13 and Cephes
    @@ -344,7 +344,7 @@

    - +INF [1] + +INF [1]

    @@ -423,7 +423,7 @@

    -

    17.89[2]

    +

    17.89[2]

    (4.248e-005s)

    @@ -548,11 +548,11 @@ -

    [1] +

    [1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

    -

    [2] +

    [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 @@ -563,7 +563,7 @@

    - + Comparison to the R and DCDFLIB Statistical Libraries on Windows
    @@ -659,7 +659,7 @@

    -

    67.66[1]

    +

    67.66[1]

    (3.366e-004s)

    @@ -1088,7 +1088,7 @@

    -

    3.60[2]

    +

    3.60[2]

    (5.987e-007s)

    @@ -1317,7 +1317,7 @@

    -

    43.43[3]

    +

    43.43[3]

    (3.732e-004s)

    @@ -1387,7 +1387,7 @@

    -

    393.90[4]

    +

    393.90[4]

    (2.673e-002s)

    @@ -1523,7 +1523,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (4.411e-004s)

    @@ -1809,28 +1809,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. @@ -1839,7 +1839,7 @@


    - + Comparison to the R Statistical Library on Linux
    @@ -1934,7 +1934,7 @@

    -

    30.51[1]

    +

    30.51[1]

    (3.616e-004s)

    @@ -2363,7 +2363,7 @@

    -

    2.20[2]

    +

    2.20[2]

    (3.522e-007s)

    @@ -2592,7 +2592,7 @@

    -

    25.92[3]

    +

    25.92[3]

    (4.407e-004s)

    @@ -2662,7 +2662,7 @@

    -

    144.91[4]

    +

    144.91[4]

    (3.214e-002s)

    @@ -2798,7 +2798,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (5.916e-004s)

    @@ -3084,28 +3084,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index 5c1866c00..a3fc8f4ea 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

    - + real

    @@ -89,7 +89,7 @@ = 68.1584.

    - + integer_round_outwards

    @@ -143,7 +143,7 @@ in each tail.

    - + integer_round_inwards

    @@ -202,7 +202,7 @@ in each tail.

    - + integer_round_down

    @@ -210,7 +210,7 @@ or a lower quantile.

    - + integer_round_up

    @@ -218,7 +218,7 @@ a lower quantile.

    - + integer_round_nearest

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index e3eee41f1..b4910cc38 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

    - + Available Actions When an Error is Raised
    @@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

    - + throw_on_error

    @@ -174,7 +174,7 @@

    - + errno_on_error

    @@ -289,7 +289,7 @@

    - + ignore_error

    @@ -402,7 +402,7 @@

    - + user_error

    @@ -451,7 +451,7 @@ here.

    - + Kinds of Error Raised
    @@ -691,7 +691,7 @@
    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index 869c0fc89..10a29dd43 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index 5d3dcc886..f526aabd2 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

    - + BOOST_MATH_DOMAIN_ERROR_POLICY

    @@ -71,7 +71,7 @@ ignore_error or user_error.

    - + BOOST_MATH_POLE_ERROR_POLICY

    @@ -81,7 +81,7 @@ ignore_error or user_error.

    - + BOOST_MATH_OVERFLOW_ERROR_POLICY

    @@ -91,7 +91,7 @@ ignore_error or user_error.

    - + BOOST_MATH_ROUNDING_ERROR_POLICY

    @@ -101,7 +101,7 @@ ignore_error or user_error.

    - + BOOST_MATH_EVALUATION_ERROR_POLICY

    @@ -111,7 +111,7 @@ ignore_error or user_error.

    - + BOOST_MATH_UNDERFLOW_ERROR_POLICY

    @@ -121,7 +121,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DENORM_ERROR_POLICY

    @@ -131,7 +131,7 @@ ignore_error or user_error.

    - + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

    @@ -142,7 +142,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DIGITS10_POLICY

    @@ -153,7 +153,7 @@ recommended that you change this from the default.

    - + BOOST_MATH_PROMOTE_FLOAT_POLICY

    @@ -165,7 +165,7 @@ off.

    - + BOOST_MATH_PROMOTE_DOUBLE_POLICY

    @@ -177,7 +177,7 @@ off.

    - + BOOST_MATH_DISCRETE_QUANTILE_POLICY

    @@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

    - + BOOST_MATH_ASSERT_UNDEFINED_POLICY

    @@ -201,7 +201,7 @@ whether or not a particular property is well defined.

    - + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

    @@ -210,7 +210,7 @@ Defaults to 1000000.

    - + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

    @@ -219,7 +219,7 @@ Defaults to 200.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index 2a3cd6e91..3c38ca83c 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

    - + Other Rounding Policies are Available
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index 663f546e1..a0ea955e2 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -105,7 +105,7 @@

    - + Testing

    @@ -114,7 +114,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -489,7 +489,7 @@ were found.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index 7bb79f12e..201cac4b1 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

    - + Ordinary Bessel Functions
    @@ -103,7 +103,7 @@ and is known as either a Bessel

    - + Modified Bessel Functions
    @@ -167,7 +167,7 @@ respectively:

    - + Spherical Bessel Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index 622f08faf..a477d5658 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -104,7 +104,7 @@

    - + Testing

    @@ -113,7 +113,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -321,7 +321,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index 13c484c47..3f56f240e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
     
    - + Description

    @@ -92,7 +92,7 @@ for small x:

    - + Testing

    @@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

    - + Accuracy

    @@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index e24a249c9..36874a7f6 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index 382ea3c9b..9311bba95 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index e5cb64e48..05d9d9395 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -231,7 +231,7 @@

    - + Testing

    @@ -241,7 +241,7 @@ this implementation.

    - + Implementation

    @@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

    - Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

    are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



    -

    [1] +

    [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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index 6be2a4120..606f33a7e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

    - + Synopsis

    @@ -100,7 +100,7 @@ }} // namespaces

    - + Description

    @@ -216,7 +216,7 @@

    - + Testing

    @@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

    - + Accuracy

    @@ -393,7 +393,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index d5f2a84c4..2c718f4dd 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

    - + Notation

    All variables are real numbers unless otherwise noted.

    - + Definition

    @@ -245,7 +245,7 @@

    - + Duplication Theorem

    @@ -256,7 +256,7 @@

    - + Carlson's Formulas

    @@ -273,7 +273,7 @@

    - + Numerical Algorithms
    @@ -287,7 +287,7 @@ integrals with satisfactory precisions.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index f047a8402..b45f9dd9a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -202,7 +202,7 @@ slightly over the range [4,6].

    - + Testing

    @@ -217,7 +217,7 @@ check.

    - + Implementation

    @@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



    -

    [2] +

    [2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index a87991e48..b77b682f1 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -220,7 +220,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index 5df1e56a5..4adc8c14e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

    - + Accuracy

    @@ -99,14 +99,14 @@ function for larger arguments.

    - + Testing

    The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index 96eeae1da..772d7b189 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

    - + Accuracy

    @@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

    - + Testing

    The spot tests for the double factorial use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index 5b51f4d3c..6a66ae0c7 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    @@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

    - + Accuracy

    @@ -166,7 +166,7 @@ will be the same as for tgamma.

    - + Testing

    @@ -175,7 +175,7 @@ function handle those cases already.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index 09a7fbe82..ac9c0f7d9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

    - + Accuracy

    @@ -79,14 +79,14 @@ function.

    - + Testing

    The spot tests for the falling factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index 9e10da0f4..4c47f2ac3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

    - + Accuracy

    @@ -83,14 +83,14 @@ function.

    - + Testing

    The spot tests for the rising factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index d4c52e812..3da53b246 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -85,7 +85,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index 3103a0abe..968b72d8c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -80,7 +80,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index e5606a9ef..81bb2a776 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index 6e0e0d455..2eabdd079 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

    - + Accuracy

    @@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index 8dea3c7b5..4121562e8 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

    - + Synopsis

    @@ -49,7 +49,7 @@ }}

    - + Rationale and Usage
    @@ -91,7 +91,7 @@ Only 3 different products were actually computed.

    - + Return Type

    @@ -112,7 +112,7 @@

    - + Policies

    @@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Error Handling
    @@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
    - + Acknowledgements

    @@ -238,7 +238,7 @@ improving the implementation.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index dc10c683b..4efd0d19e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

    - + Accuracy

    @@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index 08b3192a1..81ac49304 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index 97329b763..519f3c993 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

    - + Accuracy

    @@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index 9a53a86b8..4dee2adec 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

    - + Accuracy

    Should have approximately 2-3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index d1646bace..fff52e8b0 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

    - + Accuracy

    @@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index e52c41343..7bfe7355f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Almost identical to the incomplete beta function ibeta.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index ffe8b78c6..f1c694257 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

    - + Accuracy

    @@ -239,7 +239,7 @@ very small.

    - + Testing

    @@ -248,7 +248,7 @@ at 1000-bit precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index 6550eaee9..f38228562 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -158,7 +158,7 @@

    - + Accuracy

    @@ -865,7 +865,7 @@


    - + Testing

    @@ -883,7 +883,7 @@ have test data that is fully independent of the code.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index 9e3dd7a13..1a9471c6d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

    - + Description

    @@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -300,7 +300,7 @@ or 1.

    - + Testing

    @@ -324,7 +324,7 @@

    - + Implementation of ibeta_inv and ibetac_inv
    @@ -492,7 +492,7 @@ rapidly converges on the true value.

    - + Implementation of inverses on the a and b parameters
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index 29ce95ad4..14abb47ad 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
    - + Synopsis

    @@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -100,7 +100,7 @@
               
             

    - + Accuracy

    @@ -525,7 +525,7 @@

    - + Testing

    @@ -540,7 +540,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index 52cd44270..82a7cf3ba 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

    - + Synopsis

    @@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -98,7 +98,7 @@
               
             

    - + Accuracy

    @@ -108,7 +108,7 @@ error functions.

    - + Testing

    @@ -131,7 +131,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index 51aedf2d7..b09969772 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -77,7 +77,7 @@ T otherwise.

    - + Accuracy

    @@ -265,7 +265,7 @@ absolute error will remain very low.

    - + Testing

    @@ -275,7 +275,7 @@ see below).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index 5bd619a0a..49863b020 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -75,7 +75,7 @@ otherwise the return type is simply T1.

    - + Accuracy

    @@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index 0fac3c0cd..c94ab8965 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

    - + Description
    template <class T1, class T2> 
    @@ -107,7 +107,7 @@
               
             

    - + Accuracy

    @@ -317,7 +317,7 @@

    - + Testing

    @@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index 112f1aa8d..41348e9c4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -155,7 +155,7 @@

    - + Accuracy

    @@ -823,7 +823,7 @@

    - + Testing

    @@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

    - + Implementation

    @@ -1008,7 +1008,7 @@ by Temme (see references below).

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index 0dd0feb63..732f47ace 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -168,7 +168,7 @@ 0.

    - + Accuracy

    @@ -182,7 +182,7 @@ functions.

    - + Testing

    @@ -206,7 +206,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index 5f7f6e22c..d45dd9f3e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description

    @@ -93,7 +93,7 @@ T otherwise.

    - + Accuracy

    @@ -344,7 +344,7 @@

    - + Testing

    @@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index 9f7c9b543..a4205c041 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    template <class T>
    @@ -119,7 +119,7 @@
               it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
             

    - + Accuracy

    @@ -374,7 +374,7 @@

    - + Testing

    @@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index 4cb68c8d0..27b2d25f3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

    - + Synopsis

    @@ -51,7 +51,7 @@ }} // namespaces

    - + Description

    @@ -131,7 +131,7 @@

    - + Accuracy

    @@ -248,7 +248,7 @@ is very close to a root.

    - + Testing

    @@ -258,7 +258,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index 7196931fe..f11a3c6ee 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -62,7 +62,7 @@ }} // namespaces

    - + Description

    @@ -205,7 +205,7 @@

    - + Accuracy

    @@ -422,7 +422,7 @@ is very close to a root.

    - + Testing

    @@ -432,7 +432,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index 426622811..d1247e8e8 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -295,7 +295,7 @@
     
     
     
    - + Accuracy

    @@ -676,7 +676,7 @@ given here.

    - + Testing

    @@ -686,7 +686,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index 95244ee65..ec8428fc7 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

    - + Synopsis

    @@ -60,7 +60,7 @@ }} // namespaces

    - + Description

    @@ -150,7 +150,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

    - + Testing

    @@ -281,7 +281,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index d216e6724..9e25bcdab 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

    - + Synopsis

    @@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -80,7 +80,7 @@
               
             

    - + Accuracy

    @@ -229,7 +229,7 @@

    - + Testing

    @@ -244,7 +244,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/status/credits.html b/doc/sf_and_dist/html/math_toolkit/status/credits.html index 5a1795dc7..b749b1996 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/credits.html +++ b/doc/sf_and_dist/html/math_toolkit/status/credits.html @@ -7,6 +7,7 @@ + @@ -19,7 +20,7 @@


    -PrevUpHome +PrevUpHomeNext

    @@ -124,7 +125,7 @@
    -PrevUpHome +PrevUpHomeNext
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index 370a189ac..4f058f413 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -27,7 +27,7 @@ History and What's New

    - + Boost-1.47
      @@ -44,7 +44,7 @@
    - + Boost-1.46.1
    • @@ -52,7 +52,7 @@ #5113.
    - + Boost-1.46.0
      @@ -67,7 +67,7 @@
    - + Boost-1.45.0
      @@ -84,7 +84,7 @@
    - + Boost-1.44.0
      @@ -98,7 +98,7 @@
    - + Boost-1.41.0
    • @@ -106,7 +106,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -143,7 +143,7 @@
    - + Boost-1.38.0
      @@ -155,14 +155,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -195,7 +195,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -227,7 +227,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -241,7 +241,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -269,7 +269,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -305,7 +305,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index 0fd7d0f1f..5cafb1a2f 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

    - + tgamma
    • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
    - + Incomplete Beta
    • @@ -56,7 +56,7 @@ b (medium priority).
    - + Inverse Gamma
    • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
    - + Polynomials
    • @@ -74,7 +74,7 @@ not (Low Priority).
    - + Elliptic Integrals
      @@ -127,7 +127,7 @@
    - + Inverse Hyperbolic Functions
    @@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
    - + Statistical distributions
    @@ -146,7 +146,7 @@ for very large degrees of freedom?
    - + Feature Requests

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index ef4cd7278..1a9b0a700 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -78,7 +78,7 @@ }}} // namespaces

    - + Description

    @@ -178,7 +178,7 @@ a continued fraction for convergence.

    - + Implementation

    @@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index 786d314d6..2824095e2 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

    - + Synopsis

    @@ -59,7 +59,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index 3e7308c33..2eb132970 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

    - + synopsis

    @@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

    - + Description

    @@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index 1b7710e2e..12898f9b3 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

    - + synopsis

    @@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

    - + Description

    @@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index ed7264d50..a0275ad24 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

    - + Synopsis

    @@ -62,7 +62,7 @@ }}} // namespaces

    - + Description

    @@ -206,7 +206,7 @@

    - + Newton Raphson Method
    @@ -224,7 +224,7 @@ iteration.

    - + Halley's Method
    @@ -246,7 +246,7 @@ iteration.

    - + Schroeder's Method
    @@ -270,7 +270,7 @@ iteration.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index dd83229da..b6f63fa9c 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

    - + Synopsis

    @@ -144,7 +144,7 @@ }}} // namespaces

    - + Description

    @@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

    - + Bisection
    template <class F, class T, class Tol>
    @@ -280,7 +280,7 @@
               tol was satisfied.
             

    - + Bracket and solve
    @@ -388,7 +388,7 @@ was satisfied.

    - + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
    @@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index ab9a9a11c..edee76367 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -70,7 +70,7 @@ }}} // namespaces

    - + Description

    @@ -127,7 +127,7 @@ summation in this way.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index 3078163f3..8efb6a282 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

    - + Synopsis

    @@ -38,7 +38,7 @@

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index 4c8f67963..0db44ed43 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

    - + Synopsis

    @@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

    - + Description
    template <class T>
    @@ -157,7 +157,7 @@
               is mainly a debugging/development aid (and a good place for a breakpoint).
             

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index 663bcbf3d..014f2a047 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

    - + Synopsis

    @@ -103,7 +103,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index a26a00986..ec50d2e6d 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

    - + Synopsis
    namespace boost{ namespace math{ namespace tools{
    @@ -147,7 +147,7 @@
     }}} // namespaces
     
    - + Description

    @@ -177,7 +177,7 @@

    - + Example 1: Output Data for Graph Plotting
    @@ -211,7 +211,7 @@

    - + Example 2: Creating Test Data
    @@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

    - + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
    @@ -482,7 +482,7 @@ of a and z.

    - + reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index 7df2cdb98..2d9f9a9dd 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@

    - + Real concept

    @@ -84,7 +84,7 @@ declaration.

    - + Testing the real concept

    @@ -130,7 +130,7 @@ double, also tests real_concept.

    - + Distribution Concept

    @@ -166,7 +166,7 @@ class for distribution types.

    - + Testing the distribution concept

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index 8ac41a513..a2abc0f08 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

    - + Basic Arithmetic Requirements
    @@ -1035,7 +1035,7 @@
    - + Standard Library Support Requirements
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html index 23c824440..caaa2530b 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html @@ -35,7 +35,7 @@
    Design Rationale
    - + Synopsis
    namespace boost{ namespace math
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    new file mode 100644
    index 000000000..1fc37fb53
    --- /dev/null
    +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    @@ -0,0 +1,249 @@
    +
    +
    +
    +Examples
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Simple + example with std::stringstreams +
    +

    + +

    +
    locale old_locale;
    +locale tmp_locale(old_locale, new nonfinite_num_put<char>);
    +locale new_locale(tmp_locale, new nonfinite_num_get<char>);
    +
    +

    +

    +

    + +

    +
    stringstream ss;
    +ss.imbue(new_locale);
    +double inf = numeric_limits<double>::infinity();
    +ss << inf; // Write out.
    +assert(ss.str() == "inf");
    +double r;
    +ss >> r; // Read back in.
    +assert(inf == r); // Confirms that the double values really are identical.
    +
    +cout << "infinity output was " << ss.str() << endl;
    +cout << "infinity input was " << r << endl;
    +// But the string representation of r displayed will be the native type
    +// because, when it was constructed, cout had NOT been imbued
    +// with the new locale containing the nonfinite_numput facet.
    +// So the cout output will be "1.#INF on MS platforms
    +// and may be "inf" or other string representation on other platforms.
    +
    +
    +

    +

    +
    + + Use + with lexical_cast +
    +

    + Without using a new locale that contains the nonfinite facets, lexical_cast is not portable (and often + fails) if nonfinite values are found. +

    +

    + +

    +
    locale old_locale;
    +locale tmp_locale(old_locale, new nonfinite_num_put<char>);
    +locale new_locale(tmp_locale, new nonfinite_num_get<char>);
    +
    +

    +

    +

    + Although other examples imbue individual streams with the new locale, for + the streams constructed inside lexical_cast, it is 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]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 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 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;
    +
    +
    + + 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. +

    +
    + + Other + examples +
    +

    + 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 nonfinite_facet_sstream.cpp + for this example of use with std::stringstreams. +

    +

    + 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. +

    +

    + 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 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 +

    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html new file mode 100644 index 000000000..ebcb915a7 --- /dev/null +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html @@ -0,0 +1,371 @@ + + + +Introduction + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + 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!
    +
    +
    + + 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. +

    +

    + +

    +
    locale old_locale;
    +locale tmp_locale(old_locale, new nonfinite_num_put<char>);
    +locale new_locale(tmp_locale, new nonfinite_num_get<char>);
    +
    +

    +

    +
    + + + + + +
    [Tip]Tip

    + To add two facets, nonfinite_num_put + and nonfinite_num_get, + you have to add one at a time, using a temporary locale. +

    +

    + +

    +
    stringstream ss;
    +ss.imbue(new_locale);
    +double inf = numeric_limits<double>::infinity();
    +ss << inf; // Write out.
    +assert(ss.str() == "inf");
    +double r;
    +ss >> r; // Read back in.
    +assert(inf == r); // Confirms that the double values really are identical.
    +
    +cout << "infinity output was " << ss.str() << endl;
    +cout << "infinity input was " << r << endl;
    +// But the string representation of r displayed will be the native type
    +// because, when it was constructed, cout had NOT been imbued
    +// with the new locale containing the nonfinite_numput facet.
    +// So the cout output will be "1.#INF on MS platforms
    +// and may be "inf" or other string representation on other platforms.
    +
    +
    +

    +

    +
    + + C++0X + standard for output of infinity and NaN +
    +

    + 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. +

    +
    + + C99 + standard for output of infinity and NaN +
    +

    + The 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 50. 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. +

    +
    + + 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 + IEEE + 754-2008. +

    +

    + Floating-point values with layout s111 1111 1axx + 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. 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 C99 + format, and output as 1.#QNAN + by Microsoft compilers. +

    +
    + + + + + +
    [Note]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]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 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]Warning

    + This implementation does not (yet) provide output of, or access to, the + NaN payload. +

    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/portability.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/portability.html new file mode 100644 index 000000000..6e7cd00aa --- /dev/null +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/portability.html @@ -0,0 +1,50 @@ + + + +Portability + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +

    + 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. +

    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/rationale.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/rationale.html new file mode 100644 index 000000000..3178c0bc6 --- /dev/null +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/rationale.html @@ -0,0 +1,67 @@ + + + +Design Rationale + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
      +
    • + 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. +
    • +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html new file mode 100644 index 000000000..b76e22acb --- /dev/null +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html @@ -0,0 +1,448 @@ + + + +Reference + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + 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: +

    +
    ++++ + + + + + + + + + + + + + + + + + + + + + + +
    +

    + 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. +

    +
    + + 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: +

    +
    ++++ + + + + + + + + + + + + + + + + + + + + + + +
    +

    + 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. +

    +
    + + 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. +

    +
    + + 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: +

    +
    ++++ + + + + + + + + + + + + + + + + + + + + + + +
    +

    + 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.. +

    +

    + 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. +

    +
    + + signed_zero +
    +

    + If the signed_zero flag + is used with nonfinite_num_put, + then the facet will 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. +

    +
    + + 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.) +

    +
    + + trap_nan +
    +

    + Same as trap_infinity, + but positive and negative NaN are trapped instead. +

    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index 7bad5d64f..3ac052d46 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -28,7 +28,7 @@ Infinities and NaNs
    - + Synopsis
    #define FP_ZERO        /* implementation specific value */
    @@ -58,7 +58,7 @@
             to use these functions.
           

    - + Description

    @@ -217,7 +217,7 @@ infinite, NaN, or denormalised).

    - + Floating-point format
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index f141007e0..952e27bd1 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

    - + Synopsis

    @@ -50,7 +50,7 @@ }} // namespaces

    - + Description - float_advance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index 4433d4f51..073798cb0 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

    - + Synopsis

    @@ -52,7 +52,7 @@ }} // namespaces

    - + Description - float_distance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index 7b765967f..5005db27e 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_next
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index ec2ab2979..7b1bc5482 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_prior
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index 073456408..fd3c2c5c1 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - nextafter
    @@ -76,7 +76,7 @@ returns an overflow_error.

    - + Examples - nextafter
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index 63d128450..af9fb09c1 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -28,7 +28,7 @@ Functions
    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description
    template<class T> 
    @@ -109,7 +109,7 @@
             may be the only portable way to ensure that the sign bit is changed.
           

    - + Sign bits

    @@ -130,7 +130,7 @@ it may be necessary to explicitly specialize then for UDT type T.

    - + Examples
    signbit(3.5) is zero (or false)
    @@ -143,7 +143,7 @@
     changesign(-1.8) is 1.8
     
    - + Portability

    diff --git a/example/nonfinite_num_facet.cpp b/example/nonfinite_num_facet.cpp index 19c2b6f12..c86d3549a 100644 --- a/example/nonfinite_num_facet.cpp +++ b/example/nonfinite_num_facet.cpp @@ -34,6 +34,7 @@ C99 standard output of infinity and NaN. */ #include +#include using std::cout; using std::endl; @@ -50,7 +51,6 @@ static const char sep = ','; // Separator of bracketed float and double values. // all potentially significant decimal digits for the floating-point types. #ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST - cout << "BOOST_NO_NUMERIC_LIMITS_LOWEST is defined, so no max_digits10 available." << endl; std::streamsize max_digits10_float = 2 + std::numeric_limits::digits * 30103UL / 100000UL; std::streamsize max_digits10_double = 2 + std::numeric_limits::digits * 30103UL / 100000UL; #else @@ -170,6 +170,10 @@ int main () { std::cout << "nonfinite_num_facet simple example." << std::endl; +#ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST + cout << "BOOST_NO_NUMERIC_LIMITS_LOWEST is defined, so no max_digits10 available either:" + "\n we'll have to calculate our own version." << endl; +#endif std::cout << "std::numeric_limits::max_digits10 is " << max_digits10_float << endl; std::cout << "std::numeric_limits::max_digits10 is " << max_digits10_double << endl; diff --git a/example/nonfinite_num_facet_serialization.cpp b/example/nonfinite_num_facet_serialization.cpp index 4a31883dc..8977ca55b 100644 --- a/example/nonfinite_num_facet_serialization.cpp +++ b/example/nonfinite_num_facet_serialization.cpp @@ -45,7 +45,6 @@ static const char sep = ','; // Separator of bracketed float and double values. // all potentially significant decimal digits for the floating-point types. #ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST - cout << "BOOST_NO_NUMERIC_LIMITS_LOWEST is defined, so no max_digits10 available." << endl; std::streamsize max_digits10_float = 2 + std::numeric_limits::digits * 30103UL / 100000UL; std::streamsize max_digits10_double = 2 + std::numeric_limits::digits * 30103UL / 100000UL; #else @@ -103,7 +102,7 @@ struct foo // Boost serialization : template - void serialize (Archive & ar, int version) + void serialize (Archive & ar, int /*version*/) { ar & BOOST_SERIALIZATION_NVP (fvalue); ar & BOOST_SERIALIZATION_NVP (dvalue); @@ -174,7 +173,10 @@ int main (void) std::clog << std::endl << "Nonfinite_serialization.cpp' example program." << std::endl; - +#ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST + std::cout << "BOOST_NO_NUMERIC_LIMITS_LOWEST is defined, so no max_digits10 available either," + "using our own version instead." << std::endl; +#endif std::cout << "std::numeric_limits::max_digits10 is " << max_digits10_float << std::endl; std::cout << "std::numeric_limits::max_digits10 is " << max_digits10_double << std::endl; From 82659076c9141796f11313773a209c3cdfb1f6c3 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Thu, 21 Apr 2011 17:49:40 +0000 Subject: [PATCH 56/82] Refinements to examples to avoid temp locales [SVN r71402] --- example/lexical_cast_nonfinite_facets.cpp | 17 +++++++++++------ example/nonfinite_legacy.cpp | 15 +++++++++------ example/nonfinite_loopback_ok.cpp | 16 +++++++++++----- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/example/lexical_cast_nonfinite_facets.cpp b/example/lexical_cast_nonfinite_facets.cpp index d9e0cf49a..71360915d 100644 --- a/example/lexical_cast_nonfinite_facets.cpp +++ b/example/lexical_cast_nonfinite_facets.cpp @@ -66,15 +66,20 @@ int main () std::cout << "finite_num_facet with lexical_cast example." << std::endl; // Example of using non_finite num_put and num_get facets with lexical_cast. - locale old_locale; - locale tmp_locale(old_locale, new nonfinite_num_put); - // Create a new temporary output locale, and add the output nonfinite_num_put facet. + //locale old_locale; + //locale tmp_locale(old_locale, new nonfinite_num_put); + //// Create a new temporary output locale, and add the output nonfinite_num_put facet. - locale new_locale(tmp_locale, new nonfinite_num_get); + //locale new_locale(tmp_locale, new nonfinite_num_get); // Create a new output locale (from the tmp locale), and add the input nonfinite_num_get facet. - // Note that is necessary to do add get and put facets in two steps. - + // Note that you can only add facets one at a time, + // unless you chain thus: + + std::locale new_locale(std::locale(std::locale(), + new boost::math::nonfinite_num_put), + new boost::math::nonfinite_num_get); + locale::global(new_locale); // Newly constructed streams // (including those streams inside lexical_cast) // now use new_locale with nonfinite facets. diff --git a/example/nonfinite_legacy.cpp b/example/nonfinite_legacy.cpp index fdfc4e212..11b84e6a2 100644 --- a/example/nonfinite_legacy.cpp +++ b/example/nonfinite_legacy.cpp @@ -28,6 +28,11 @@ using boost::math::legacy; #include using std::cout; using std::endl; + +#include +using std::setfill; +using std::setw; + #include using std::locale; @@ -40,12 +45,10 @@ using std::numeric_limits; int main() { - - locale old_locale; - locale tmp_locale(old_locale, new nonfinite_num_put(legacy)); - locale new_locale(tmp_locale, new nonfinite_num_get(legacy)); - // Note that to add two facets, nonfinite_num_put and nonfinite_num_get, - // you have to add one at a time, using a temporary locale. + // Create a new locale with both the nonfinite facets. + std::locale new_locale(std::locale(std::locale(), + new boost::math::nonfinite_num_put), + new boost::math::nonfinite_num_get); { stringstream ss; diff --git a/example/nonfinite_loopback_ok.cpp b/example/nonfinite_loopback_ok.cpp index 6b8ac6d44..378140f92 100644 --- a/example/nonfinite_loopback_ok.cpp +++ b/example/nonfinite_loopback_ok.cpp @@ -40,14 +40,20 @@ using std::numeric_limits; int main() { - locale old_locale; // Current global locale. + //locale old_locale; // Current global locale. // Create tmp_locale and store the output nonfinite_num_put facet in it. - locale tmp_locale(old_locale, new nonfinite_num_put); + //locale tmp_locale(old_locale, new nonfinite_num_put); // Create new_locale and store the input nonfinite_num_get facet in it. - locale new_locale(tmp_locale, new nonfinite_num_get); - // Seems necessary to add one facet at a time, hence need a tmp_locale. + //locale new_locale(tmp_locale, new nonfinite_num_get); + // Can only add one facet at a time, hence need a tmp_locale. + // Unless we write: - stringstream ss; // Both input and output. + std::locale new_locale(std::locale(std::locale(std::locale(), + new boost::math::nonfinite_num_put), + new boost::math::nonfinite_num_get)); + + stringstream ss; // Both input and output, so need both get and put facets. + ss.imbue(new_locale); double inf = numeric_limits::infinity(); From 8b7ef22cc9a1704c01582606b4d1087f9cd8c9e0 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Thu, 21 Apr 2011 17:53:12 +0000 Subject: [PATCH 57/82] Added avoiding temp locales tip and better explanation of one# [SVN r71403] --- doc/sf_and_dist/fp_facets.qbk | 20 ++++--- doc/sf_and_dist/html/index.html | 13 ++--- .../backgrounders/implementation.html | 30 +++++------ .../math_toolkit/backgrounders/lanczos.html | 10 ++-- .../html/math_toolkit/backgrounders/refs.html | 6 +-- .../backgrounders/relative_error.html | 2 +- .../math_toolkit/backgrounders/remez.html | 16 +++--- doc/sf_and_dist/html/math_toolkit/dist.html | 2 +- .../dist/dist_ref/dist_algorithms.html | 6 +-- .../dist/dist_ref/dists/bernoulli_dist.html | 10 ++-- .../dist/dist_ref/dists/beta_dist.html | 20 +++---- .../dist/dist_ref/dists/binomial_dist.html | 24 ++++----- .../dist/dist_ref/dists/cauchy_dist.html | 10 ++-- .../dist/dist_ref/dists/chi_squared_dist.html | 12 ++--- .../dist/dist_ref/dists/exp_dist.html | 10 ++-- .../dist/dist_ref/dists/extreme_dist.html | 8 +-- .../dist/dist_ref/dists/f_dist.html | 10 ++-- .../dist/dist_ref/dists/gamma_dist.html | 8 +-- .../dist/dist_ref/dists/geometric_dist.html | 22 ++++---- .../dist_ref/dists/hypergeometric_dist.html | 10 ++-- .../dists/inverse_chi_squared_dist.html | 10 ++-- .../dist_ref/dists/inverse_gamma_dist.html | 8 +-- .../dist_ref/dists/inverse_gaussian_dist.html | 10 ++-- .../dist/dist_ref/dists/laplace_dist.html | 10 ++-- .../dist/dist_ref/dists/logistic_dist.html | 8 +-- .../dist/dist_ref/dists/lognormal_dist.html | 8 +-- .../dist/dist_ref/dists/nc_beta_dist.html | 10 ++-- .../dist_ref/dists/nc_chi_squared_dist.html | 12 ++--- .../dist/dist_ref/dists/nc_f_dist.html | 10 ++-- .../dist/dist_ref/dists/nc_t_dist.html | 10 ++-- .../dists/negative_binomial_dist.html | 22 ++++---- .../dist/dist_ref/dists/normal_dist.html | 8 +-- .../dist/dist_ref/dists/pareto.html | 12 ++--- .../dist/dist_ref/dists/poisson_dist.html | 8 +-- .../dist/dist_ref/dists/rayleigh.html | 12 ++--- .../dist/dist_ref/dists/students_t_dist.html | 10 ++-- .../dist/dist_ref/dists/triangular_dist.html | 10 ++-- .../dist/dist_ref/dists/uniform_dist.html | 10 ++-- .../dist/dist_ref/dists/weibull_dist.html | 12 ++--- .../html/math_toolkit/dist/dist_ref/nmp.html | 54 +++++++++---------- .../html/math_toolkit/dist/future.html | 8 +-- .../html/math_toolkit/dist/stat_tut.html | 2 +- .../math_toolkit/dist/stat_tut/overview.html | 2 +- .../dist/stat_tut/overview/complements.html | 4 +- .../weg/binom_eg/binomial_quiz_example.html | 4 +- .../stat_tut/weg/cs_eg/chi_sq_intervals.html | 2 +- .../dist/stat_tut/weg/dist_construct_eg.html | 2 +- .../weg/find_eg/find_location_eg.html | 2 +- .../weg/find_eg/find_mean_and_sd_eg.html | 6 +-- .../stat_tut/weg/find_eg/find_scale_eg.html | 2 +- .../dist/stat_tut/weg/geometric_eg.html | 8 +-- .../weg/normal_example/normal_misc.html | 14 ++--- .../html/math_toolkit/extern_c/c99.html | 4 +- .../html/math_toolkit/extern_c/tr1.html | 10 ++-- .../html/math_toolkit/extern_c/tr1_ref.html | 6 +-- .../math_toolkit/main_overview/building.html | 6 +-- .../main_overview/directories.html | 4 +- .../main_overview/error_handling.html | 24 ++++----- .../math_toolkit/main_overview/history1.html | 30 +++++------ .../math_toolkit/main_overview/intro.html | 6 +-- .../main_overview/navigation.html | 2 +- .../html/math_toolkit/main_overview/tr1.html | 10 ++-- .../html/math_toolkit/perf/comparisons.html | 54 +++++++++---------- .../policy/pol_ref/discrete_quant_ref.html | 12 ++--- .../pol_ref/error_handling_policies.html | 14 ++--- .../policy/pol_ref/internal_promotion.html | 2 +- .../policy/pol_ref/policy_defaults.html | 32 +++++------ .../pol_tutorial/understand_dis_quant.html | 2 +- .../math_toolkit/special/bessel/bessel.html | 10 ++-- .../special/bessel/bessel_over.html | 6 +-- .../math_toolkit/special/bessel/mbessel.html | 10 ++-- .../special/bessel/sph_bessel.html | 10 ++-- .../math_toolkit/special/ellint/ellint_1.html | 10 ++-- .../math_toolkit/special/ellint/ellint_2.html | 10 ++-- .../math_toolkit/special/ellint/ellint_3.html | 14 ++--- .../special/ellint/ellint_carlson.html | 10 ++-- .../special/ellint/ellint_intro.html | 12 ++--- .../math_toolkit/special/expint/expint_i.html | 14 ++--- .../math_toolkit/special/expint/expint_n.html | 10 ++-- .../special/factorials/sf_binomial.html | 6 +-- .../factorials/sf_double_factorial.html | 6 +-- .../special/factorials/sf_factorial.html | 10 ++-- .../factorials/sf_falling_factorial.html | 6 +-- .../factorials/sf_rising_factorial.html | 6 +-- .../math_toolkit/special/inv_hyper/acosh.html | 6 +-- .../math_toolkit/special/inv_hyper/asinh.html | 6 +-- .../math_toolkit/special/inv_hyper/atanh.html | 6 +-- .../math_toolkit/special/powers/cbrt.html | 4 +- .../math_toolkit/special/powers/ct_pow.html | 14 ++--- .../math_toolkit/special/powers/expm1.html | 4 +- .../math_toolkit/special/powers/hypot.html | 2 +- .../math_toolkit/special/powers/log1p.html | 4 +- .../math_toolkit/special/powers/powm1.html | 4 +- .../math_toolkit/special/powers/sqrt1pm1.html | 4 +- .../special/sf_beta/beta_derivative.html | 8 +-- .../special/sf_beta/beta_function.html | 10 ++-- .../special/sf_beta/ibeta_function.html | 10 ++-- .../special/sf_beta/ibeta_inv_function.html | 10 ++-- .../special/sf_erf/error_function.html | 10 ++-- .../special/sf_erf/error_inv.html | 10 ++-- .../special/sf_gamma/digamma.html | 10 ++-- .../special/sf_gamma/gamma_derivatives.html | 8 +-- .../special/sf_gamma/gamma_ratios.html | 8 +-- .../math_toolkit/special/sf_gamma/igamma.html | 12 ++--- .../special/sf_gamma/igamma_inv.html | 10 ++-- .../math_toolkit/special/sf_gamma/lgamma.html | 10 ++-- .../math_toolkit/special/sf_gamma/tgamma.html | 10 ++-- .../math_toolkit/special/sf_poly/hermite.html | 10 ++-- .../special/sf_poly/laguerre.html | 10 ++-- .../special/sf_poly/legendre.html | 10 ++-- .../special/sf_poly/sph_harm.html | 10 ++-- .../html/math_toolkit/special/zetas/zeta.html | 10 ++-- .../html/math_toolkit/status/credits.html | 5 +- .../html/math_toolkit/status/history1.html | 30 +++++------ .../html/math_toolkit/status/issues.html | 16 +++--- .../math_toolkit/toolkit/internals1/cf.html | 8 +-- .../toolkit/internals1/constants.html | 4 +- .../toolkit/internals1/minima.html | 6 +-- .../toolkit/internals1/rational.html | 6 +-- .../toolkit/internals1/roots.html | 12 ++--- .../toolkit/internals1/roots2.html | 12 ++--- .../toolkit/internals1/series_evaluation.html | 6 +-- .../toolkit/internals1/tuples.html | 4 +- .../toolkit/internals2/error_test.html | 6 +-- .../toolkit/internals2/polynomials.html | 4 +- .../toolkit/internals2/test_data.html | 12 ++--- .../math_toolkit/using_udt/archetypes.html | 8 +-- .../html/math_toolkit/using_udt/concepts.html | 4 +- .../html/math_toolkit/utils/fp_facets.html | 2 +- .../utils/fp_facets/examples.html | 8 +-- .../math_toolkit/utils/fp_facets/intro.html | 27 +++++++--- .../utils/fp_facets/reference.html | 43 ++++++++++----- .../html/math_toolkit/utils/fpclass.html | 6 +-- .../utils/next_float/float_advance.html | 4 +- .../utils/next_float/float_distance.html | 4 +- .../utils/next_float/float_next.html | 4 +- .../utils/next_float/float_prior.html | 4 +- .../utils/next_float/nextafter.html | 6 +-- .../math_toolkit/utils/sign_functions.html | 10 ++-- 139 files changed, 724 insertions(+), 694 deletions(-) diff --git a/doc/sf_and_dist/fp_facets.qbk b/doc/sf_and_dist/fp_facets.qbk index 5c4aef1a1..9792c943b 100644 --- a/doc/sf_and_dist/fp_facets.qbk +++ b/doc/sf_and_dist/fp_facets.qbk @@ -71,7 +71,14 @@ The following test succeeds with MSVC. [nonfinite_facets_sstream_1] [tip To add two facets, `nonfinite_num_put` and `nonfinite_num_get`, -you have to add one at a time, using a temporary locale.] +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), new boost::math::nonfinite_num_get));` + +and, for example, use it to imbue an input and output stringstream. +] [nonfinite_facets_sstream_2] @@ -311,11 +318,12 @@ then the facet will recognize all the following string representations of `infin [[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.`. +* 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, diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html index 4c2f679c1..11d191004 100644 --- a/doc/sf_and_dist/html/index.html +++ b/doc/sf_and_dist/html/index.html @@ -53,7 +53,7 @@ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and Thijs van den Berg

    @@ -509,9 +504,11 @@ friendly PDF format, and as a CD ISBN 0-9504833-2-X 978-0-9504833-2-0, Classification 519.2-dc22.

    +

    +

    - +

    Last revised: April 21, 2011 at 10:10:03 GMT

    Last revised: April 21, 2011 at 17:45:19 GMT


    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index a43cabefa..31b18b6cd 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

    - + Implemention philosophy
    @@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

    - + Accuracy and Representation of Test Values
    @@ -130,7 +130,7 @@ binary value).

    - + Tolerance of Tests
    @@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

    - + Handling Unsuitable Arguments
    @@ -224,7 +224,7 @@

    - + Handling of Functions that are Not Mathematically defined
    @@ -258,7 +258,7 @@

    - + Median of distributions
    @@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

    - + Handling of Floating-Point Infinity
    @@ -337,7 +337,7 @@ handling policies.

    - + Scale, Shape and Location
    @@ -364,7 +364,7 @@ functions, they can be added if required.

    - + Notes on Implementation of Specific Functions & Distributions
    @@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
    - + Rational Approximations Used
    @@ -419,7 +419,7 @@ to the "true" minimax solution.

    - + Representation of Mathematical Constants
    @@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
    - + Thread safety
    @@ -505,7 +505,7 @@ the right thing here at some point.

    - + Sources of Test Data
    @@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

    - + Creating and Managing the Equations
    @@ -731,7 +731,7 @@ done HTML: this needs further investigation.

    - + Producing Graphs
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index ce776272a..2090e5b22 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
    - + Motivation

    @@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

    - + The Approximation
    @@ -161,7 +161,7 @@

    - + Computing the Coefficients
    @@ -205,7 +205,7 @@ multiplied by F as the last step.

    - + Choosing the Right Parameters
    @@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index e4c924e8c..be4a79b39 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
    - + General references
    @@ -98,7 +98,7 @@ Library (version 2), Walter E. Brown

    - + Calculators

    @@ -120,7 +120,7 @@ Binomial Probability Distribution Calculator.

    - + Other Libraries

    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index 8967d100a..33d883df3 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

    - + The Impossibility of Zero Error
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index 9bd27264e..d85472e29 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

    - + The Remez Method
    @@ -174,7 +174,7 @@
    - + Remez Step 1
    @@ -205,7 +205,7 @@ to 5.6x10-4.

    - + Remez Step 2
    @@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

    - + Iteration

    @@ -250,7 +250,7 @@ remez-4

    - + Rational Approximations
    @@ -299,7 +299,7 @@ number of terms overall.

    - + Practical Considerations
    @@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

    - + Remez Method Checklist
    @@ -461,7 +461,7 @@
    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist.html b/doc/sf_and_dist/html/math_toolkit/dist.html index a97c7ccd1..b60ef2dd8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist.html @@ -38,7 +38,7 @@ are Objects

    Generic operations common to all distributions are non-member functions
    -
    Complements +
    Complements are supported too - and when to use them
    Parameters can be calculated
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index 03c3328f4..d5860daa4 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms
    - + Finding the Location and Scale for Normal and similar distributions
    @@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
    - + find_location function
    @@ -80,7 +80,7 @@ }} // namespaces
    - + find_scale function
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index 4cf8e1e5a..1b5f007c1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

    - + Member Functions
    @@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ exception and make an error message available.

    - + Accuracy

    @@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

    - + Implementation

    @@ -327,7 +327,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index a6feccef6..491b29d89 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

      - + Member Functions
      - + Constructor
      beta_distribution(RealType alpha, RealType beta);
      @@ -164,7 +164,7 @@
                   yellow in the graph above).
                 

      - + Parameter Accessors
      @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
      - + Parameter Estimators
      @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

      - + Non-member Accessor Functions
      @@ -263,7 +263,7 @@ Mathworld.

      - + Applications

      @@ -276,7 +276,7 @@ statistical inference.

      - + Related distributions
      @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

      - + Accuracy

      @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

      - + Implementation

      @@ -594,7 +594,7 @@

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index ceb22ed07..97ae49259 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

    - + Member Functions
    - + Construct
    binomial_distribution(RealType n, RealType p);
    @@ -183,7 +183,7 @@
                 otherwise calls domain_error.
               

    - + Accessors
    RealType success_fraction() const;
    @@ -199,7 +199,7 @@
                 was constructed.
               

    - + Lower Bound on the Success Fraction
    @@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

    - + Upper Bound on the Success Fraction
    @@ -383,7 +383,7 @@
    - + Estimating the Number of Trials Required for a Certain Number of Successes
    @@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

    - + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

    - + Non-member Accessors
    @@ -622,7 +622,7 @@
    - + Examples

    @@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

    - + Accuracy

    @@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -884,7 +884,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index ddeb537c2..7075a8642 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

      - + Accuracy

      @@ -157,7 +157,7 @@ have very low error rates.

      - + Implementation

      @@ -273,7 +273,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index bf8a07433..f8e1ecd4e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

      - + Member Functions
      @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

      - + Non-member Accessors
      @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

      - + Examples

      @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

      - + Accuracy

      @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

      - + Implementation

      @@ -379,7 +379,7 @@ independent, normally distributed random

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index f3757d293..bb6810328 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

      - + Member Functions
      @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

      - + Non-member Accessors
      @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -122,7 +122,7 @@ should have very low error rates.

      - + Implementation

      @@ -283,7 +283,7 @@

    - + references
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index aef6a012c..95e3e9be6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

      - + Member Functions
      @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

      - + Accuracy

      @@ -154,7 +154,7 @@ very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index 9359ff2be..38f86814b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

      - + Member Functions
      @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

      - + Non-member Accessors
      @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

      - + Accuracy

      @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index 71f64d524..9af0f4991 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

      - + Member Functions
      @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index e50b264ef..5625bfe1d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

      - + Related Distributions
      @@ -206,12 +206,12 @@
    - + Member Functions
    - + Constructor
    geometric_distribution(RealType p);
    @@ -226,7 +226,7 @@
                 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -253,7 +253,7 @@
                 Binomial Distribution for more discussion.
               

    - + Lower Bound on success_fraction Parameter p
    @@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on success_fraction Parameter p
    @@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -415,7 +415,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -463,7 +463,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -611,7 +611,7 @@
    - + Accuracy

    @@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index f377fdc25..6061854ca 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

    - + Member Functions
    @@ -131,7 +131,7 @@ from the population N.

    - + Non-member Accessors
    @@ -185,7 +185,7 @@
    - + Accuracy

    @@ -211,7 +211,7 @@ meaningless for N >= 1015.

    - + Testing

    @@ -223,7 +223,7 @@ this implementation and NTL::RR.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index a863a2ae6..5a54cb36e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

    - + Member Functions
    @@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

    - + Non-member Accessors
    @@ -255,7 +255,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

    - + Implementation

    @@ -452,7 +452,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index 01c4f3b10..9baec5505 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

      - + Member Functions
      @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

      - + Non-member Accessors
      @@ -184,7 +184,7 @@

    - + Accuracy

    @@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index 7306d27cd..634d6abd5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -146,7 +146,7 @@ the __wald_distrib (where mean μ is unity) is also provided.

    - + Member Functions
    @@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

    - + Non-member Accessors
    @@ -201,7 +201,7 @@

    - + Accuracy

    @@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    @@ -390,7 +390,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index 0d6541982..1335d19e9 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

      - + Member Functions
      @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

      - + Accuracy

      @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

      - + Implementation

      @@ -329,7 +329,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index e2c31d7d1..17239762c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

      - + Member Functions
      @@ -98,7 +98,7 @@ Returns the scale of this distribution.

      - + Non-member Accessors
      @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

      - + Accuracy

      @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

      - + Implementation
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index 4a2cf01b6..1b3625af3 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index 4ea26dc56..a622c52e7 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

      - + Member Functions
      @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

      - + Non-member Accessors
      @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

      - + Accuracy

      @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

      - + Tests

      @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index 2d7fe4c70..484daf96b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

      - + Member Functions
      @@ -183,7 +183,7 @@ == q.

      - + Non-member Accessors
      @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

      - + Accuracy

      @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

      - + Tests

      @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index 524298980..1d5abd255 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

      - + Member Functions
      @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

      - + Non-member Accessors
      @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

      - + Tests

      @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index a1646d6f4..4417b3832 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

      - + Member Functions
      @@ -111,7 +111,7 @@ which this object was constructed.

      - + Non-member Accessors
      @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

      - + Accuracy

      @@ -255,7 +255,7 @@ epsilon.

      - + Tests

      @@ -270,7 +270,7 @@ least 50 decimal places.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index 5d113d879..4ce39f7e0 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

      - + Related Distributions
      @@ -195,12 +195,12 @@
      - + Member Functions
      - + Construct
      negative_binomial_distribution(RealType r, RealType p);
      @@ -216,7 +216,7 @@
                   <= 1.
                 

      - + Accessors
      RealType success_fraction() const; // successes / trials (0 <= p <= 1)
      @@ -237,7 +237,7 @@
                   Distribution for more discussion.
                 

      - + Lower Bound on Parameter p
      @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

      - + Upper Bound on Parameter p
      @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

      - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
      @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

      - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
      @@ -457,7 +457,7 @@ probability of observing more than k failures.

      - + Non-member Accessors
      @@ -606,7 +606,7 @@

    - + Accuracy

    @@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index 90ff95023..0726ed4fa 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

    - + Member Functions
    @@ -109,7 +109,7 @@ be used generically).

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

    - + Accuracy

    @@ -139,7 +139,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index d24b75f4a..13b4ea47e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

    - + Related distributions
    - + Member Functions
    @@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

    - + Non-member Accessors
    @@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ zero) see also why complements?.

    - + Implementation

    @@ -318,7 +318,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index 9a3ae7c11..194066da2 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
    - + Member Functions
    @@ -131,7 +131,7 @@ Returns the mean of this distribution.

    - + Non-member Accessors
    @@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

    - + Accuracy

    @@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index a87a5407a..54aaaac88 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

    - + Related distributions
    @@ -102,7 +102,7 @@ distribution.

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

    - + Accuracy

    @@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

    - + Implementation

    @@ -320,7 +320,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index c2591a66a..342735a60 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

      - + Member Functions
      @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

      - + Non-member Accessors
      @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

      - + Examples

      @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

      - + Accuracy

      @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index e9c99ae54..df6b55058 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

      - + Member Functions
      @@ -163,7 +163,7 @@ (default+1).

      - + Non-member Accessors
      @@ -184,7 +184,7 @@ range is lower <= x <= upper.

      - + Accuracy

      @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

      - + Implementation

      @@ -378,7 +378,7 @@ Calculate and plot probability distributions

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index e20512d45..d278361a9 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

        - + Member Functions
        @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

        - + Non-member Accessors
        @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

        - + Accuracy

        @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index 80d29c09c..ce335ab34 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

        - + Related distributions
        @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

        - + Member Functions
        @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

        - + Non-member Accessors
        @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

        - + Accuracy

        @@ -170,7 +170,7 @@ as such should have very low error rates.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index 17e6994d7..573c8329e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

        - + Function Index
          @@ -94,7 +94,7 @@
        - + Conceptual Index
          @@ -180,7 +180,7 @@
        - + Cumulative Distribution Function
        template <class RealType, class Policy>
        @@ -203,7 +203,7 @@
                   cdf
                 

        - + Complement of the Cumulative Distribution Function
        template <class Distribution, class RealType>
        @@ -243,7 +243,7 @@
                   complement is useful and when it should be used.
                 

        - + Hazard Function
        template <class RealType, class Policy>
        @@ -271,7 +271,7 @@
                   

      - + Cumulative Hazard Function
      template <class RealType, class Policy>
      @@ -298,7 +298,7 @@
                 

    - + mean
    template<class RealType, class Policy>
    @@ -313,7 +313,7 @@
               distribution).
             

    - + median
    template<class RealType, class Policy>
    @@ -323,7 +323,7 @@
               Returns the median of the distribution dist.
             

    - + mode
    template<class RealType, Policy>
    @@ -337,7 +337,7 @@
               if the distribution does not have a defined mode.
             

    - + Probability Density Function
    template <class RealType, class Policy>
    @@ -365,7 +365,7 @@
               pdf
             

    - + Range
    template<class RealType, class Policy>
    @@ -375,7 +375,7 @@
               Returns the valid range of the random variable over distribution dist.
             

    - + Quantile
    template <class RealType, class Policy>
    @@ -405,7 +405,7 @@
               quantile
             

    - + Quantile from the complement of the probability.

    @@ -450,7 +450,7 @@ survival_inv

    - + Standard Deviation
    template <class RealType, class Policy>
    @@ -464,7 +464,7 @@
               if the distribution does not have a defined standard deviation.
             

    - + support
    template<class RealType, class Policy>
    @@ -481,7 +481,7 @@
               where the pdf is zero, and the cdf zero or unity.
             

    - + Variance
    template <class RealType, class Policy>
    @@ -495,7 +495,7 @@
               if the distribution does not have a defined variance.
             

    - + Skewness
    template <class RealType, class Policy>
    @@ -509,7 +509,7 @@
               if the distribution does not have a defined skewness.
             

    - + Kurtosis
    template <class RealType, class Policy>
    @@ -551,7 +551,7 @@
               'Proper' kurtosis can have a value from zero to + infinity.
             

    - + Kurtosis excess
    template <class RealType, Policy>
    @@ -585,7 +585,7 @@
               The kurtosis excess of a normal distribution is zero.
             

    - + P and Q

    @@ -595,7 +595,7 @@ returned by these functions.

    - + Percent Point Function or Percentile

    @@ -603,7 +603,7 @@ the Quantile.

    - + Inverse CDF Function.

    @@ -611,14 +611,14 @@ Quantile.

    - + Inverse Survival Function.

    The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

    - + Probability Mass Function

    @@ -631,7 +631,7 @@ applies to continuous distributions.

    - + Lower Critical Value.

    @@ -640,7 +640,7 @@ the Quantile.

    - + Upper Critical Value.

    @@ -650,7 +650,7 @@ complement of the probability.

    - + Survival Function

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index 0d4ce5033..d796df805 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

    - + Adding Additional Location and Scale Parameters
    @@ -55,7 +55,7 @@ functions.

    - + An "any_distribution" class
    @@ -91,7 +91,7 @@ investigation.

    - + Higher Level Hypothesis Tests
    @@ -111,7 +111,7 @@ expected_mean.

    - + Integration With Statistical Accumulators
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html index 15dcf4614..3c6685e99 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html @@ -36,7 +36,7 @@ are Objects
    Generic operations common to all distributions are non-member functions
    -
    Complements +
    Complements are supported too - and when to use them
    Parameters can be calculated
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html index 0d81ff770..9d7816398 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html @@ -33,7 +33,7 @@ are Objects
    Generic operations common to all distributions are non-member functions
    -
    Complements +
    Complements are supported too - and when to use them
    Parameters can be calculated
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html index 83a3c54e0..57b9e3db6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html @@ -24,10 +24,10 @@
    -

    +

    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 diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index d1c66da7c..6fb0a071e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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

    - + Using Binomial distribution moments
    @@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
    - + Quantiles

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index 08b35431f..d1e3627e7 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

    - + Confidence intervals as a function of the number of observations
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index c85b033a3..a57d68095 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
    negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
     
    - + Default arguments to distribution constructors.
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index 9efba7eff..40b059a5f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
    - + Controlling Error Handling from find_location
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index 223bab4b8..ae8c8e70d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

    - + Using find_location and find_scale to meet dispensing and measurement specifications
    @@ -193,7 +193,7 @@

    - + Using Cauchy-Lorentz instead of normal distribution
    @@ -305,7 +305,7 @@ of estimating these intervals.

    - + Changing the scale or standard deviation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index bd6286cdb..10f9c5c63 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
    - + Controlling how Errors from find_scale are handled
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index 1a7395616..d98d481f1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

    - + Throwing a dice
    @@ -288,7 +288,7 @@ replicated in C++ if desired.

    - + Surveying customers to find one with a faulty product
    @@ -333,7 +333,7 @@

    - + Basket Ball Shooters
    @@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

    - + Estimating failures
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index 5d2d3eec1..f168e29e9 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

    - + Traditional Tables
    @@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

    - + Standard deviations either side of the Mean
    @@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

    - + Some simple examples
    - + Life of light bulbs
    @@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + How many onions?
    @@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + Packing beef
    @@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

    - + Length of bolts
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index d1a96c511..f9b04ad40 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
    - + Supported C99 Functions
    @@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
    - + Quick Reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index 3d5e33e91..12a696950 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

    - + Usage Recomendations

    @@ -295,7 +295,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -391,7 +391,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -520,7 +520,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index c66dd3d4c..26398d4e1 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
    - + Supported TR1 Functions
    @@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
    - + Quick Reference
    // [5.2.1.1] associated Laguerre polynomials:
    @@ -494,7 +494,7 @@
             for the full template (header only) version of this function.
           

    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index 8109b3c8d..61e362429 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
    - + Building a Library (shared, dynamic .dll or static .lib)
    @@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

    - + Building the Examples
    @@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

    - + Building the Tests
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index 39c9bcdc9..877178851 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
    - + boost/math
    @@ -73,7 +73,7 @@
    - + boost/libs
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index 905d93d7b..4a57bac6b 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
    - + Quick Reference
    @@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

    - + Rationale

    @@ -766,7 +766,7 @@

    - + Finding More Information
    @@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

    - + Domain Errors

    @@ -859,7 +859,7 @@ for more details.

    - + Evaluation at a pole

    @@ -897,7 +897,7 @@ for more details.

    - + Numeric Overflow

    @@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

    - + Numeric Underflow

    @@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

    - + Denormalisation Errors

    @@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

    - + Evaluation Errors

    @@ -1001,7 +1001,7 @@ for more details.

    - + Indeterminate Result Errors

    @@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

    - + Rounding Errors

    @@ -1068,7 +1068,7 @@ for more details.

    - + Errors from typecasts

    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index 9be8e709d..57ec8a964 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -28,7 +28,7 @@ New

    - + Boost-1.47
      @@ -45,7 +45,7 @@
    - + Boost-1.46.1
    • @@ -53,7 +53,7 @@ #5113.
    - + Boost-1.46.0
      @@ -68,7 +68,7 @@
    - + Boost-1.45.0
      @@ -85,7 +85,7 @@
    - + Boost-1.44.0
      @@ -99,7 +99,7 @@
    - + Boost-1.41.0
    • @@ -107,7 +107,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -144,7 +144,7 @@
    - + Boost-1.38.0
      @@ -156,14 +156,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -196,7 +196,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -228,7 +228,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -242,7 +242,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -270,7 +270,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -306,7 +306,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index c8c1d6035..0fc166528 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

    - + Statistical Distributions
    @@ -56,7 +56,7 @@ tests.

    - + Mathematical Special Functions
    @@ -83,7 +83,7 @@ double.

    - + Implementation Toolkit
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index 37583136c..cf3e6bc78 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

    - + Shortcuts
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index d9ed87fd5..ce75c9d7e 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

    - + Usage Recomendations
    @@ -297,7 +297,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -393,7 +393,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -522,7 +522,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index d2ca09c92..dc33f784b 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

    - + Comparison to GSL-1.13 and Cephes
    @@ -344,7 +344,7 @@

    - +INF [1] + +INF [1]

    @@ -423,7 +423,7 @@

    -

    17.89[2]

    +

    17.89[2]

    (4.248e-005s)

    @@ -548,11 +548,11 @@ -

    [1] +

    [1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

    -

    [2] +

    [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 @@ -563,7 +563,7 @@

    - + Comparison to the R and DCDFLIB Statistical Libraries on Windows
    @@ -659,7 +659,7 @@

    -

    67.66[1]

    +

    67.66[1]

    (3.366e-004s)

    @@ -1088,7 +1088,7 @@

    -

    3.60[2]

    +

    3.60[2]

    (5.987e-007s)

    @@ -1317,7 +1317,7 @@

    -

    43.43[3]

    +

    43.43[3]

    (3.732e-004s)

    @@ -1387,7 +1387,7 @@

    -

    393.90[4]

    +

    393.90[4]

    (2.673e-002s)

    @@ -1523,7 +1523,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (4.411e-004s)

    @@ -1809,28 +1809,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. @@ -1839,7 +1839,7 @@


    - + Comparison to the R Statistical Library on Linux
    @@ -1934,7 +1934,7 @@

    -

    30.51[1]

    +

    30.51[1]

    (3.616e-004s)

    @@ -2363,7 +2363,7 @@

    -

    2.20[2]

    +

    2.20[2]

    (3.522e-007s)

    @@ -2592,7 +2592,7 @@

    -

    25.92[3]

    +

    25.92[3]

    (4.407e-004s)

    @@ -2662,7 +2662,7 @@

    -

    144.91[4]

    +

    144.91[4]

    (3.214e-002s)

    @@ -2798,7 +2798,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (5.916e-004s)

    @@ -3084,28 +3084,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index a3fc8f4ea..853225b2c 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

    - + real

    @@ -89,7 +89,7 @@ = 68.1584.

    - + integer_round_outwards

    @@ -143,7 +143,7 @@ in each tail.

    - + integer_round_inwards

    @@ -202,7 +202,7 @@ in each tail.

    - + integer_round_down

    @@ -210,7 +210,7 @@ or a lower quantile.

    - + integer_round_up

    @@ -218,7 +218,7 @@ a lower quantile.

    - + integer_round_nearest

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index b4910cc38..76cf7099b 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

    - + Available Actions When an Error is Raised
    @@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

    - + throw_on_error

    @@ -174,7 +174,7 @@

    - + errno_on_error

    @@ -289,7 +289,7 @@

    - + ignore_error

    @@ -402,7 +402,7 @@

    - + user_error

    @@ -451,7 +451,7 @@ here.

    - + Kinds of Error Raised
    @@ -691,7 +691,7 @@
    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index 10a29dd43..9c3f58fa2 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index f526aabd2..c5fa7db8f 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

    - + BOOST_MATH_DOMAIN_ERROR_POLICY

    @@ -71,7 +71,7 @@ ignore_error or user_error.

    - + BOOST_MATH_POLE_ERROR_POLICY

    @@ -81,7 +81,7 @@ ignore_error or user_error.

    - + BOOST_MATH_OVERFLOW_ERROR_POLICY

    @@ -91,7 +91,7 @@ ignore_error or user_error.

    - + BOOST_MATH_ROUNDING_ERROR_POLICY

    @@ -101,7 +101,7 @@ ignore_error or user_error.

    - + BOOST_MATH_EVALUATION_ERROR_POLICY

    @@ -111,7 +111,7 @@ ignore_error or user_error.

    - + BOOST_MATH_UNDERFLOW_ERROR_POLICY

    @@ -121,7 +121,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DENORM_ERROR_POLICY

    @@ -131,7 +131,7 @@ ignore_error or user_error.

    - + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

    @@ -142,7 +142,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DIGITS10_POLICY

    @@ -153,7 +153,7 @@ recommended that you change this from the default.

    - + BOOST_MATH_PROMOTE_FLOAT_POLICY

    @@ -165,7 +165,7 @@ off.

    - + BOOST_MATH_PROMOTE_DOUBLE_POLICY

    @@ -177,7 +177,7 @@ off.

    - + BOOST_MATH_DISCRETE_QUANTILE_POLICY

    @@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

    - + BOOST_MATH_ASSERT_UNDEFINED_POLICY

    @@ -201,7 +201,7 @@ whether or not a particular property is well defined.

    - + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

    @@ -210,7 +210,7 @@ Defaults to 1000000.

    - + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

    @@ -219,7 +219,7 @@ Defaults to 200.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index 3c38ca83c..1df807707 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

    - + Other Rounding Policies are Available
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index a0ea955e2..c3097b186 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -105,7 +105,7 @@

    - + Testing

    @@ -114,7 +114,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -489,7 +489,7 @@ were found.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index 201cac4b1..4199984e5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

    - + Ordinary Bessel Functions
    @@ -103,7 +103,7 @@ and is known as either a Bessel

    - + Modified Bessel Functions
    @@ -167,7 +167,7 @@ respectively:

    - + Spherical Bessel Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index a477d5658..02cb6a160 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -104,7 +104,7 @@

    - + Testing

    @@ -113,7 +113,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -321,7 +321,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index 3f56f240e..c503beb1b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
     
    - + Description

    @@ -92,7 +92,7 @@ for small x:

    - + Testing

    @@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

    - + Accuracy

    @@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index 36874a7f6..d71d7257a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index 9311bba95..9c4fb8660 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index 05d9d9395..aff8cf465 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -231,7 +231,7 @@

    - + Testing

    @@ -241,7 +241,7 @@ this implementation.

    - + Implementation

    @@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

    - Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

    are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



    -

    [1] +

    [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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index 606f33a7e..859824717 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

    - + Synopsis

    @@ -100,7 +100,7 @@ }} // namespaces

    - + Description

    @@ -216,7 +216,7 @@

    - + Testing

    @@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

    - + Accuracy

    @@ -393,7 +393,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index 2c718f4dd..a9d87b2e0 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

    - + Notation

    All variables are real numbers unless otherwise noted.

    - + Definition

    @@ -245,7 +245,7 @@

    - + Duplication Theorem

    @@ -256,7 +256,7 @@

    - + Carlson's Formulas

    @@ -273,7 +273,7 @@

    - + Numerical Algorithms
    @@ -287,7 +287,7 @@ integrals with satisfactory precisions.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index b45f9dd9a..7f33d9934 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -202,7 +202,7 @@ slightly over the range [4,6].

    - + Testing

    @@ -217,7 +217,7 @@ check.

    - + Implementation

    @@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



    -

    [2] +

    [2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index b77b682f1..b15f79b6c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -220,7 +220,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index 4adc8c14e..cf4f69b52 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

    - + Accuracy

    @@ -99,14 +99,14 @@ function for larger arguments.

    - + Testing

    The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index 772d7b189..47f4b9bff 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

    - + Accuracy

    @@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

    - + Testing

    The spot tests for the double factorial use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index 6a66ae0c7..ae9766037 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    @@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

    - + Accuracy

    @@ -166,7 +166,7 @@ will be the same as for tgamma.

    - + Testing

    @@ -175,7 +175,7 @@ function handle those cases already.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index ac9c0f7d9..1b9c83a79 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

    - + Accuracy

    @@ -79,14 +79,14 @@ function.

    - + Testing

    The spot tests for the falling factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index 4c47f2ac3..fdbbce695 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

    - + Accuracy

    @@ -83,14 +83,14 @@ function.

    - + Testing

    The spot tests for the rising factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index 3da53b246..d97ef7e9f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -85,7 +85,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index 968b72d8c..5b4ce131d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -80,7 +80,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index 81bb2a776..a5c83de6e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index 2eabdd079..32dfc0584 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

    - + Accuracy

    @@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index 4121562e8..186afe59c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

    - + Synopsis

    @@ -49,7 +49,7 @@ }}

    - + Rationale and Usage
    @@ -91,7 +91,7 @@ Only 3 different products were actually computed.

    - + Return Type

    @@ -112,7 +112,7 @@

    - + Policies

    @@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Error Handling
    @@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
    - + Acknowledgements

    @@ -238,7 +238,7 @@ improving the implementation.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index 4efd0d19e..63acb6e32 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

    - + Accuracy

    @@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index 81ac49304..e8fd163bf 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index 519f3c993..e66e983ef 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

    - + Accuracy

    @@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index 4dee2adec..9ca53e599 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

    - + Accuracy

    Should have approximately 2-3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index fff52e8b0..bd5bca4f3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

    - + Accuracy

    @@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index 7bfe7355f..396d21570 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Almost identical to the incomplete beta function ibeta.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index f1c694257..8dc22ffe5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

    - + Accuracy

    @@ -239,7 +239,7 @@ very small.

    - + Testing

    @@ -248,7 +248,7 @@ at 1000-bit precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index f38228562..30e23a666 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -158,7 +158,7 @@

    - + Accuracy

    @@ -865,7 +865,7 @@


    - + Testing

    @@ -883,7 +883,7 @@ have test data that is fully independent of the code.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index 1a9471c6d..b375d71be 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

    - + Description

    @@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -300,7 +300,7 @@ or 1.

    - + Testing

    @@ -324,7 +324,7 @@

    - + Implementation of ibeta_inv and ibetac_inv
    @@ -492,7 +492,7 @@ rapidly converges on the true value.

    - + Implementation of inverses on the a and b parameters
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index 14abb47ad..a66a8d088 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
    - + Synopsis

    @@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -100,7 +100,7 @@
               
             

    - + Accuracy

    @@ -525,7 +525,7 @@

    - + Testing

    @@ -540,7 +540,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index 82a7cf3ba..1deae52dd 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

    - + Synopsis

    @@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -98,7 +98,7 @@
               
             

    - + Accuracy

    @@ -108,7 +108,7 @@ error functions.

    - + Testing

    @@ -131,7 +131,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index b09969772..be6e1ccc0 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -77,7 +77,7 @@ T otherwise.

    - + Accuracy

    @@ -265,7 +265,7 @@ absolute error will remain very low.

    - + Testing

    @@ -275,7 +275,7 @@ see below).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index 49863b020..093db5817 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -75,7 +75,7 @@ otherwise the return type is simply T1.

    - + Accuracy

    @@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index c94ab8965..21c373fdb 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

    - + Description
    template <class T1, class T2> 
    @@ -107,7 +107,7 @@
               
             

    - + Accuracy

    @@ -317,7 +317,7 @@

    - + Testing

    @@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index 41348e9c4..a25cb14e3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -155,7 +155,7 @@

    - + Accuracy

    @@ -823,7 +823,7 @@

    - + Testing

    @@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

    - + Implementation

    @@ -1008,7 +1008,7 @@ by Temme (see references below).

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index 732f47ace..7e51c665d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -168,7 +168,7 @@ 0.

    - + Accuracy

    @@ -182,7 +182,7 @@ functions.

    - + Testing

    @@ -206,7 +206,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index d45dd9f3e..036b37e78 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description

    @@ -93,7 +93,7 @@ T otherwise.

    - + Accuracy

    @@ -344,7 +344,7 @@

    - + Testing

    @@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index a4205c041..ab7b72a19 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    template <class T>
    @@ -119,7 +119,7 @@
               it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
             

    - + Accuracy

    @@ -374,7 +374,7 @@

    - + Testing

    @@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index 27b2d25f3..c5aaae694 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

    - + Synopsis

    @@ -51,7 +51,7 @@ }} // namespaces

    - + Description

    @@ -131,7 +131,7 @@

    - + Accuracy

    @@ -248,7 +248,7 @@ is very close to a root.

    - + Testing

    @@ -258,7 +258,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index f11a3c6ee..4433def92 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -62,7 +62,7 @@ }} // namespaces

    - + Description

    @@ -205,7 +205,7 @@

    - + Accuracy

    @@ -422,7 +422,7 @@ is very close to a root.

    - + Testing

    @@ -432,7 +432,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index d1247e8e8..e00fb9eaa 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -295,7 +295,7 @@
     
     
     
    - + Accuracy

    @@ -676,7 +676,7 @@ given here.

    - + Testing

    @@ -686,7 +686,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index ec8428fc7..cc3929397 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

    - + Synopsis

    @@ -60,7 +60,7 @@ }} // namespaces

    - + Description

    @@ -150,7 +150,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

    - + Testing

    @@ -281,7 +281,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index 9e25bcdab..cd18082a7 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

    - + Synopsis

    @@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -80,7 +80,7 @@
               
             

    - + Accuracy

    @@ -229,7 +229,7 @@

    - + Testing

    @@ -244,7 +244,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/status/credits.html b/doc/sf_and_dist/html/math_toolkit/status/credits.html index b749b1996..5a1795dc7 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/credits.html +++ b/doc/sf_and_dist/html/math_toolkit/status/credits.html @@ -7,7 +7,6 @@ - @@ -20,7 +19,7 @@


    -PrevUpHomeNext +PrevUpHome

    @@ -125,7 +124,7 @@
    -PrevUpHomeNext +PrevUpHome
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index 4f058f413..71ce32e54 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -27,7 +27,7 @@ History and What's New

    - + Boost-1.47
      @@ -44,7 +44,7 @@
    - + Boost-1.46.1
    • @@ -52,7 +52,7 @@ #5113.
    - + Boost-1.46.0
      @@ -67,7 +67,7 @@
    - + Boost-1.45.0
      @@ -84,7 +84,7 @@
    - + Boost-1.44.0
      @@ -98,7 +98,7 @@
    - + Boost-1.41.0
    • @@ -106,7 +106,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -143,7 +143,7 @@
    - + Boost-1.38.0
      @@ -155,14 +155,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -195,7 +195,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -227,7 +227,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -241,7 +241,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -269,7 +269,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -305,7 +305,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index 5cafb1a2f..3ff1e607d 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

    - + tgamma
    • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
    - + Incomplete Beta
    • @@ -56,7 +56,7 @@ b (medium priority).
    - + Inverse Gamma
    • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
    - + Polynomials
    • @@ -74,7 +74,7 @@ not (Low Priority).
    - + Elliptic Integrals
      @@ -127,7 +127,7 @@
    - + Inverse Hyperbolic Functions
    @@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
    - + Statistical distributions
    @@ -146,7 +146,7 @@ for very large degrees of freedom?
    - + Feature Requests

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index 1a9b0a700..f35d00437 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -78,7 +78,7 @@ }}} // namespaces

    - + Description

    @@ -178,7 +178,7 @@ a continued fraction for convergence.

    - + Implementation

    @@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index 2824095e2..9c44c02b5 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

    - + Synopsis

    @@ -59,7 +59,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index 2eb132970..f3defff62 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

    - + synopsis

    @@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

    - + Description

    @@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index 12898f9b3..d160aa46b 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

    - + synopsis

    @@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

    - + Description

    @@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index a0275ad24..8d55d8e4d 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

    - + Synopsis

    @@ -62,7 +62,7 @@ }}} // namespaces

    - + Description

    @@ -206,7 +206,7 @@

    - + Newton Raphson Method
    @@ -224,7 +224,7 @@ iteration.

    - + Halley's Method
    @@ -246,7 +246,7 @@ iteration.

    - + Schroeder's Method
    @@ -270,7 +270,7 @@ iteration.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index b6f63fa9c..9ea6cc62b 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

    - + Synopsis

    @@ -144,7 +144,7 @@ }}} // namespaces

    - + Description

    @@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

    - + Bisection
    template <class F, class T, class Tol>
    @@ -280,7 +280,7 @@
               tol was satisfied.
             

    - + Bracket and solve
    @@ -388,7 +388,7 @@ was satisfied.

    - + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
    @@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index edee76367..2c7f0a162 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -70,7 +70,7 @@ }}} // namespaces

    - + Description

    @@ -127,7 +127,7 @@ summation in this way.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index 8efb6a282..c593fe0d4 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

    - + Synopsis

    @@ -38,7 +38,7 @@

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index 0db44ed43..e1f365126 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

    - + Synopsis

    @@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

    - + Description
    template <class T>
    @@ -157,7 +157,7 @@
               is mainly a debugging/development aid (and a good place for a breakpoint).
             

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index 014f2a047..1d642e9a9 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

    - + Synopsis

    @@ -103,7 +103,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index ec50d2e6d..228407e56 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

    - + Synopsis
    namespace boost{ namespace math{ namespace tools{
    @@ -147,7 +147,7 @@
     }}} // namespaces
     
    - + Description

    @@ -177,7 +177,7 @@

    - + Example 1: Output Data for Graph Plotting
    @@ -211,7 +211,7 @@

    - + Example 2: Creating Test Data
    @@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

    - + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
    @@ -482,7 +482,7 @@ of a and z.

    - + reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index 2d9f9a9dd..ae211d608 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@

    - + Real concept

    @@ -84,7 +84,7 @@ declaration.

    - + Testing the real concept

    @@ -130,7 +130,7 @@ double, also tests real_concept.

    - + Distribution Concept

    @@ -166,7 +166,7 @@ class for distribution types.

    - + Testing the distribution concept

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index a2abc0f08..4a50065af 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

    - + Basic Arithmetic Requirements
    @@ -1035,7 +1035,7 @@
    - + Standard Library Support Requirements
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html index caaa2530b..93a8d01e9 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html @@ -35,7 +35,7 @@
    Design Rationale
    - + Synopsis
    namespace boost{ namespace math
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    index 1fc37fb53..f2d3300bb 100644
    --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    @@ -27,7 +27,7 @@
     Examples
     
     
    - + Simple example with std::stringstreams
    @@ -64,7 +64,7 @@

    - + Use with lexical_cast
    @@ -149,7 +149,7 @@ s >> input_value;
    - + Use with serialization archives
    @@ -194,7 +194,7 @@ archives do not check the stream state.

    - + Other examples
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html index ebcb915a7..b5b89c295 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html @@ -27,7 +27,7 @@ Introduction
    - + The Problem

    @@ -51,7 +51,7 @@ assert(inf == y); // Fails!

    - + The Solution

    @@ -78,11 +78,22 @@ [Tip] Tip -

    + +

    To add two facets, nonfinite_num_put and nonfinite_num_get, - you have to add one at a time, using a temporary locale. -

    + 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. +

    +

    @@ -108,7 +119,7 @@

    - + C++0X standard for output of infinity and NaN
    @@ -120,7 +131,7 @@ portable.

    - + C99 standard for output of infinity and NaN
    @@ -210,7 +221,7 @@ formats.

    - + Signaling NaNs
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html index b76e22acb..12fc852e1 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html @@ -27,7 +27,7 @@ Reference
    - + The Facet nonfinite_num_put
    @@ -138,7 +138,7 @@ numbers is simply delegated to the normal std::num_put.

    - + Facet nonfinite_num_get
    @@ -254,7 +254,7 @@ on a platform that lacks NaN, then the fail bit of the stream is set.

    - + Flags

    @@ -284,7 +284,7 @@ and live in the namespace boost::math.

    - + legacy

    @@ -364,20 +364,35 @@ -

    - 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.. -

    +
      +
    • + 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.

    - + signed_zero

    @@ -397,7 +412,7 @@ as negative zero, as do most implementations of std::num_get.

    - + trap_infinity

    @@ -422,7 +437,7 @@ (See Design Rationale below for a discussion of this inconsistency.)

    - + trap_nan

    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index 3ac052d46..056b84bfa 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -28,7 +28,7 @@ Infinities and NaNs

    - + Synopsis
    #define FP_ZERO        /* implementation specific value */
    @@ -58,7 +58,7 @@
             to use these functions.
           

    - + Description

    @@ -217,7 +217,7 @@ infinite, NaN, or denormalised).

    - + Floating-point format
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index 952e27bd1..37c253b83 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

    - + Synopsis

    @@ -50,7 +50,7 @@ }} // namespaces

    - + Description - float_advance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index 073798cb0..2cd0ea1ee 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

    - + Synopsis

    @@ -52,7 +52,7 @@ }} // namespaces

    - + Description - float_distance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index 5005db27e..9782bf0e8 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_next
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index 7b1bc5482..0ec978cc3 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_prior
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index fd3c2c5c1..45c8a3321 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - nextafter
    @@ -76,7 +76,7 @@ returns an overflow_error.

    - + Examples - nextafter
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index af9fb09c1..c8adf9797 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -28,7 +28,7 @@ Functions
    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description
    template<class T> 
    @@ -109,7 +109,7 @@
             may be the only portable way to ensure that the sign bit is changed.
           

    - + Sign bits

    @@ -130,7 +130,7 @@ it may be necessary to explicitly specialize then for UDT type T.

    - + Examples
    signbit(3.5) is zero (or false)
    @@ -143,7 +143,7 @@
     changesign(-1.8) is 1.8
     
    - + Portability

    From 15c9b19ac1ca644c1e1237ab6b2f18ca833bedb8 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Thu, 21 Apr 2011 17:53:58 +0000 Subject: [PATCH 58/82] Added more comments [SVN r71404] --- .../nonfinite_num_facets.hpp | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/include/boost/math/special_functions/nonfinite_num_facets.hpp b/include/boost/math/special_functions/nonfinite_num_facets.hpp index c4bbe1601..8ee9170e1 100644 --- a/include/boost/math/special_functions/nonfinite_num_facets.hpp +++ b/include/boost/math/special_functions/nonfinite_num_facets.hpp @@ -43,12 +43,12 @@ namespace boost { const int signed_zero = 0x2; //!< put facet will distinguish between positive and negative zero. const int trap_infinity = 0x4; /*!< put facet will throw an exception of type std::ios_base::failure when an attempt is made to format positive or negative infinity. - get will set the fail bit of the stream when an attempt is made + get will set the fail bit of the stream when an attempt is made to parse a string that represents positive or negative sign infinity. */ const int trap_nan = 0x8; /*!< put facet will throw an exception of type std::ios_base::failure when an attempt is made to format positive or negative NaN. - get will set the fail bit of the stream when an attempt is made + get will set the fail bit of the stream when an attempt is made to parse a string that represents positive or negative sign infinity. */ @@ -195,7 +195,7 @@ namespace boost { explicit nonfinite_num_get(int flags = 0) : flags_(flags) {} - protected: + protected: // float, double and long double versions of do_get. virtual InputIterator do_get( InputIterator it, InputIterator end, std::ios_base& iosb, std::ios_base::iostate& state, float& val) const @@ -276,7 +276,8 @@ namespace boost { } // void get_signed template void get_unsigned - ( // get an unsigned value into val + ( //! Get an unsigned floating-point value into val, + //! but checking for letters indicating non-finites. InputIterator& it, InputIterator end, std::ios_base& iosb, const std::ctype& ct, std::ios_base::iostate& state, ValType& val @@ -297,7 +298,7 @@ namespace boost { get_q(it, end, ct, state, val); break; - default: + default: // Got a normal floating-point value into val. it = std::num_get::do_get( it, end, iosb, state, val); if((flags_ & legacy) && val == static_cast(1) @@ -346,7 +347,7 @@ namespace boost { } // void get_i template void get_n - ( // Get expected strings after 'n', "nan", "nanq", "nans", "nan(...)" + ( // Get expected strings after 'n', "nan", "nanq", "nans", "nan(...)" InputIterator& it, InputIterator end, const std::ctype& ct, std::ios_base::iostate& state, ValType& val ) const @@ -384,7 +385,7 @@ namespace boost { return; } ++it; - break; // "nan(...)" + break; // "nan(...)" } default: @@ -500,7 +501,7 @@ namespace boost { //.......................................................................... char peek_char - ( // Return next char (from input buffer). + ( //! \return next char in the input buffer, ensuring lowercase (but do not 'consume' char). InputIterator& it, InputIterator end, const std::ctype& ct ) const @@ -510,7 +511,9 @@ namespace boost { } bool match_string - ( // Match remaining chars to expected string (case insensitive). + ( //! Match remaining chars to expected string (case insensitive), + //! consuming chars that match OK. + //! \return true if matched expected string, else false. InputIterator& it, InputIterator end, const std::ctype& ct, const char* s @@ -519,14 +522,14 @@ namespace boost { while(it != end && *s && *s == ct.narrow(ct.tolower(*it), 0)) { ++s; - ++it; + ++it; // } return !*s; - } // char peek_char + } // bool match_string private: const int flags_; - }; // + }; // //------------------------------------------------------------------------------ From 7f1a45870a2072e4575615959cd2ede218124ce2 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Thu, 21 Apr 2011 18:11:37 +0000 Subject: [PATCH 59/82] Change fp_traits to handle sign manipulation separately from fp-classification. Fixes some Linux/GCC regressions but not yet all. [SVN r71405] --- .../special_functions/detail/fp_traits.hpp | 3 +- include/boost/math/special_functions/sign.hpp | 30 +++++++------------ 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/include/boost/math/special_functions/detail/fp_traits.hpp b/include/boost/math/special_functions/detail/fp_traits.hpp index 0f311b639..54d45917b 100644 --- a/include/boost/math/special_functions/detail/fp_traits.hpp +++ b/include/boost/math/special_functions/detail/fp_traits.hpp @@ -552,12 +552,13 @@ struct select_native template struct fp_traits { + typedef BOOST_DEDUCED_TYPENAME size_to_precision::value>::type precision; #if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY) typedef typename select_native::type type; #else - typedef BOOST_DEDUCED_TYPENAME size_to_precision::value>::type precision; typedef fp_traits_non_native type; #endif + typedef fp_traits_non_native sign_change_type; }; //------------------------------------------------------------------------------ diff --git a/include/boost/math/special_functions/sign.hpp b/include/boost/math/special_functions/sign.hpp index 405bfc021..3163fc23e 100644 --- a/include/boost/math/special_functions/sign.hpp +++ b/include/boost/math/special_functions/sign.hpp @@ -66,14 +66,6 @@ namespace detail { // Changesign -#ifdef BOOST_MATH_USE_STD_FPCLASSIFY - template - inline int changesign_impl(T x, native_tag const&) - { - return -x; - } -#endif - template inline T (changesign_impl)(T x, generic_tag const&) { @@ -90,7 +82,7 @@ namespace detail { template inline T changesign_impl(T x, ieee_copy_all_bits_tag const&) { - typedef BOOST_DEDUCED_TYPENAME fp_traits::type traits; + typedef BOOST_DEDUCED_TYPENAME fp_traits::sign_change_type traits; BOOST_DEDUCED_TYPENAME traits::bits a; traits::get_bits(x,a); @@ -102,7 +94,7 @@ namespace detail { template inline T (changesign_impl)(T x, ieee_copy_leading_bits_tag const&) { - typedef BOOST_DEDUCED_TYPENAME fp_traits::type traits; + typedef BOOST_DEDUCED_TYPENAME fp_traits::sign_change_type traits; BOOST_DEDUCED_TYPENAME traits::bits a; traits::get_bits(x,a); @@ -115,7 +107,7 @@ namespace detail { } // namespace detail template int (signbit)(T x) -{ //!< \brief return true if floating-point type T is NaN (Not A Number). +{ typedef typename detail::fp_traits::type traits; typedef typename traits::method method; typedef typename boost::is_floating_point::type fp_tag; @@ -128,22 +120,22 @@ inline int sign BOOST_NO_MACRO_EXPAND(const T& z) return (z == 0) ? 0 : (boost::math::signbit)(z) ? -1 : 1; } -template -inline T copysign BOOST_NO_MACRO_EXPAND(const T& x, const T& y) -{ - BOOST_MATH_STD_USING - return fabs(x) * ((boost::math::signbit)(y) ? -1 : 1); -} - template T (changesign)(T x) { //!< \brief return unchanged binary pattern of x, except for change of sign bit. - typedef typename detail::fp_traits::type traits; + typedef typename detail::fp_traits::sign_change_type traits; typedef typename traits::method method; typedef typename boost::is_floating_point::type fp_tag; return detail::changesign_impl(x, method()); } +template +inline T copysign BOOST_NO_MACRO_EXPAND(const T& x, const T& y) +{ + BOOST_MATH_STD_USING + return (boost::math::signbit)(x) != (boost::math::signbit)(y) ? (boost::math::changesign)(x) : x; +} + } // namespace math } // namespace boost From 52fac87f092ed26820d62ae29d2e91a039d0c764 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Fri, 22 Apr 2011 09:54:36 +0000 Subject: [PATCH 60/82] Added admonishment to signbit docs and regenerates docs. Fixed test case involving bad assumption about the return value of signbit. Fixed GCC compiler warnings. [SVN r71414] --- doc/sf_and_dist/html/index.html | 13 +++-- doc/sf_and_dist/html/index/s12.html | 2 +- doc/sf_and_dist/html/index/s13.html | 2 +- doc/sf_and_dist/html/index/s14.html | 2 +- doc/sf_and_dist/html/index/s15.html | 2 +- doc/sf_and_dist/html/index/s16.html | 2 +- .../backgrounders/implementation.html | 30 +++++------ .../math_toolkit/backgrounders/lanczos.html | 10 ++-- .../html/math_toolkit/backgrounders/refs.html | 6 +-- .../backgrounders/relative_error.html | 2 +- .../math_toolkit/backgrounders/remez.html | 16 +++--- doc/sf_and_dist/html/math_toolkit/dist.html | 2 +- .../dist/dist_ref/dist_algorithms.html | 6 +-- .../dist/dist_ref/dists/bernoulli_dist.html | 10 ++-- .../dist/dist_ref/dists/beta_dist.html | 20 +++---- .../dist/dist_ref/dists/binomial_dist.html | 24 ++++----- .../dist/dist_ref/dists/cauchy_dist.html | 10 ++-- .../dist/dist_ref/dists/chi_squared_dist.html | 12 ++--- .../dist/dist_ref/dists/exp_dist.html | 10 ++-- .../dist/dist_ref/dists/extreme_dist.html | 8 +-- .../dist/dist_ref/dists/f_dist.html | 10 ++-- .../dist/dist_ref/dists/gamma_dist.html | 8 +-- .../dist/dist_ref/dists/geometric_dist.html | 22 ++++---- .../dist_ref/dists/hypergeometric_dist.html | 10 ++-- .../dists/inverse_chi_squared_dist.html | 10 ++-- .../dist_ref/dists/inverse_gamma_dist.html | 8 +-- .../dist_ref/dists/inverse_gaussian_dist.html | 10 ++-- .../dist/dist_ref/dists/laplace_dist.html | 10 ++-- .../dist/dist_ref/dists/logistic_dist.html | 8 +-- .../dist/dist_ref/dists/lognormal_dist.html | 8 +-- .../dist/dist_ref/dists/nc_beta_dist.html | 10 ++-- .../dist_ref/dists/nc_chi_squared_dist.html | 12 ++--- .../dist/dist_ref/dists/nc_f_dist.html | 10 ++-- .../dist/dist_ref/dists/nc_t_dist.html | 10 ++-- .../dists/negative_binomial_dist.html | 22 ++++---- .../dist/dist_ref/dists/normal_dist.html | 8 +-- .../dist/dist_ref/dists/pareto.html | 12 ++--- .../dist/dist_ref/dists/poisson_dist.html | 8 +-- .../dist/dist_ref/dists/rayleigh.html | 12 ++--- .../dist/dist_ref/dists/students_t_dist.html | 10 ++-- .../dist/dist_ref/dists/triangular_dist.html | 10 ++-- .../dist/dist_ref/dists/uniform_dist.html | 10 ++-- .../dist/dist_ref/dists/weibull_dist.html | 12 ++--- .../html/math_toolkit/dist/dist_ref/nmp.html | 54 +++++++++---------- .../html/math_toolkit/dist/future.html | 8 +-- .../html/math_toolkit/dist/stat_tut.html | 2 +- .../math_toolkit/dist/stat_tut/overview.html | 2 +- .../dist/stat_tut/overview/complements.html | 4 +- .../weg/binom_eg/binomial_quiz_example.html | 4 +- .../stat_tut/weg/cs_eg/chi_sq_intervals.html | 2 +- .../dist/stat_tut/weg/dist_construct_eg.html | 2 +- .../weg/find_eg/find_location_eg.html | 2 +- .../weg/find_eg/find_mean_and_sd_eg.html | 6 +-- .../stat_tut/weg/find_eg/find_scale_eg.html | 2 +- .../dist/stat_tut/weg/geometric_eg.html | 8 +-- .../weg/normal_example/normal_misc.html | 14 ++--- .../html/math_toolkit/extern_c/c99.html | 4 +- .../html/math_toolkit/extern_c/tr1.html | 10 ++-- .../html/math_toolkit/extern_c/tr1_ref.html | 6 +-- .../math_toolkit/main_overview/building.html | 6 +-- .../main_overview/directories.html | 4 +- .../main_overview/error_handling.html | 24 ++++----- .../math_toolkit/main_overview/history1.html | 30 +++++------ .../math_toolkit/main_overview/intro.html | 6 +-- .../main_overview/navigation.html | 2 +- .../html/math_toolkit/main_overview/tr1.html | 10 ++-- .../html/math_toolkit/perf/comparisons.html | 54 +++++++++---------- .../policy/pol_ref/discrete_quant_ref.html | 12 ++--- .../pol_ref/error_handling_policies.html | 14 ++--- .../policy/pol_ref/internal_promotion.html | 2 +- .../policy/pol_ref/policy_defaults.html | 32 +++++------ .../pol_tutorial/understand_dis_quant.html | 2 +- .../math_toolkit/special/bessel/bessel.html | 10 ++-- .../special/bessel/bessel_over.html | 6 +-- .../math_toolkit/special/bessel/mbessel.html | 10 ++-- .../special/bessel/sph_bessel.html | 10 ++-- .../math_toolkit/special/ellint/ellint_1.html | 10 ++-- .../math_toolkit/special/ellint/ellint_2.html | 10 ++-- .../math_toolkit/special/ellint/ellint_3.html | 14 ++--- .../special/ellint/ellint_carlson.html | 10 ++-- .../special/ellint/ellint_intro.html | 12 ++--- .../math_toolkit/special/expint/expint_i.html | 14 ++--- .../math_toolkit/special/expint/expint_n.html | 10 ++-- .../special/factorials/sf_binomial.html | 6 +-- .../factorials/sf_double_factorial.html | 6 +-- .../special/factorials/sf_factorial.html | 10 ++-- .../factorials/sf_falling_factorial.html | 6 +-- .../factorials/sf_rising_factorial.html | 6 +-- .../math_toolkit/special/inv_hyper/acosh.html | 6 +-- .../math_toolkit/special/inv_hyper/asinh.html | 6 +-- .../math_toolkit/special/inv_hyper/atanh.html | 6 +-- .../math_toolkit/special/powers/cbrt.html | 4 +- .../math_toolkit/special/powers/ct_pow.html | 14 ++--- .../math_toolkit/special/powers/expm1.html | 4 +- .../math_toolkit/special/powers/hypot.html | 2 +- .../math_toolkit/special/powers/log1p.html | 4 +- .../math_toolkit/special/powers/powm1.html | 4 +- .../math_toolkit/special/powers/sqrt1pm1.html | 4 +- .../special/sf_beta/beta_derivative.html | 8 +-- .../special/sf_beta/beta_function.html | 10 ++-- .../special/sf_beta/ibeta_function.html | 10 ++-- .../special/sf_beta/ibeta_inv_function.html | 10 ++-- .../special/sf_erf/error_function.html | 10 ++-- .../special/sf_erf/error_inv.html | 10 ++-- .../special/sf_gamma/digamma.html | 10 ++-- .../special/sf_gamma/gamma_derivatives.html | 8 +-- .../special/sf_gamma/gamma_ratios.html | 8 +-- .../math_toolkit/special/sf_gamma/igamma.html | 12 ++--- .../special/sf_gamma/igamma_inv.html | 10 ++-- .../math_toolkit/special/sf_gamma/lgamma.html | 10 ++-- .../math_toolkit/special/sf_gamma/tgamma.html | 10 ++-- .../math_toolkit/special/sf_poly/hermite.html | 10 ++-- .../special/sf_poly/laguerre.html | 10 ++-- .../special/sf_poly/legendre.html | 10 ++-- .../special/sf_poly/sph_harm.html | 10 ++-- .../html/math_toolkit/special/zetas/zeta.html | 10 ++-- .../html/math_toolkit/status/credits.html | 5 +- .../html/math_toolkit/status/history1.html | 30 +++++------ .../html/math_toolkit/status/issues.html | 16 +++--- .../math_toolkit/toolkit/internals1/cf.html | 8 +-- .../toolkit/internals1/constants.html | 4 +- .../toolkit/internals1/minima.html | 6 +-- .../toolkit/internals1/rational.html | 6 +-- .../toolkit/internals1/roots.html | 12 ++--- .../toolkit/internals1/roots2.html | 12 ++--- .../toolkit/internals1/series_evaluation.html | 6 +-- .../toolkit/internals1/tuples.html | 4 +- .../toolkit/internals2/error_test.html | 6 +-- .../toolkit/internals2/polynomials.html | 4 +- .../toolkit/internals2/test_data.html | 12 ++--- .../math_toolkit/using_udt/archetypes.html | 8 +-- .../html/math_toolkit/using_udt/concepts.html | 4 +- .../html/math_toolkit/utils/fp_facets.html | 2 +- .../utils/fp_facets/examples.html | 8 +-- .../math_toolkit/utils/fp_facets/intro.html | 10 ++-- .../utils/fp_facets/reference.html | 14 ++--- .../html/math_toolkit/utils/fpclass.html | 6 +-- .../utils/next_float/float_advance.html | 4 +- .../utils/next_float/float_distance.html | 4 +- .../utils/next_float/float_next.html | 4 +- .../utils/next_float/float_prior.html | 4 +- .../utils/next_float/nextafter.html | 6 +-- .../math_toolkit/utils/sign_functions.html | 20 +++++-- doc/sf_and_dist/sign.qbk | 2 + test/S_.ipp | 2 +- test/test_sign.cpp | 2 +- test/test_signed_zero.cpp | 2 + 147 files changed, 699 insertions(+), 681 deletions(-) diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html index 11d191004..26ca5a5b3 100644 --- a/doc/sf_and_dist/html/index.html +++ b/doc/sf_and_dist/html/index.html @@ -53,7 +53,7 @@ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and Thijs van den Berg

    @@ -504,11 +509,9 @@ friendly PDF format, and as a CD ISBN 0-9504833-2-X 978-0-9504833-2-0, Classification 519.2-dc22.

    -

    -

    - +

    Last revised: April 21, 2011 at 17:45:19 GMT

    Last revised: April 22, 2011 at 09:42:18 GMT


    diff --git a/doc/sf_and_dist/html/index/s12.html b/doc/sf_and_dist/html/index/s12.html index b16e22bda..41ba4a97a 100644 --- a/doc/sf_and_dist/html/index/s12.html +++ b/doc/sf_and_dist/html/index/s12.html @@ -24,7 +24,7 @@

    -Function Index

    +Function Index

    A B C D E F G H I K L M N P Q R S T U V Z

    diff --git a/doc/sf_and_dist/html/index/s13.html b/doc/sf_and_dist/html/index/s13.html index 642aa5eb4..105b95d0c 100644 --- a/doc/sf_and_dist/html/index/s13.html +++ b/doc/sf_and_dist/html/index/s13.html @@ -24,7 +24,7 @@

    -Class Index

    +Class Index

    B C D E F G H I L M N P R S T U W

    diff --git a/doc/sf_and_dist/html/index/s14.html b/doc/sf_and_dist/html/index/s14.html index 9b30ac59b..1101f2de0 100644 --- a/doc/sf_and_dist/html/index/s14.html +++ b/doc/sf_and_dist/html/index/s14.html @@ -24,7 +24,7 @@

    -Typedef Index

    +Typedef Index

    A B C D E F G H I L N O P R S T U V W

    diff --git a/doc/sf_and_dist/html/index/s15.html b/doc/sf_and_dist/html/index/s15.html index 23097e528..41ba51b6f 100644 --- a/doc/sf_and_dist/html/index/s15.html +++ b/doc/sf_and_dist/html/index/s15.html @@ -24,7 +24,7 @@

    -Macro Index

    +Macro Index

    A B C E F H I L N R S T

    diff --git a/doc/sf_and_dist/html/index/s16.html b/doc/sf_and_dist/html/index/s16.html index 9ec255a6e..e256df42e 100644 --- a/doc/sf_and_dist/html/index/s16.html +++ b/doc/sf_and_dist/html/index/s16.html @@ -23,7 +23,7 @@

    -Index

    +Index

    A B C D E F G H I K L M N O P Q R S T U V W Z

    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index 31b18b6cd..051e0c7fd 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

    - + Implemention philosophy
    @@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

    - + Accuracy and Representation of Test Values
    @@ -130,7 +130,7 @@ binary value).

    - + Tolerance of Tests
    @@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

    - + Handling Unsuitable Arguments
    @@ -224,7 +224,7 @@

    - + Handling of Functions that are Not Mathematically defined
    @@ -258,7 +258,7 @@

    - + Median of distributions
    @@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

    - + Handling of Floating-Point Infinity
    @@ -337,7 +337,7 @@ handling policies.

    - + Scale, Shape and Location
    @@ -364,7 +364,7 @@ functions, they can be added if required.

    - + Notes on Implementation of Specific Functions & Distributions
    @@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
    - + Rational Approximations Used
    @@ -419,7 +419,7 @@ to the "true" minimax solution.

    - + Representation of Mathematical Constants
    @@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
    - + Thread safety
    @@ -505,7 +505,7 @@ the right thing here at some point.

    - + Sources of Test Data
    @@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

    - + Creating and Managing the Equations
    @@ -731,7 +731,7 @@ done HTML: this needs further investigation.

    - + Producing Graphs
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index 2090e5b22..b7d465324 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
    - + Motivation

    @@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

    - + The Approximation
    @@ -161,7 +161,7 @@

    - + Computing the Coefficients
    @@ -205,7 +205,7 @@ multiplied by F as the last step.

    - + Choosing the Right Parameters
    @@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index be4a79b39..c8bac29dd 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
    - + General references
    @@ -98,7 +98,7 @@ Library (version 2), Walter E. Brown

    - + Calculators

    @@ -120,7 +120,7 @@ Binomial Probability Distribution Calculator.

    - + Other Libraries

    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index 33d883df3..59d52ae16 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

    - + The Impossibility of Zero Error
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index d85472e29..04958150d 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

    - + The Remez Method
    @@ -174,7 +174,7 @@
    - + Remez Step 1
    @@ -205,7 +205,7 @@ to 5.6x10-4.

    - + Remez Step 2
    @@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

    - + Iteration

    @@ -250,7 +250,7 @@ remez-4

    - + Rational Approximations
    @@ -299,7 +299,7 @@ number of terms overall.

    - + Practical Considerations
    @@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

    - + Remez Method Checklist
    @@ -461,7 +461,7 @@
    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist.html b/doc/sf_and_dist/html/math_toolkit/dist.html index b60ef2dd8..a97c7ccd1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist.html @@ -38,7 +38,7 @@ are Objects

    Generic operations common to all distributions are non-member functions
    -
    Complements +
    Complements are supported too - and when to use them
    Parameters can be calculated
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index d5860daa4..b53948160 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms
    - + Finding the Location and Scale for Normal and similar distributions
    @@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
    - + find_location function
    @@ -80,7 +80,7 @@ }} // namespaces
    - + find_scale function
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index 1b5f007c1..26bb97928 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

    - + Member Functions
    @@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ exception and make an error message available.

    - + Accuracy

    @@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

    - + Implementation

    @@ -327,7 +327,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index 491b29d89..c2c7bf5ee 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

      - + Member Functions
      - + Constructor
      beta_distribution(RealType alpha, RealType beta);
      @@ -164,7 +164,7 @@
                   yellow in the graph above).
                 

      - + Parameter Accessors
      @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
      - + Parameter Estimators
      @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

      - + Non-member Accessor Functions
      @@ -263,7 +263,7 @@ Mathworld.

      - + Applications

      @@ -276,7 +276,7 @@ statistical inference.

      - + Related distributions
      @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

      - + Accuracy

      @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

      - + Implementation

      @@ -594,7 +594,7 @@

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index 97ae49259..d5488567e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

    - + Member Functions
    - + Construct
    binomial_distribution(RealType n, RealType p);
    @@ -183,7 +183,7 @@
                 otherwise calls domain_error.
               

    - + Accessors
    RealType success_fraction() const;
    @@ -199,7 +199,7 @@
                 was constructed.
               

    - + Lower Bound on the Success Fraction
    @@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

    - + Upper Bound on the Success Fraction
    @@ -383,7 +383,7 @@
    - + Estimating the Number of Trials Required for a Certain Number of Successes
    @@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

    - + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

    - + Non-member Accessors
    @@ -622,7 +622,7 @@
    - + Examples

    @@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

    - + Accuracy

    @@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -884,7 +884,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index 7075a8642..5cf012f0c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

      - + Accuracy

      @@ -157,7 +157,7 @@ have very low error rates.

      - + Implementation

      @@ -273,7 +273,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index f8e1ecd4e..71b56c55f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

      - + Member Functions
      @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

      - + Non-member Accessors
      @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

      - + Examples

      @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

      - + Accuracy

      @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

      - + Implementation

      @@ -379,7 +379,7 @@ independent, normally distributed random

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index bb6810328..7510b2969 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

      - + Member Functions
      @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

      - + Non-member Accessors
      @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -122,7 +122,7 @@ should have very low error rates.

      - + Implementation

      @@ -283,7 +283,7 @@

    - + references
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index 95e3e9be6..ddc88fc52 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

      - + Member Functions
      @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

      - + Accuracy

      @@ -154,7 +154,7 @@ very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index 38f86814b..22f8a7d42 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

      - + Member Functions
      @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

      - + Non-member Accessors
      @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

      - + Accuracy

      @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index 9af0f4991..94b00b7ea 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

      - + Member Functions
      @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index 5625bfe1d..a8765998c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

      - + Related Distributions
      @@ -206,12 +206,12 @@
    - + Member Functions
    - + Constructor
    geometric_distribution(RealType p);
    @@ -226,7 +226,7 @@
                 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -253,7 +253,7 @@
                 Binomial Distribution for more discussion.
               

    - + Lower Bound on success_fraction Parameter p
    @@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on success_fraction Parameter p
    @@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -415,7 +415,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -463,7 +463,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -611,7 +611,7 @@
    - + Accuracy

    @@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index 6061854ca..d13633da1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

    - + Member Functions
    @@ -131,7 +131,7 @@ from the population N.

    - + Non-member Accessors
    @@ -185,7 +185,7 @@
    - + Accuracy

    @@ -211,7 +211,7 @@ meaningless for N >= 1015.

    - + Testing

    @@ -223,7 +223,7 @@ this implementation and NTL::RR.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index 5a54cb36e..6d774f866 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

    - + Member Functions
    @@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

    - + Non-member Accessors
    @@ -255,7 +255,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

    - + Implementation

    @@ -452,7 +452,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index 9baec5505..d13597a41 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

      - + Member Functions
      @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

      - + Non-member Accessors
      @@ -184,7 +184,7 @@

    - + Accuracy

    @@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index 634d6abd5..eec25207f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -146,7 +146,7 @@ the __wald_distrib (where mean μ is unity) is also provided.

    - + Member Functions
    @@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

    - + Non-member Accessors
    @@ -201,7 +201,7 @@

    - + Accuracy

    @@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    @@ -390,7 +390,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index 1335d19e9..dcffa210f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

      - + Member Functions
      @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

      - + Accuracy

      @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

      - + Implementation

      @@ -329,7 +329,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index 17239762c..06b8c353d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

      - + Member Functions
      @@ -98,7 +98,7 @@ Returns the scale of this distribution.

      - + Non-member Accessors
      @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

      - + Accuracy

      @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

      - + Implementation
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index 1b3625af3..a6e01275b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index a622c52e7..6b39feaa4 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

      - + Member Functions
      @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

      - + Non-member Accessors
      @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

      - + Accuracy

      @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

      - + Tests

      @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index 484daf96b..908286e84 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

      - + Member Functions
      @@ -183,7 +183,7 @@ == q.

      - + Non-member Accessors
      @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

      - + Accuracy

      @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

      - + Tests

      @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index 1d5abd255..8c719acb6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

      - + Member Functions
      @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

      - + Non-member Accessors
      @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

      - + Tests

      @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index 4417b3832..ccdd6425e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

      - + Member Functions
      @@ -111,7 +111,7 @@ which this object was constructed.

      - + Non-member Accessors
      @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

      - + Accuracy

      @@ -255,7 +255,7 @@ epsilon.

      - + Tests

      @@ -270,7 +270,7 @@ least 50 decimal places.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index 4ce39f7e0..e9740ce76 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

      - + Related Distributions
      @@ -195,12 +195,12 @@
      - + Member Functions
      - + Construct
      negative_binomial_distribution(RealType r, RealType p);
      @@ -216,7 +216,7 @@
                   <= 1.
                 

      - + Accessors
      RealType success_fraction() const; // successes / trials (0 <= p <= 1)
      @@ -237,7 +237,7 @@
                   Distribution for more discussion.
                 

      - + Lower Bound on Parameter p
      @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

      - + Upper Bound on Parameter p
      @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

      - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
      @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

      - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
      @@ -457,7 +457,7 @@ probability of observing more than k failures.

      - + Non-member Accessors
      @@ -606,7 +606,7 @@

    - + Accuracy

    @@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index 0726ed4fa..d49fd5b6d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

    - + Member Functions
    @@ -109,7 +109,7 @@ be used generically).

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

    - + Accuracy

    @@ -139,7 +139,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index 13b4ea47e..ab5389aea 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

    - + Related distributions
    - + Member Functions
    @@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

    - + Non-member Accessors
    @@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ zero) see also why complements?.

    - + Implementation

    @@ -318,7 +318,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index 194066da2..bf2a15aed 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
    - + Member Functions
    @@ -131,7 +131,7 @@ Returns the mean of this distribution.

    - + Non-member Accessors
    @@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

    - + Accuracy

    @@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index 54aaaac88..28ee371bc 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

    - + Related distributions
    @@ -102,7 +102,7 @@ distribution.

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

    - + Accuracy

    @@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

    - + Implementation

    @@ -320,7 +320,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index 342735a60..0fe1e5f64 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

      - + Member Functions
      @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

      - + Non-member Accessors
      @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

      - + Examples

      @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

      - + Accuracy

      @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index df6b55058..1ed3e5f49 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

      - + Member Functions
      @@ -163,7 +163,7 @@ (default+1).

      - + Non-member Accessors
      @@ -184,7 +184,7 @@ range is lower <= x <= upper.

      - + Accuracy

      @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

      - + Implementation

      @@ -378,7 +378,7 @@ Calculate and plot probability distributions

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index d278361a9..d2ec5b706 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

        - + Member Functions
        @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

        - + Non-member Accessors
        @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

        - + Accuracy

        @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index ce335ab34..f694871d8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

        - + Related distributions
        @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

        - + Member Functions
        @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

        - + Non-member Accessors
        @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

        - + Accuracy

        @@ -170,7 +170,7 @@ as such should have very low error rates.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index 573c8329e..a562c8c79 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

        - + Function Index
          @@ -94,7 +94,7 @@
        - + Conceptual Index
          @@ -180,7 +180,7 @@
        - + Cumulative Distribution Function
        template <class RealType, class Policy>
        @@ -203,7 +203,7 @@
                   cdf
                 

        - + Complement of the Cumulative Distribution Function
        template <class Distribution, class RealType>
        @@ -243,7 +243,7 @@
                   complement is useful and when it should be used.
                 

        - + Hazard Function
        template <class RealType, class Policy>
        @@ -271,7 +271,7 @@
                   

      - + Cumulative Hazard Function
      template <class RealType, class Policy>
      @@ -298,7 +298,7 @@
                 

    - + mean
    template<class RealType, class Policy>
    @@ -313,7 +313,7 @@
               distribution).
             

    - + median
    template<class RealType, class Policy>
    @@ -323,7 +323,7 @@
               Returns the median of the distribution dist.
             

    - + mode
    template<class RealType, Policy>
    @@ -337,7 +337,7 @@
               if the distribution does not have a defined mode.
             

    - + Probability Density Function
    template <class RealType, class Policy>
    @@ -365,7 +365,7 @@
               pdf
             

    - + Range
    template<class RealType, class Policy>
    @@ -375,7 +375,7 @@
               Returns the valid range of the random variable over distribution dist.
             

    - + Quantile
    template <class RealType, class Policy>
    @@ -405,7 +405,7 @@
               quantile
             

    - + Quantile from the complement of the probability.

    @@ -450,7 +450,7 @@ survival_inv

    - + Standard Deviation
    template <class RealType, class Policy>
    @@ -464,7 +464,7 @@
               if the distribution does not have a defined standard deviation.
             

    - + support
    template<class RealType, class Policy>
    @@ -481,7 +481,7 @@
               where the pdf is zero, and the cdf zero or unity.
             

    - + Variance
    template <class RealType, class Policy>
    @@ -495,7 +495,7 @@
               if the distribution does not have a defined variance.
             

    - + Skewness
    template <class RealType, class Policy>
    @@ -509,7 +509,7 @@
               if the distribution does not have a defined skewness.
             

    - + Kurtosis
    template <class RealType, class Policy>
    @@ -551,7 +551,7 @@
               'Proper' kurtosis can have a value from zero to + infinity.
             

    - + Kurtosis excess
    template <class RealType, Policy>
    @@ -585,7 +585,7 @@
               The kurtosis excess of a normal distribution is zero.
             

    - + P and Q

    @@ -595,7 +595,7 @@ returned by these functions.

    - + Percent Point Function or Percentile

    @@ -603,7 +603,7 @@ the Quantile.

    - + Inverse CDF Function.

    @@ -611,14 +611,14 @@ Quantile.

    - + Inverse Survival Function.

    The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

    - + Probability Mass Function

    @@ -631,7 +631,7 @@ applies to continuous distributions.

    - + Lower Critical Value.

    @@ -640,7 +640,7 @@ the Quantile.

    - + Upper Critical Value.

    @@ -650,7 +650,7 @@ complement of the probability.

    - + Survival Function

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index d796df805..8dcf92dd6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

    - + Adding Additional Location and Scale Parameters
    @@ -55,7 +55,7 @@ functions.

    - + An "any_distribution" class
    @@ -91,7 +91,7 @@ investigation.

    - + Higher Level Hypothesis Tests
    @@ -111,7 +111,7 @@ expected_mean.

    - + Integration With Statistical Accumulators
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html index 3c6685e99..15dcf4614 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html @@ -36,7 +36,7 @@ are Objects
    Generic operations common to all distributions are non-member functions
    -
    Complements +
    Complements are supported too - and when to use them
    Parameters can be calculated
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html index 9d7816398..0d81ff770 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html @@ -33,7 +33,7 @@ are Objects
    Generic operations common to all distributions are non-member functions
    -
    Complements +
    Complements are supported too - and when to use them
    Parameters can be calculated
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html index 57b9e3db6..83a3c54e0 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html @@ -24,10 +24,10 @@
    -

    +

    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 diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index 6fb0a071e..205e0cc4f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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

    - + Using Binomial distribution moments
    @@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
    - + Quantiles

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index d1e3627e7..3b6a4f08c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

    - + Confidence intervals as a function of the number of observations
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index a57d68095..799afbf7f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
    negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
     
    - + Default arguments to distribution constructors.
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index 40b059a5f..f5461c6a3 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
    - + Controlling Error Handling from find_location
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index ae8c8e70d..c09bb36b5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

    - + Using find_location and find_scale to meet dispensing and measurement specifications
    @@ -193,7 +193,7 @@

    - + Using Cauchy-Lorentz instead of normal distribution
    @@ -305,7 +305,7 @@ of estimating these intervals.

    - + Changing the scale or standard deviation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index 10f9c5c63..0848a8514 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
    - + Controlling how Errors from find_scale are handled
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index d98d481f1..e36ea7d20 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

    - + Throwing a dice
    @@ -288,7 +288,7 @@ replicated in C++ if desired.

    - + Surveying customers to find one with a faulty product
    @@ -333,7 +333,7 @@

    - + Basket Ball Shooters
    @@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

    - + Estimating failures
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index f168e29e9..d015686c5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

    - + Traditional Tables
    @@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

    - + Standard deviations either side of the Mean
    @@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

    - + Some simple examples
    - + Life of light bulbs
    @@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + How many onions?
    @@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + Packing beef
    @@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

    - + Length of bolts
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index f9b04ad40..853af19a1 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
    - + Supported C99 Functions
    @@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
    - + Quick Reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index 12a696950..18888d6b3 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

    - + Usage Recomendations

    @@ -295,7 +295,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -391,7 +391,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -520,7 +520,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index 26398d4e1..ed76cf77a 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
    - + Supported TR1 Functions
    @@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
    - + Quick Reference
    // [5.2.1.1] associated Laguerre polynomials:
    @@ -494,7 +494,7 @@
             for the full template (header only) version of this function.
           

    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index 61e362429..b6b8e6f11 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
    - + Building a Library (shared, dynamic .dll or static .lib)
    @@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

    - + Building the Examples
    @@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

    - + Building the Tests
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index 877178851..a27b3e96d 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
    - + boost/math
    @@ -73,7 +73,7 @@
    - + boost/libs
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index 4a57bac6b..0b99d89fa 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
    - + Quick Reference
    @@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

    - + Rationale

    @@ -766,7 +766,7 @@

    - + Finding More Information
    @@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

    - + Domain Errors

    @@ -859,7 +859,7 @@ for more details.

    - + Evaluation at a pole

    @@ -897,7 +897,7 @@ for more details.

    - + Numeric Overflow

    @@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

    - + Numeric Underflow

    @@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

    - + Denormalisation Errors

    @@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

    - + Evaluation Errors

    @@ -1001,7 +1001,7 @@ for more details.

    - + Indeterminate Result Errors

    @@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

    - + Rounding Errors

    @@ -1068,7 +1068,7 @@ for more details.

    - + Errors from typecasts

    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index 57ec8a964..b79f320af 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -28,7 +28,7 @@ New

    - + Boost-1.47
      @@ -45,7 +45,7 @@
    - + Boost-1.46.1
    • @@ -53,7 +53,7 @@ #5113.
    - + Boost-1.46.0
      @@ -68,7 +68,7 @@
    - + Boost-1.45.0
      @@ -85,7 +85,7 @@
    - + Boost-1.44.0
      @@ -99,7 +99,7 @@
    - + Boost-1.41.0
    • @@ -107,7 +107,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -144,7 +144,7 @@
    - + Boost-1.38.0
      @@ -156,14 +156,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -196,7 +196,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -228,7 +228,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -242,7 +242,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -270,7 +270,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -306,7 +306,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index 0fc166528..c745973e8 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

    - + Statistical Distributions
    @@ -56,7 +56,7 @@ tests.

    - + Mathematical Special Functions
    @@ -83,7 +83,7 @@ double.

    - + Implementation Toolkit
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index cf3e6bc78..74746de15 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

    - + Shortcuts
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index ce75c9d7e..4d9e7b960 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

    - + Usage Recomendations
    @@ -297,7 +297,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -393,7 +393,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -522,7 +522,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index dc33f784b..4f118af59 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

    - + Comparison to GSL-1.13 and Cephes
    @@ -344,7 +344,7 @@

    - +INF [1] + +INF [1]

    @@ -423,7 +423,7 @@

    -

    17.89[2]

    +

    17.89[2]

    (4.248e-005s)

    @@ -548,11 +548,11 @@ -

    [1] +

    [1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

    -

    [2] +

    [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 @@ -563,7 +563,7 @@

    - + Comparison to the R and DCDFLIB Statistical Libraries on Windows
    @@ -659,7 +659,7 @@

    -

    67.66[1]

    +

    67.66[1]

    (3.366e-004s)

    @@ -1088,7 +1088,7 @@

    -

    3.60[2]

    +

    3.60[2]

    (5.987e-007s)

    @@ -1317,7 +1317,7 @@

    -

    43.43[3]

    +

    43.43[3]

    (3.732e-004s)

    @@ -1387,7 +1387,7 @@

    -

    393.90[4]

    +

    393.90[4]

    (2.673e-002s)

    @@ -1523,7 +1523,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (4.411e-004s)

    @@ -1809,28 +1809,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. @@ -1839,7 +1839,7 @@


    - + Comparison to the R Statistical Library on Linux
    @@ -1934,7 +1934,7 @@

    -

    30.51[1]

    +

    30.51[1]

    (3.616e-004s)

    @@ -2363,7 +2363,7 @@

    -

    2.20[2]

    +

    2.20[2]

    (3.522e-007s)

    @@ -2592,7 +2592,7 @@

    -

    25.92[3]

    +

    25.92[3]

    (4.407e-004s)

    @@ -2662,7 +2662,7 @@

    -

    144.91[4]

    +

    144.91[4]

    (3.214e-002s)

    @@ -2798,7 +2798,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (5.916e-004s)

    @@ -3084,28 +3084,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index 853225b2c..edb010a7c 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

    - + real

    @@ -89,7 +89,7 @@ = 68.1584.

    - + integer_round_outwards

    @@ -143,7 +143,7 @@ in each tail.

    - + integer_round_inwards

    @@ -202,7 +202,7 @@ in each tail.

    - + integer_round_down

    @@ -210,7 +210,7 @@ or a lower quantile.

    - + integer_round_up

    @@ -218,7 +218,7 @@ a lower quantile.

    - + integer_round_nearest

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index 76cf7099b..e78cd90b1 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

    - + Available Actions When an Error is Raised
    @@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

    - + throw_on_error

    @@ -174,7 +174,7 @@

    - + errno_on_error

    @@ -289,7 +289,7 @@

    - + ignore_error

    @@ -402,7 +402,7 @@

    - + user_error

    @@ -451,7 +451,7 @@ here.

    - + Kinds of Error Raised
    @@ -691,7 +691,7 @@
    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index 9c3f58fa2..bc9f46fb6 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index c5fa7db8f..c20b59e77 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

    - + BOOST_MATH_DOMAIN_ERROR_POLICY

    @@ -71,7 +71,7 @@ ignore_error or user_error.

    - + BOOST_MATH_POLE_ERROR_POLICY

    @@ -81,7 +81,7 @@ ignore_error or user_error.

    - + BOOST_MATH_OVERFLOW_ERROR_POLICY

    @@ -91,7 +91,7 @@ ignore_error or user_error.

    - + BOOST_MATH_ROUNDING_ERROR_POLICY

    @@ -101,7 +101,7 @@ ignore_error or user_error.

    - + BOOST_MATH_EVALUATION_ERROR_POLICY

    @@ -111,7 +111,7 @@ ignore_error or user_error.

    - + BOOST_MATH_UNDERFLOW_ERROR_POLICY

    @@ -121,7 +121,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DENORM_ERROR_POLICY

    @@ -131,7 +131,7 @@ ignore_error or user_error.

    - + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

    @@ -142,7 +142,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DIGITS10_POLICY

    @@ -153,7 +153,7 @@ recommended that you change this from the default.

    - + BOOST_MATH_PROMOTE_FLOAT_POLICY

    @@ -165,7 +165,7 @@ off.

    - + BOOST_MATH_PROMOTE_DOUBLE_POLICY

    @@ -177,7 +177,7 @@ off.

    - + BOOST_MATH_DISCRETE_QUANTILE_POLICY

    @@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

    - + BOOST_MATH_ASSERT_UNDEFINED_POLICY

    @@ -201,7 +201,7 @@ whether or not a particular property is well defined.

    - + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

    @@ -210,7 +210,7 @@ Defaults to 1000000.

    - + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

    @@ -219,7 +219,7 @@ Defaults to 200.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index 1df807707..945d76e52 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

    - + Other Rounding Policies are Available
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index c3097b186..dc0f612f3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -105,7 +105,7 @@

    - + Testing

    @@ -114,7 +114,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -489,7 +489,7 @@ were found.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index 4199984e5..5d14bc76d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

    - + Ordinary Bessel Functions
    @@ -103,7 +103,7 @@ and is known as either a Bessel

    - + Modified Bessel Functions
    @@ -167,7 +167,7 @@ respectively:

    - + Spherical Bessel Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index 02cb6a160..9540a3f1f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -104,7 +104,7 @@

    - + Testing

    @@ -113,7 +113,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -321,7 +321,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index c503beb1b..b89502692 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
     
    - + Description

    @@ -92,7 +92,7 @@ for small x:

    - + Testing

    @@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

    - + Accuracy

    @@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index d71d7257a..dc985509f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index 9c4fb8660..d6dea6e35 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index aff8cf465..0cc97e17a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -231,7 +231,7 @@

    - + Testing

    @@ -241,7 +241,7 @@ this implementation.

    - + Implementation

    @@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

    - Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

    are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



    -

    [1] +

    [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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index 859824717..d8ba513fd 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

    - + Synopsis

    @@ -100,7 +100,7 @@ }} // namespaces

    - + Description

    @@ -216,7 +216,7 @@

    - + Testing

    @@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

    - + Accuracy

    @@ -393,7 +393,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index a9d87b2e0..83e4a8518 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

    - + Notation

    All variables are real numbers unless otherwise noted.

    - + Definition

    @@ -245,7 +245,7 @@

    - + Duplication Theorem

    @@ -256,7 +256,7 @@

    - + Carlson's Formulas

    @@ -273,7 +273,7 @@

    - + Numerical Algorithms
    @@ -287,7 +287,7 @@ integrals with satisfactory precisions.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index 7f33d9934..c41225042 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -202,7 +202,7 @@ slightly over the range [4,6].

    - + Testing

    @@ -217,7 +217,7 @@ check.

    - + Implementation

    @@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



    -

    [2] +

    [2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index b15f79b6c..85b3a3739 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -220,7 +220,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index cf4f69b52..207e7c9cc 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

    - + Accuracy

    @@ -99,14 +99,14 @@ function for larger arguments.

    - + Testing

    The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index 47f4b9bff..a50aba210 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

    - + Accuracy

    @@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

    - + Testing

    The spot tests for the double factorial use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index ae9766037..25f699a59 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    @@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

    - + Accuracy

    @@ -166,7 +166,7 @@ will be the same as for tgamma.

    - + Testing

    @@ -175,7 +175,7 @@ function handle those cases already.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index 1b9c83a79..534bc47a5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

    - + Accuracy

    @@ -79,14 +79,14 @@ function.

    - + Testing

    The spot tests for the falling factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index fdbbce695..ded401865 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

    - + Accuracy

    @@ -83,14 +83,14 @@ function.

    - + Testing

    The spot tests for the rising factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index d97ef7e9f..01284693b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -85,7 +85,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index 5b4ce131d..ce3627f30 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -80,7 +80,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index a5c83de6e..0c125553e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index 32dfc0584..45263021c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

    - + Accuracy

    @@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index 186afe59c..cd88923f2 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

    - + Synopsis

    @@ -49,7 +49,7 @@ }}

    - + Rationale and Usage
    @@ -91,7 +91,7 @@ Only 3 different products were actually computed.

    - + Return Type

    @@ -112,7 +112,7 @@

    - + Policies

    @@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Error Handling
    @@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
    - + Acknowledgements

    @@ -238,7 +238,7 @@ improving the implementation.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index 63acb6e32..21aa93aab 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

    - + Accuracy

    @@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index e8fd163bf..0eaae5e2e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index e66e983ef..8ed762d2b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

    - + Accuracy

    @@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index 9ca53e599..74f5fd594 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

    - + Accuracy

    Should have approximately 2-3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index bd5bca4f3..ec73f9ec4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

    - + Accuracy

    @@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index 396d21570..fde3ba018 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Almost identical to the incomplete beta function ibeta.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index 8dc22ffe5..9f6cf69e7 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

    - + Accuracy

    @@ -239,7 +239,7 @@ very small.

    - + Testing

    @@ -248,7 +248,7 @@ at 1000-bit precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index 30e23a666..cc42b16cf 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -158,7 +158,7 @@

    - + Accuracy

    @@ -865,7 +865,7 @@


    - + Testing

    @@ -883,7 +883,7 @@ have test data that is fully independent of the code.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index b375d71be..ce2d0b7f9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

    - + Description

    @@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -300,7 +300,7 @@ or 1.

    - + Testing

    @@ -324,7 +324,7 @@

    - + Implementation of ibeta_inv and ibetac_inv
    @@ -492,7 +492,7 @@ rapidly converges on the true value.

    - + Implementation of inverses on the a and b parameters
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index a66a8d088..67f1f559a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
    - + Synopsis

    @@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -100,7 +100,7 @@
               
             

    - + Accuracy

    @@ -525,7 +525,7 @@

    - + Testing

    @@ -540,7 +540,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index 1deae52dd..42eb726a3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

    - + Synopsis

    @@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -98,7 +98,7 @@
               
             

    - + Accuracy

    @@ -108,7 +108,7 @@ error functions.

    - + Testing

    @@ -131,7 +131,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index be6e1ccc0..0961f0483 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -77,7 +77,7 @@ T otherwise.

    - + Accuracy

    @@ -265,7 +265,7 @@ absolute error will remain very low.

    - + Testing

    @@ -275,7 +275,7 @@ see below).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index 093db5817..76f8cdb3a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -75,7 +75,7 @@ otherwise the return type is simply T1.

    - + Accuracy

    @@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index 21c373fdb..3bf189f39 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

    - + Description
    template <class T1, class T2> 
    @@ -107,7 +107,7 @@
               
             

    - + Accuracy

    @@ -317,7 +317,7 @@

    - + Testing

    @@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index a25cb14e3..37dd579c7 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -155,7 +155,7 @@

    - + Accuracy

    @@ -823,7 +823,7 @@

    - + Testing

    @@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

    - + Implementation

    @@ -1008,7 +1008,7 @@ by Temme (see references below).

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index 7e51c665d..58c872f31 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -168,7 +168,7 @@ 0.

    - + Accuracy

    @@ -182,7 +182,7 @@ functions.

    - + Testing

    @@ -206,7 +206,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index 036b37e78..c6117f4f2 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description

    @@ -93,7 +93,7 @@ T otherwise.

    - + Accuracy

    @@ -344,7 +344,7 @@

    - + Testing

    @@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index ab7b72a19..8e64398ee 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    template <class T>
    @@ -119,7 +119,7 @@
               it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
             

    - + Accuracy

    @@ -374,7 +374,7 @@

    - + Testing

    @@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index c5aaae694..acc5a6e73 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

    - + Synopsis

    @@ -51,7 +51,7 @@ }} // namespaces

    - + Description

    @@ -131,7 +131,7 @@

    - + Accuracy

    @@ -248,7 +248,7 @@ is very close to a root.

    - + Testing

    @@ -258,7 +258,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index 4433def92..39bbdf21a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -62,7 +62,7 @@ }} // namespaces

    - + Description

    @@ -205,7 +205,7 @@

    - + Accuracy

    @@ -422,7 +422,7 @@ is very close to a root.

    - + Testing

    @@ -432,7 +432,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index e00fb9eaa..5933d3f6d 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -295,7 +295,7 @@
     
     
     
    - + Accuracy

    @@ -676,7 +676,7 @@ given here.

    - + Testing

    @@ -686,7 +686,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index cc3929397..37f2e7c99 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

    - + Synopsis

    @@ -60,7 +60,7 @@ }} // namespaces

    - + Description

    @@ -150,7 +150,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

    - + Testing

    @@ -281,7 +281,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index cd18082a7..93c30ac28 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

    - + Synopsis

    @@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -80,7 +80,7 @@
               
             

    - + Accuracy

    @@ -229,7 +229,7 @@

    - + Testing

    @@ -244,7 +244,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/status/credits.html b/doc/sf_and_dist/html/math_toolkit/status/credits.html index 5a1795dc7..b749b1996 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/credits.html +++ b/doc/sf_and_dist/html/math_toolkit/status/credits.html @@ -7,6 +7,7 @@ + @@ -19,7 +20,7 @@


    -PrevUpHome +PrevUpHomeNext

    @@ -124,7 +125,7 @@
    -PrevUpHome +PrevUpHomeNext
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index 71ce32e54..7cdc88731 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -27,7 +27,7 @@ History and What's New

    - + Boost-1.47
      @@ -44,7 +44,7 @@
    - + Boost-1.46.1
    • @@ -52,7 +52,7 @@ #5113.
    - + Boost-1.46.0
      @@ -67,7 +67,7 @@
    - + Boost-1.45.0
      @@ -84,7 +84,7 @@
    - + Boost-1.44.0
      @@ -98,7 +98,7 @@
    - + Boost-1.41.0
    • @@ -106,7 +106,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -143,7 +143,7 @@
    - + Boost-1.38.0
      @@ -155,14 +155,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -195,7 +195,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -227,7 +227,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -241,7 +241,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -269,7 +269,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -305,7 +305,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index 3ff1e607d..230a42e9c 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

    - + tgamma
    • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
    - + Incomplete Beta
    • @@ -56,7 +56,7 @@ b (medium priority).
    - + Inverse Gamma
    • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
    - + Polynomials
    • @@ -74,7 +74,7 @@ not (Low Priority).
    - + Elliptic Integrals
      @@ -127,7 +127,7 @@
    - + Inverse Hyperbolic Functions
    @@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
    - + Statistical distributions
    @@ -146,7 +146,7 @@ for very large degrees of freedom?
    - + Feature Requests

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index f35d00437..216a8f877 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -78,7 +78,7 @@ }}} // namespaces

    - + Description

    @@ -178,7 +178,7 @@ a continued fraction for convergence.

    - + Implementation

    @@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index 9c44c02b5..a2c4115f2 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

    - + Synopsis

    @@ -59,7 +59,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index f3defff62..7821563b7 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

    - + synopsis

    @@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

    - + Description

    @@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index d160aa46b..d1196b32d 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

    - + synopsis

    @@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

    - + Description

    @@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index 8d55d8e4d..96f750ea1 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

    - + Synopsis

    @@ -62,7 +62,7 @@ }}} // namespaces

    - + Description

    @@ -206,7 +206,7 @@

    - + Newton Raphson Method
    @@ -224,7 +224,7 @@ iteration.

    - + Halley's Method
    @@ -246,7 +246,7 @@ iteration.

    - + Schroeder's Method
    @@ -270,7 +270,7 @@ iteration.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index 9ea6cc62b..a8646d851 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

    - + Synopsis

    @@ -144,7 +144,7 @@ }}} // namespaces

    - + Description

    @@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

    - + Bisection
    template <class F, class T, class Tol>
    @@ -280,7 +280,7 @@
               tol was satisfied.
             

    - + Bracket and solve
    @@ -388,7 +388,7 @@ was satisfied.

    - + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
    @@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index 2c7f0a162..d04e8a200 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -70,7 +70,7 @@ }}} // namespaces

    - + Description

    @@ -127,7 +127,7 @@ summation in this way.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index c593fe0d4..7765280da 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

    - + Synopsis

    @@ -38,7 +38,7 @@

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index e1f365126..66b2ee869 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

    - + Synopsis

    @@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

    - + Description
    template <class T>
    @@ -157,7 +157,7 @@
               is mainly a debugging/development aid (and a good place for a breakpoint).
             

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index 1d642e9a9..ea4388994 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

    - + Synopsis

    @@ -103,7 +103,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index 228407e56..c26eeb677 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

    - + Synopsis
    namespace boost{ namespace math{ namespace tools{
    @@ -147,7 +147,7 @@
     }}} // namespaces
     
    - + Description

    @@ -177,7 +177,7 @@

    - + Example 1: Output Data for Graph Plotting
    @@ -211,7 +211,7 @@

    - + Example 2: Creating Test Data
    @@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

    - + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
    @@ -482,7 +482,7 @@ of a and z.

    - + reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index ae211d608..01e42d170 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@

    - + Real concept

    @@ -84,7 +84,7 @@ declaration.

    - + Testing the real concept

    @@ -130,7 +130,7 @@ double, also tests real_concept.

    - + Distribution Concept

    @@ -166,7 +166,7 @@ class for distribution types.

    - + Testing the distribution concept

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index 4a50065af..ee94b9362 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

    - + Basic Arithmetic Requirements
    @@ -1035,7 +1035,7 @@
    - + Standard Library Support Requirements
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html index 93a8d01e9..601c64d62 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html @@ -35,7 +35,7 @@
    Design Rationale
    - + Synopsis
    namespace boost{ namespace math
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    index f2d3300bb..efcda25ba 100644
    --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    @@ -27,7 +27,7 @@
     Examples
     
     
    - + Simple example with std::stringstreams
    @@ -64,7 +64,7 @@

    - + Use with lexical_cast
    @@ -149,7 +149,7 @@ s >> input_value;
    - + Use with serialization archives
    @@ -194,7 +194,7 @@ archives do not check the stream state.

    - + Other examples
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html index b5b89c295..33e92352b 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html @@ -27,7 +27,7 @@ Introduction
    - + The Problem

    @@ -51,7 +51,7 @@ assert(inf == y); // Fails!

    - + The Solution

    @@ -119,7 +119,7 @@

    - + C++0X standard for output of infinity and NaN
    @@ -131,7 +131,7 @@ portable.

    - + C99 standard for output of infinity and NaN
    @@ -221,7 +221,7 @@ formats.

    - + Signaling NaNs
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html index 12fc852e1..cda0dbf68 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html @@ -27,7 +27,7 @@ Reference
    - + The Facet nonfinite_num_put
    @@ -138,7 +138,7 @@ numbers is simply delegated to the normal std::num_put.

    - + Facet nonfinite_num_get
    @@ -254,7 +254,7 @@ on a platform that lacks NaN, then the fail bit of the stream is set.

    - + Flags

    @@ -284,7 +284,7 @@ and live in the namespace boost::math.

    - + legacy

    @@ -392,7 +392,7 @@ library, and also string representations used by other programming languages.

    - + signed_zero

    @@ -412,7 +412,7 @@ as negative zero, as do most implementations of std::num_get.

    - + trap_infinity

    @@ -437,7 +437,7 @@ (See Design Rationale below for a discussion of this inconsistency.)

    - + trap_nan

    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index 056b84bfa..763066f45 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -28,7 +28,7 @@ Infinities and NaNs

    - + Synopsis
    #define FP_ZERO        /* implementation specific value */
    @@ -58,7 +58,7 @@
             to use these functions.
           

    - + Description

    @@ -217,7 +217,7 @@ infinite, NaN, or denormalised).

    - + Floating-point format
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index 37c253b83..6abcd9b20 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

    - + Synopsis

    @@ -50,7 +50,7 @@ }} // namespaces

    - + Description - float_advance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index 2cd0ea1ee..f0f5ad89c 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

    - + Synopsis

    @@ -52,7 +52,7 @@ }} // namespaces

    - + Description - float_distance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index 9782bf0e8..4c04175c7 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_next
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index 0ec978cc3..8bb0f03ac 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_prior
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index 45c8a3321..57a14ad36 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - nextafter
    @@ -76,7 +76,7 @@ returns an overflow_error.

    - + Examples - nextafter
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index c8adf9797..474fa4a0f 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -28,7 +28,7 @@ Functions
    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description
    template<class T> 
    @@ -65,6 +65,16 @@
             Returns a non-zero value if the sign bit is set in variable x,
             otherwise 0.
           

    +
    + + + + + +
    [Important]Important

    + The return value from this function is zero or not-zero + and not zero or one. +

    template <class T>
     inline int sign (const T& z);
     
    @@ -109,7 +119,7 @@ may be the only portable way to ensure that the sign bit is changed.

    - + Sign bits

    @@ -130,7 +140,7 @@ it may be necessary to explicitly specialize then for UDT type T.

    - + Examples
    signbit(3.5) is zero (or false)
    @@ -143,7 +153,7 @@
     changesign(-1.8) is 1.8
     
    - + Portability

    diff --git a/doc/sf_and_dist/sign.qbk b/doc/sf_and_dist/sign.qbk index 3a1483661..559820dba 100644 --- a/doc/sf_and_dist/sign.qbk +++ b/doc/sf_and_dist/sign.qbk @@ -28,6 +28,8 @@ 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 inline int sign (const T& z); diff --git a/test/S_.ipp b/test/S_.ipp index 916b983f9..6df30043f 100644 --- a/test/S_.ipp +++ b/test/S_.ipp @@ -50,7 +50,7 @@ inline char_literal_helper make_literal_helper(char c, wchar_t wc) return char_literal_helper(c, wc); } -inline string_literal_helper make_literal_helper(char* s, wchar_t* ws) +inline string_literal_helper make_literal_helper(const char* s, const wchar_t* ws) { return string_literal_helper(s, ws); } diff --git a/test/test_sign.cpp b/test/test_sign.cpp index ee869a667..0cc90a1b9 100644 --- a/test/test_sign.cpp +++ b/test/test_sign.cpp @@ -84,7 +84,7 @@ void test_spots(RealType /*T*/, const char* /*type_name*/) BOOST_CHECK_EQUAL((boost::math::copysign)(b, a), RealType(1)); BOOST_CHECK_EQUAL((boost::math::copysign)(c, a), RealType(1)); // BOOST_CHECK_EQUAL((boost::math::changesign)(a), -a); // NaN comparison fails always! - BOOST_CHECK_EQUAL((boost::math::signbit)((boost::math::changesign)(a)), 1); + BOOST_CHECK((boost::math::signbit)((boost::math::changesign)(a)) != 0); a = -std::numeric_limits::quiet_NaN(); BOOST_CHECK((boost::math::signbit)(a) != 0); diff --git a/test/test_signed_zero.cpp b/test/test_signed_zero.cpp index 87449ab19..18de8e5fa 100644 --- a/test/test_signed_zero.cpp +++ b/test/test_signed_zero.cpp @@ -55,6 +55,8 @@ template void signed_zero_test_impl() ValType a1 = static_cast(0); ValType a2 = (changesign)(static_cast(0)); + BOOST_CHECK(!(signbit)(a1)); + BOOST_CHECK((signbit)(a2)); ss << a1 << ' ' << a2; From bf6409b32958e8c2172cecd49917175fe44031d9 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Fri, 22 Apr 2011 09:56:31 +0000 Subject: [PATCH 61/82] Added example of concise imbue of cout and cin. [SVN r71415] --- example/nonfinite_facet_simple.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/example/nonfinite_facet_simple.cpp b/example/nonfinite_facet_simple.cpp index 0ef924b79..363f98f23 100644 --- a/example/nonfinite_facet_simple.cpp +++ b/example/nonfinite_facet_simple.cpp @@ -46,6 +46,10 @@ using std::string; using std::istringstream; #include +using std::numeric_limits; + +#include +using std::locale; #include // from Johan Rade Floating Point Utilities. @@ -75,7 +79,10 @@ int main () std::locale C99_out_locale (default_locale, new boost::math::nonfinite_num_put); // and imbue the cout stream with the new locale. cout.imbue (C99_out_locale); - + + // Or for the same effect more concisely: + cout.imbue (locale(locale(), new boost::math::nonfinite_num_put)); + // Output using the new locale cout << "Using C99_out_locale " << endl; cout << "+std::numeric_limits::infinity() = " << plus_infinity << endl; @@ -104,9 +111,10 @@ int main () { // Now retry using C99 facets. // Create a new input locale and add the nonfinite_num_get facet. std::locale C99_in_locale (default_locale, new boost::math::nonfinite_num_get); - // imbue the stream with the C99 input locale. - // Create an input stream which will provide "inf" + + // Create an input stream which will provide "inf". std::istringstream iss (inf); + // Imbue the stream with the C99 input locale. iss.imbue (C99_in_locale); // Create a double ready to take the input, From fb1f3a9bf68f548646dca9b601f3304878c12d49 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Fri, 22 Apr 2011 17:24:53 +0000 Subject: [PATCH 62/82] Fix Intel/Linux regressions. [SVN r71420] --- test/test_basic_nonfinite.cpp | 24 ++++++++++++++++++++++-- test/test_lexical_cast.cpp | 10 ++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/test/test_basic_nonfinite.cpp b/test/test_basic_nonfinite.cpp index fe6222d54..1776abe82 100644 --- a/test/test_basic_nonfinite.cpp +++ b/test/test_basic_nonfinite.cpp @@ -1,4 +1,5 @@ + // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -80,6 +81,9 @@ void basic_test_finite() template void basic_test_finite_impl() { + if((std::numeric_limits::has_infinity == 0) || (std::numeric_limits::infinity() == 0)) + return; + std::locale old_locale; std::locale tmp_locale(old_locale, new nonfinite_num_put); std::locale new_locale(tmp_locale, new nonfinite_num_get); @@ -129,6 +133,9 @@ void basic_test_inf() template void basic_test_inf_impl() { + if((std::numeric_limits::has_infinity == 0) || (std::numeric_limits::infinity() == 0)) + return; + std::locale old_locale; std::locale tmp_locale(old_locale, new nonfinite_num_put); std::locale new_locale(tmp_locale, new nonfinite_num_get); @@ -139,6 +146,9 @@ template void basic_test_inf_impl() ValType a1 = std::numeric_limits::infinity(); ValType a2 = -std::numeric_limits::infinity(); + BOOST_CHECK((boost::math::isinf)(a1)); + BOOST_CHECK((boost::math::isinf)(a2)); + ss << a1 << ' ' << a2; std::basic_string s = S_("inf -inf"); @@ -173,6 +183,9 @@ void basic_test_nan() template void basic_test_nan_impl() { + if((std::numeric_limits::has_quiet_NaN == 0) || (std::numeric_limits::quiet_NaN() == 0)) + return; + std::locale old_locale; std::locale tmp_locale(old_locale, new nonfinite_num_put); std::locale new_locale(tmp_locale, new nonfinite_num_get); @@ -181,11 +194,13 @@ template void basic_test_nan_impl() ss.imbue(new_locale); ValType a1 = std::numeric_limits::quiet_NaN(); - ValType a2 = -std::numeric_limits::quiet_NaN(); + ValType a2 = (boost::math::changesign)(std::numeric_limits::quiet_NaN()); ValType a3 = std::numeric_limits::signaling_NaN(); - ValType a4 = -std::numeric_limits::signaling_NaN(); + ValType a4 = (boost::math::changesign)(std::numeric_limits::signaling_NaN()); ss << a1 << ' ' << a2 << ' ' << a3 << ' ' << a4; + BOOST_CHECK((boost::math::isnan)(a1) && (boost::math::isnan)(a2) && (boost::math::isnan)(a3) && (boost::math::isnan)(a4)); + std::basic_string s = S_("nan -nan nan -nan"); BOOST_CHECK(ss.str() == s); @@ -226,6 +241,9 @@ void basic_test_format() template void basic_test_format_impl() { + if((std::numeric_limits::has_infinity == 0) || (std::numeric_limits::infinity() == 0)) + return; + std::locale old_locale; std::locale tmp_locale(old_locale, new nonfinite_num_put); std::locale new_locale(tmp_locale, new nonfinite_num_get); @@ -235,6 +253,8 @@ template void basic_test_format_impl() ValType a = std::numeric_limits::infinity(); + BOOST_CHECK((boost::math::isinf)(a)); + ss << std::setw(6) << a; // Expect right justified in field of six, so 3 leading spaces. ss << '|'; ss << std::setw(2) << a; // Too narrow for "inf", but should still be "inf". diff --git a/test/test_lexical_cast.cpp b/test/test_lexical_cast.cpp index ce9699e5e..fae34304e 100644 --- a/test/test_lexical_cast.cpp +++ b/test/test_lexical_cast.cpp @@ -1,3 +1,4 @@ + // Copyright (c) 2006 Johan Rade // Copyright (c) 2011 Paul A. Bristow incorporated Boost.Math @@ -52,6 +53,11 @@ BOOST_AUTO_TEST_CASE(lexical_cast_test) template void lexical_cast_test_impl() { + if((std::numeric_limits::has_infinity == 0) || (std::numeric_limits::infinity() == 0)) + return; + if((std::numeric_limits::has_quiet_NaN == 0) || (std::numeric_limits::quiet_NaN() == 0)) + return; + std::locale old_locale; std::locale tmp_locale(old_locale, new nonfinite_num_put(signed_zero)); @@ -66,8 +72,8 @@ template void lexical_cast_test_impl() ValType a6 = (changesign)(static_cast(0)); ValType a7 = static_cast(-57); ValType a8 = -std::numeric_limits::infinity(); - ValType a9 = -std::numeric_limits::quiet_NaN(); - ValType a10 = -std::numeric_limits::signaling_NaN(); + ValType a9 = (changesign)(std::numeric_limits::quiet_NaN()); + ValType a10 = (changesign)(std::numeric_limits::signaling_NaN()); std::basic_string s1 = S_("0"); std::basic_string s2 = S_("13"); From 1982cb4a4ca4b2834857baec7830eed865f1fe06 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Sat, 23 Apr 2011 08:17:10 +0000 Subject: [PATCH 63/82] Fix remaining Intel regressions. Add prototypes to fwd header. Add new functions to the concept checks. [SVN r71432] --- .../boost/math/special_functions/math_fwd.hpp | 17 ++++++++++++++++- include/boost/math/special_functions/sign.hpp | 2 +- test/compile_test/instantiate.hpp | 13 ++++++++----- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/include/boost/math/special_functions/math_fwd.hpp b/include/boost/math/special_functions/math_fwd.hpp index d25181eb2..14364a3d5 100644 --- a/include/boost/math/special_functions/math_fwd.hpp +++ b/include/boost/math/special_functions/math_fwd.hpp @@ -641,6 +641,18 @@ namespace boost template bool isnormal BOOST_NO_MACRO_EXPAND(T t); + template + int signbit BOOST_NO_MACRO_EXPAND(T x); + + template + int sign BOOST_NO_MACRO_EXPAND(const T& z); + + template + T copysign BOOST_NO_MACRO_EXPAND(const T& x, const T& y); + + template + T changesign BOOST_NO_MACRO_EXPAND(const T& z); + // Exponential integrals: namespace detail{ @@ -880,7 +892,6 @@ namespace boost inline typename boost::math::tools::promote_args::type falling_factorial(RT x, unsigned n){ return boost::math::falling_factorial(x, n, Policy()); }\ template \ inline typename boost::math::tools::promote_args::type rising_factorial(RT x, unsigned n){ return boost::math::rising_factorial(x, n, Policy()); }\ - using boost::math::fpclassify;\ \ template \ inline typename boost::math::tools::promote_args::type tgamma(RT z){ return boost::math::tgamma(z, Policy()); }\ @@ -1003,6 +1014,10 @@ namespace boost using boost::math::isinf;\ using boost::math::isnan;\ using boost::math::isnormal;\ + using boost::math::signbit;\ + using boost::math::sign;\ + using boost::math::copysign;\ + using boost::math::changesign;\ \ template \ inline typename boost::math::tools::promote_args::type expint(T const& z, U const& u)\ diff --git a/include/boost/math/special_functions/sign.hpp b/include/boost/math/special_functions/sign.hpp index 3163fc23e..6de88b29a 100644 --- a/include/boost/math/special_functions/sign.hpp +++ b/include/boost/math/special_functions/sign.hpp @@ -120,7 +120,7 @@ inline int sign BOOST_NO_MACRO_EXPAND(const T& z) return (z == 0) ? 0 : (boost::math::signbit)(z) ? -1 : 1; } -template T (changesign)(T x) +template T (changesign)(const T& x) { //!< \brief return unchanged binary pattern of x, except for change of sign bit. typedef typename detail::fp_traits::sign_change_type traits; typedef typename traits::method method; diff --git a/test/compile_test/instantiate.hpp b/test/compile_test/instantiate.hpp index 53db8e7cf..d6c1dfb3a 100644 --- a/test/compile_test/instantiate.hpp +++ b/test/compile_test/instantiate.hpp @@ -179,6 +179,10 @@ void instantiate(RealType) (boost::math::isnormal)(v1); (boost::math::isnan)(v1); (boost::math::isinf)(v1); + (boost::math::signbit)(v1); + (boost::math::copysign)(v1, v2); + (boost::math::changesign)(v1); + (boost::math::sign)(v1); boost::math::log1p(v1); boost::math::expm1(v1); boost::math::cbrt(v1); @@ -298,11 +302,6 @@ void instantiate(RealType) boost::math::ibetac_invb(v1, v2, v3, pol); boost::math::gamma_p_derivative(v2, v3, pol); boost::math::ibeta_derivative(v1, v2, v3, pol); - (boost::math::fpclassify)(v1); - (boost::math::isfinite)(v1); - (boost::math::isnormal)(v1); - (boost::math::isnan)(v1); - (boost::math::isinf)(v1); boost::math::log1p(v1, pol); boost::math::expm1(v1, pol); boost::math::cbrt(v1, pol); @@ -428,6 +427,10 @@ void instantiate(RealType) (test::isnormal)(v1); (test::isnan)(v1); (test::isinf)(v1); + (test::signbit)(v1); + (test::copysign)(v1, v2); + (test::changesign)(v1); + (test::sign)(v1); test::log1p(v1); test::expm1(v1); test::cbrt(v1); From ad9d9921a71993a831977ec9ace5642b62aeb958 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sat, 23 Apr 2011 13:30:10 +0000 Subject: [PATCH 64/82] Corrected file locations for trunk and removed tabs). [SVN r71434] --- test/test_archive.cpp | 32 +++++++++++++++++++------------- test/test_lexical_cast.cpp | 6 +++--- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/test/test_archive.cpp b/test/test_archive.cpp index 00ca18707..8da7aab0f 100644 --- a/test/test_archive.cpp +++ b/test/test_archive.cpp @@ -1,12 +1,15 @@ // Copyright (c) 2006 Johan Rade +// Copyright (c) 2011 Paul A. Bristow - filename changes for boost-trunk. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifdef _MSC_VER -# pragma warning(disable : 4511 4512 4702) -#endif +//#ifdef _MSC_VER +//# pragma warning(disable : 4511 4512 4702) +//#endif + +#define BOOST_TEST_MAIN #include #include @@ -17,15 +20,18 @@ #include #include #include -#include "../../../../boost/math/nonfinite_num_facets.hpp" -#include "../../../../boost/math/signbit.hpp" -#include "../../../../boost/math/fpclassify.hpp" -#include "almost_equal.hpp" +#include +#include +#include +//#include "../../../../boost/math/nonfinite_num_facets.hpp" +//#include "../../../../boost/math/signbit.hpp" +//#include "../../../../boost/math/fpclassify.hpp" +#include "almost_equal.ipp" namespace { -// the anonymous namespace resolves ambiguities on platforms -// with fpclassify etc functions at global scope +// The anonymous namespace resolves ambiguities on platforms +// with fpclassify etc functions at global scope. using namespace boost::archive; @@ -41,10 +47,10 @@ void archive_put_trap_test(); void archive_get_trap_test(); BOOST_AUTO_TEST_CASE(archive_test) -{ - //archive_basic_test(); +{ + archive_basic_test(); archive_put_trap_test(); - //archive_get_trap_test(); + archive_get_trap_test(); } //------------------------------------------------------------------------------ @@ -155,7 +161,7 @@ void archive_put_trap_test_impl() oa & a; } catch(std::exception&) { - ss.clear(); + ss.clear(); return; } diff --git a/test/test_lexical_cast.cpp b/test/test_lexical_cast.cpp index fae34304e..36807511d 100644 --- a/test/test_lexical_cast.cpp +++ b/test/test_lexical_cast.cpp @@ -7,9 +7,9 @@ // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifdef _MSC_VER -# pragma warning(disable : 4127 4511 4512 4701 4702) -#endif +//#ifdef _MSC_VER +//# pragma warning(disable : 4127 4511 4512 4701 4702) +//#endif #define BOOST_TEST_MAIN From 883c2a513c1fd781f186b432f1b87d8528591084 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sat, 23 Apr 2011 13:37:13 +0000 Subject: [PATCH 65/82] Added checks for has_infinity ... [SVN r71435] --- test/test_archive.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/test/test_archive.cpp b/test/test_archive.cpp index 8da7aab0f..5a04dcc8f 100644 --- a/test/test_archive.cpp +++ b/test/test_archive.cpp @@ -14,6 +14,7 @@ #include #include #include + #include #include #include @@ -23,9 +24,7 @@ #include #include #include -//#include "../../../../boost/math/nonfinite_num_facets.hpp" -//#include "../../../../boost/math/signbit.hpp" -//#include "../../../../boost/math/fpclassify.hpp" + #include "almost_equal.ipp" namespace { @@ -50,7 +49,7 @@ BOOST_AUTO_TEST_CASE(archive_test) { archive_basic_test(); archive_put_trap_test(); - archive_get_trap_test(); + archive_get_trap_test(); } //------------------------------------------------------------------------------ @@ -75,6 +74,8 @@ void archive_basic_test() template void archive_basic_test_impl() { + if((std::numeric_limits::has_infinity == 0) || (std::numeric_limits::infinity() == 0)) + return; std::locale default_locale(std::locale::classic(), new boost::archive::codecvt_null); std::locale tmp_locale(default_locale, new nonfinite_num_put); @@ -86,13 +87,19 @@ void archive_basic_test_impl() ValType a1 = static_cast(0); ValType a2 = static_cast(2307.35); ValType a3 = std::numeric_limits::infinity(); + BOOST_CHECK((boost::math::isinf)(a3)); ValType a4 = std::numeric_limits::quiet_NaN(); + BOOST_CHECK((boost::math::isnan)(a4)); ValType a5 = std::numeric_limits::signaling_NaN(); + BOOST_CHECK((boost::math::isnan)(a5)); ValType a6 = (changesign)(static_cast(0)); ValType a7 = static_cast(-57.13); ValType a8 = -std::numeric_limits::infinity(); + BOOST_CHECK((boost::math::isinf)(a8)); ValType a9 = -std::numeric_limits::quiet_NaN(); + BOOST_CHECK((boost::math::isnan)(a9)); ValType a10 = -std::numeric_limits::signaling_NaN(); + BOOST_CHECK((boost::math::isnan)(a10)); { OArchiveType oa(ss, no_codecvt); @@ -144,6 +151,9 @@ void archive_put_trap_test() template void archive_put_trap_test_impl() { + if((std::numeric_limits::has_infinity == 0) || (std::numeric_limits::infinity() == 0)) + return; + std::locale default_locale(std::locale::classic(), new boost::archive::codecvt_null); std::locale new_locale(default_locale, @@ -190,6 +200,9 @@ void archive_get_trap_test() template void archive_get_trap_test_impl() { + if((std::numeric_limits::has_infinity == 0) || (std::numeric_limits::infinity() == 0)) + return; + std::locale default_locale(std::locale::classic(), new boost::archive::codecvt_null); std::locale tmp_locale(default_locale, new nonfinite_num_put); From d9c9b37cc9d982b2afafed09c3d6167f260bd328 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sat, 23 Apr 2011 13:42:39 +0000 Subject: [PATCH 66/82] Comments on checks. [SVN r71436] --- test/test_basic_nonfinite.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/test/test_basic_nonfinite.cpp b/test/test_basic_nonfinite.cpp index 1776abe82..1b8fc518b 100644 --- a/test/test_basic_nonfinite.cpp +++ b/test/test_basic_nonfinite.cpp @@ -1,17 +1,16 @@ - - // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) // Copyright (c) 2006 Johan Rade // Copyright (c) 2011 Paul A. Bristow comments - +// Copyright (c) 2011 John Maddock /*! \file \brief Basic tests of the nonfinite num facets. -\detail Basic_test outputs using nonfinite_num_put facet +\detail If has_infinity and has_nan, then +basic_test outputs using nonfinite_num_put facet and reads back in using nonfinite_num_ facet, and checks loopback OK. @@ -24,7 +23,7 @@ and checks that can input C99 infinity and NaN too. */ #ifdef _MSC_VER -# pragma warning(disable : 4702) +# pragma warning(disable : 4702) // Unreachable code. #endif #include @@ -46,7 +45,6 @@ namespace using namespace boost::math; using boost::math::signbit; -//using boost::spirit::detail::changesign; // Temporary spirit version. using boost::math::changesign; using boost::math::isnan; From e9f171b6978bd784023f3a53c681c8eb4a351f60 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sat, 23 Apr 2011 13:51:28 +0000 Subject: [PATCH 67/82] Added check that infinity supported. and ends with newline. [SVN r71438] --- example/nonfinite_facet_simple.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/example/nonfinite_facet_simple.cpp b/example/nonfinite_facet_simple.cpp index 363f98f23..9a0a2027f 100644 --- a/example/nonfinite_facet_simple.cpp +++ b/example/nonfinite_facet_simple.cpp @@ -19,7 +19,8 @@ \brief A very simple example of using non_finite_num facet for C99 standard output of infinity and NaN. -\detail This example shows how to create a C99 non-finite locale, +\detail Provided infinity and nan are supported, +this example shows how to create a C99 non-finite locale, and imbue input and output streams with the non_finite_num put and get facets. This allow output and input of infinity and NaN in a Standard portable way, This permits 'loop-back' of output back into input (and portably across different system too). @@ -28,6 +29,10 @@ values in text and xml archives can be handled correctly and portably. */ +#ifdef _MSC_VER +# pragma warning (disable : 4127) // conditional expression is constant. +#endif + #include using std::cout; using std::endl; @@ -58,6 +63,18 @@ int main () { std::cout << "Nonfinite_num_facet very simple example." << std::endl; + if((std::numeric_limits::has_infinity == 0) || (std::numeric_limits::infinity() == 0)) + { + std::cout << "Infinity not supported on this platform." << std::endl; + return 0; + } + + if((std::numeric_limits::has_quiet_NaN == 0) || (std::numeric_limits::quiet_NaN() == 0)) + { + std::cout << "NaN not supported on this platform." << std::endl; + return 0; + } + std::locale default_locale (std::locale::classic ()); // Note the currrent (default C) locale. // Create plus and minus infinity. @@ -239,4 +256,4 @@ simple_nonfinite_facet.vcxproj -> J:\Cpp\MathToolkit\test\Math_test\Release\nonf infinity in C99 representation (setw(20) is inf | infinity in C99 representation (setw(20) is inf| -*/ \ No newline at end of file +*/ From bee89c396caf9ed1e6a7c13b65fac68626819f23 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sat, 23 Apr 2011 13:52:54 +0000 Subject: [PATCH 68/82] Added check that infinity supported. and ends with newline. [SVN r71439] --- example/lexical_cast_native.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/example/lexical_cast_native.cpp b/example/lexical_cast_native.cpp index eabcbc965..aaee6b5d5 100644 --- a/example/lexical_cast_native.cpp +++ b/example/lexical_cast_native.cpp @@ -60,6 +60,18 @@ using std::locale; int main () { std::cout << "lexical_cast example (NOT using finite_num_facet)." << std::endl; + + if((std::numeric_limits::has_infinity == false) || (std::numeric_limits::infinity() == 0)) + { + std::cout << "Infinity not supported on this platform." << std::endl; + return 0; + } + + if((std::numeric_limits::has_quiet_NaN == false) || (std::numeric_limits::quiet_NaN() == 0)) + { + std::cout << "NaN not supported on this platform." << std::endl; + return 0; + } // Some tests that are expected to fail on some platforms. // (But these tests are expected to pass using non_finite num_put and num_get facets). @@ -118,4 +130,4 @@ C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: :VCEnd" exited with code 3. -*/ \ No newline at end of file +*/ From ae9f823f99136ba9e5f752e9422aa47551cf4f14 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sat, 23 Apr 2011 13:59:11 +0000 Subject: [PATCH 69/82] Added check that infinity supported. and ends with newline. [SVN r71440] --- example/nonfinite_loopback_ok.cpp | 13 ++++++++++++ example/nonfinite_num_facet.cpp | 18 ++++++++++++++++- example/nonfinite_serialization_archives.cpp | 21 +++++++++++++++----- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/example/nonfinite_loopback_ok.cpp b/example/nonfinite_loopback_ok.cpp index 378140f92..adeea76c3 100644 --- a/example/nonfinite_loopback_ok.cpp +++ b/example/nonfinite_loopback_ok.cpp @@ -18,6 +18,7 @@ Expected to work portably on all platforms. #ifdef _MSC_VER # pragma warning(disable : 4702) +# pragma warning(disable : 4127) // conditional expression is constant. #endif #include @@ -40,6 +41,18 @@ using std::numeric_limits; int main() { + + if((std::numeric_limits::has_infinity == false) || (std::numeric_limits::infinity() == 0)) + { + std::cout << "Infinity not supported on this platform." << std::endl; + return 0; + } + + if((std::numeric_limits::has_quiet_NaN == false) || (std::numeric_limits::quiet_NaN() == 0)) + { + std::cout << "NaN not supported on this platform." << std::endl; + return 0; + } //locale old_locale; // Current global locale. // Create tmp_locale and store the output nonfinite_num_put facet in it. //locale tmp_locale(old_locale, new nonfinite_num_put); diff --git a/example/nonfinite_num_facet.cpp b/example/nonfinite_num_facet.cpp index c86d3549a..c9fbbddfb 100644 --- a/example/nonfinite_num_facet.cpp +++ b/example/nonfinite_num_facet.cpp @@ -33,6 +33,10 @@ C99 standard output of infinity and NaN. */ +#ifdef _MSC_VER +# pragma warning(disable : 4127) // conditional expression is constant. +#endif + #include #include using std::cout; @@ -170,6 +174,18 @@ int main () { std::cout << "nonfinite_num_facet simple example." << std::endl; + if((std::numeric_limits::has_infinity == false) || (std::numeric_limits::infinity() == 0)) + { + std::cout << "Infinity not supported on this platform." << std::endl; + return 0; + } + + if((std::numeric_limits::has_quiet_NaN == false) || (std::numeric_limits::quiet_NaN() == 0)) + { + std::cout << "NaN not supported on this platform." << std::endl; + return 0; + } + #ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST cout << "BOOST_NO_NUMERIC_LIMITS_LOWEST is defined, so no max_digits10 available either:" "\n we'll have to calculate our own version." << endl; @@ -272,4 +288,4 @@ nonfinite_num_facet simple example. Input done. End nonfinite_num_facet.cpp -*/ \ No newline at end of file +*/ diff --git a/example/nonfinite_serialization_archives.cpp b/example/nonfinite_serialization_archives.cpp index c1d60c9ca..0ab158bc9 100644 --- a/example/nonfinite_serialization_archives.cpp +++ b/example/nonfinite_serialization_archives.cpp @@ -28,10 +28,12 @@ values in text and xml archives can be handled correctly and portably. */ -#ifdef MSC_VER +#ifdef _MSC_VER # pragma warning (disable :4224) +# pragma warning(disable : 4127) // conditional expression is constant. #endif + #include using boost::archive::text_oarchive; #include @@ -95,6 +97,18 @@ The following code shows how to use `nonfinite_num_put` with a `text_oarchive`: int main() { + if((std::numeric_limits::has_infinity == false) || (std::numeric_limits::infinity() == 0)) + { + std::cout << "Infinity not supported on this platform." << std::endl; + return 0; + } + + if((std::numeric_limits::has_quiet_NaN == false) || (std::numeric_limits::quiet_NaN() == 0)) + { + std::cout << "NaN not supported on this platform." << std::endl; + return 0; + } + locale default_locale(locale::classic(), new boost::archive::codecvt_null); // codecvt_null so the archive constructor will not imbue the stream with a new locale. @@ -120,7 +134,4 @@ then you must set the exception mask of the stream. Serialization archives do not check the stream state. -u - - -*/ \ No newline at end of file +*/ From c7931ae7302cd8157098a1e04f83a5b658b4176f Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sat, 23 Apr 2011 14:19:03 +0000 Subject: [PATCH 70/82] Added check that infinity supported. and ends with newline. [SVN r71441] --- example/nonfinite_signaling_NaN.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/example/nonfinite_signaling_NaN.cpp b/example/nonfinite_signaling_NaN.cpp index 6bf3eae0e..1d1142b7b 100644 --- a/example/nonfinite_signaling_NaN.cpp +++ b/example/nonfinite_signaling_NaN.cpp @@ -46,6 +46,18 @@ using std::numeric_limits; int main() { + if((std::numeric_limits::has_infinity == false) || (std::numeric_limits::infinity() == 0)) + { + std::cout << "Infinity not supported on this platform." << std::endl; + return 0; + } + + if((std::numeric_limits::has_quiet_NaN == false) || (std::numeric_limits::quiet_NaN() == 0)) + { + std::cout << "NaN not supported on this platform." << std::endl; + return 0; + } + locale default_locale; // Current global locale. // Try to use the default locale first. // On MSVC this doesn't work. From 978bf2a3be00792159e9cfef9578c26fb581d07d Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sat, 23 Apr 2011 14:19:32 +0000 Subject: [PATCH 71/82] Added test for signed zero. [SVN r71442] --- test/test_signed_zero.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/test/test_signed_zero.cpp b/test/test_signed_zero.cpp index 18de8e5fa..4849775a7 100644 --- a/test/test_signed_zero.cpp +++ b/test/test_signed_zero.cpp @@ -6,7 +6,8 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) #ifdef _MSC_VER -# pragma warning(disable : 4702) +# pragma warning(disable : 4702) // Unreachable code. +# pragma warning(disable : 4127) // expression is constant. #endif #define BOOST_TEST_MAIN @@ -14,10 +15,12 @@ #include #include #include +#include + #include +#include #include "almost_equal.ipp" #include "S_.ipp" -#include namespace { @@ -45,6 +48,14 @@ BOOST_AUTO_TEST_CASE(signed_zero_test) template void signed_zero_test_impl() { + + if (static_cast(-1e-6f)/std::numeric_limits::max() != -0) + { + BOOST_MESSAGE("Signed zero is not supported on this platform."); + return; + } + + std::locale old_locale; std::locale tmp_locale( old_locale, new nonfinite_num_put(signed_zero)); From 7c841b12c3f78694c2e200ec3005ce87f5907074 Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sat, 23 Apr 2011 14:27:50 +0000 Subject: [PATCH 72/82] Added #if (!defined __BORLANDC__ && !defined __CODEGEARC__) to avoid a signaling_NaN trap on these compilers. [SVN r71443] --- example/nonfinite_signaling_NaN.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/example/nonfinite_signaling_NaN.cpp b/example/nonfinite_signaling_NaN.cpp index 1d1142b7b..98ccdd1d9 100644 --- a/example/nonfinite_signaling_NaN.cpp +++ b/example/nonfinite_signaling_NaN.cpp @@ -84,6 +84,8 @@ int main() cout << "quiet_NaN input was " << r << endl; // "1" } +#if (!defined __BORLANDC__ && !defined __CODEGEARC__) + // These compilers trap when trying to create a signaling_NaN! { // Try Signaling NaN stringstream ss; // Both input and output. ss.imbue(default_locale); // Redundant, of course. @@ -105,6 +107,7 @@ int main() cout << "signaling_NaN output was " << infs << endl; // "1.#QNAN" (or "1.#SNAN"?) cout << "signaling_NaN input was " << r << endl; // "1" } +#endif // Not Borland or CodeGear. // Create legacy_locale and store the nonfinite_num_get facet (with legacy flag) in it. locale legacy_locale(default_locale, new nonfinite_num_get(boost::math::legacy)); From 99af0cdc27aa65be24854e0035329e2d8011764f Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sat, 23 Apr 2011 16:50:11 +0000 Subject: [PATCH 73/82] signbit(static_cast(-1e-6f)/std::numeric_limits::max()) != 0 test used. [SVN r71444] --- test/test_signed_zero.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_signed_zero.cpp b/test/test_signed_zero.cpp index 4849775a7..c35b70729 100644 --- a/test/test_signed_zero.cpp +++ b/test/test_signed_zero.cpp @@ -49,7 +49,7 @@ BOOST_AUTO_TEST_CASE(signed_zero_test) template void signed_zero_test_impl() { - if (static_cast(-1e-6f)/std::numeric_limits::max() != -0) + if (signbit(static_cast(-1e-6f)/std::numeric_limits::max()) != -0) { BOOST_MESSAGE("Signed zero is not supported on this platform."); return; From a6cea5c49740209cee3747db3590ac3e1d7410cb Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Tue, 26 Apr 2011 08:46:23 +0000 Subject: [PATCH 74/82] Complied with min/max requirements. [SVN r71497] --- test/test_signed_zero.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_signed_zero.cpp b/test/test_signed_zero.cpp index c35b70729..45186da2b 100644 --- a/test/test_signed_zero.cpp +++ b/test/test_signed_zero.cpp @@ -49,7 +49,7 @@ BOOST_AUTO_TEST_CASE(signed_zero_test) template void signed_zero_test_impl() { - if (signbit(static_cast(-1e-6f)/std::numeric_limits::max()) != -0) + if (signbit(static_cast(-1e-6f)/(std::numeric_limits::max)()) != -0) { BOOST_MESSAGE("Signed zero is not supported on this platform."); return; From d27407f3206e3b3f1ad3b23b2dfde0e5c3769b14 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Wed, 27 Apr 2011 16:00:00 +0000 Subject: [PATCH 75/82] Tentative fix for FreeBSD failure. [SVN r71534] --- include/boost/math/tr1.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/boost/math/tr1.hpp b/include/boost/math/tr1.hpp index 2fb2f291c..c711b5243 100644 --- a/include/boost/math/tr1.hpp +++ b/include/boost/math/tr1.hpp @@ -104,6 +104,7 @@ namespace boost{ namespace math{ namespace tr1{ extern "C"{ # include #endif +#if !defined(__cplusplus) && defined(FLT_EVAL_METHOD) && (FLT_EVAL_METHOD > 2) #ifndef FLT_EVAL_METHOD typedef float float_t; typedef double double_t; @@ -117,6 +118,7 @@ typedef double double_t; typedef long double float_t; typedef long double double_t; #endif +#endif // C99 Functions: double BOOST_MATH_TR1_DECL boost_acosh BOOST_PREVENT_MACRO_SUBSTITUTION(double x) BOOST_MATH_C99_THROW_SPEC; From a5239fa5675b99ccfd9d02de01c357abf2c4e438 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 2 May 2011 15:36:51 +0000 Subject: [PATCH 76/82] Suppress a whole bunch of new gcc-4.6 warnings. Add code to verify that the radix of the type is 2 wherever that assumption is made. Add some more instrumentation code. [SVN r71672] --- include/boost/math/concepts/distributions.hpp | 95 +++++++++++++++---- .../boost/math/concepts/real_type_concept.hpp | 12 +++ .../boost/math/distributions/bernoulli.hpp | 10 +- include/boost/math/distributions/beta.hpp | 18 ++-- include/boost/math/distributions/binomial.hpp | 16 ++-- include/boost/math/distributions/cauchy.hpp | 6 +- .../boost/math/distributions/exponential.hpp | 14 +-- .../math/distributions/extreme_value.hpp | 14 +-- include/boost/math/distributions/fisher_f.hpp | 20 ++-- include/boost/math/distributions/gamma.hpp | 20 ++-- .../boost/math/distributions/geometric.hpp | 18 ++-- .../math/distributions/hypergeometric.hpp | 10 +- .../math/distributions/inverse_gamma.hpp | 22 ++--- .../math/distributions/inverse_gaussian.hpp | 10 +- include/boost/math/distributions/laplace.hpp | 10 +- include/boost/math/distributions/logistic.hpp | 10 +- .../boost/math/distributions/lognormal.hpp | 22 ++--- .../math/distributions/negative_binomial.hpp | 18 ++-- include/boost/math/distributions/normal.hpp | 10 +- include/boost/math/distributions/pareto.hpp | 24 ++--- include/boost/math/distributions/poisson.hpp | 10 +- include/boost/math/distributions/rayleigh.hpp | 14 +-- .../boost/math/distributions/triangular.hpp | 24 ++--- include/boost/math/distributions/uniform.hpp | 22 ++--- include/boost/math/distributions/weibull.hpp | 22 ++--- .../boost/math/policies/error_handling.hpp | 2 +- include/boost/math/policies/policy.hpp | 6 +- include/boost/math/special_functions/beta.hpp | 8 +- include/boost/math/special_functions/cbrt.hpp | 2 + .../detail/t_distribution_inv.hpp | 5 +- .../boost/math/special_functions/gamma.hpp | 15 +++ include/boost/math/tools/config.hpp | 6 ++ include/boost/math/tools/precision.hpp | 6 +- 33 files changed, 312 insertions(+), 209 deletions(-) diff --git a/include/boost/math/concepts/distributions.hpp b/include/boost/math/concepts/distributions.hpp index 5758e1429..2e0037787 100644 --- a/include/boost/math/concepts/distributions.hpp +++ b/include/boost/math/concepts/distributions.hpp @@ -130,66 +130,118 @@ struct DistributionConcept // The result values are ignored in all these checks. value_type v = cdf(dist, x); v = cdf(complement(dist, x)); + suppress_unused_variable_warning(v); v = pdf(dist, x); + suppress_unused_variable_warning(v); v = quantile(dist, x); + suppress_unused_variable_warning(v); v = quantile(complement(dist, x)); + suppress_unused_variable_warning(v); v = mean(dist); + suppress_unused_variable_warning(v); v = mode(dist); + suppress_unused_variable_warning(v); v = standard_deviation(dist); + suppress_unused_variable_warning(v); v = variance(dist); + suppress_unused_variable_warning(v); v = hazard(dist, x); + suppress_unused_variable_warning(v); v = chf(dist, x); + suppress_unused_variable_warning(v); v = coefficient_of_variation(dist); + suppress_unused_variable_warning(v); v = skewness(dist); + suppress_unused_variable_warning(v); v = kurtosis(dist); + suppress_unused_variable_warning(v); v = kurtosis_excess(dist); + suppress_unused_variable_warning(v); v = median(dist); + suppress_unused_variable_warning(v); std::pair pv; pv = range(dist); + suppress_unused_variable_warning(pv); pv = support(dist); + suppress_unused_variable_warning(pv); float f = 1; v = cdf(dist, f); + suppress_unused_variable_warning(v); v = cdf(complement(dist, f)); + suppress_unused_variable_warning(v); v = pdf(dist, f); + suppress_unused_variable_warning(v); v = quantile(dist, f); + suppress_unused_variable_warning(v); v = quantile(complement(dist, f)); + suppress_unused_variable_warning(v); v = hazard(dist, f); + suppress_unused_variable_warning(v); v = chf(dist, f); + suppress_unused_variable_warning(v); double d = 1; v = cdf(dist, d); + suppress_unused_variable_warning(v); v = cdf(complement(dist, d)); + suppress_unused_variable_warning(v); v = pdf(dist, d); + suppress_unused_variable_warning(v); v = quantile(dist, d); + suppress_unused_variable_warning(v); v = quantile(complement(dist, d)); + suppress_unused_variable_warning(v); v = hazard(dist, d); + suppress_unused_variable_warning(v); v = chf(dist, d); + suppress_unused_variable_warning(v); #ifndef TEST_MPFR long double ld = 1; v = cdf(dist, ld); + suppress_unused_variable_warning(v); v = cdf(complement(dist, ld)); + suppress_unused_variable_warning(v); v = pdf(dist, ld); + suppress_unused_variable_warning(v); v = quantile(dist, ld); + suppress_unused_variable_warning(v); v = quantile(complement(dist, ld)); + suppress_unused_variable_warning(v); v = hazard(dist, ld); + suppress_unused_variable_warning(v); v = chf(dist, ld); + suppress_unused_variable_warning(v); #endif int i = 1; v = cdf(dist, i); + suppress_unused_variable_warning(v); v = cdf(complement(dist, i)); + suppress_unused_variable_warning(v); v = pdf(dist, i); + suppress_unused_variable_warning(v); v = quantile(dist, i); + suppress_unused_variable_warning(v); v = quantile(complement(dist, i)); + suppress_unused_variable_warning(v); v = hazard(dist, i); + suppress_unused_variable_warning(v); v = chf(dist, i); + suppress_unused_variable_warning(v); unsigned long li = 1; v = cdf(dist, li); + suppress_unused_variable_warning(v); v = cdf(complement(dist, li)); + suppress_unused_variable_warning(v); v = pdf(dist, li); + suppress_unused_variable_warning(v); v = quantile(dist, li); + suppress_unused_variable_warning(v); v = quantile(complement(dist, li)); + suppress_unused_variable_warning(v); v = hazard(dist, li); + suppress_unused_variable_warning(v); v = chf(dist, li); + suppress_unused_variable_warning(v); test_extra_members(dist); } template @@ -207,11 +259,13 @@ struct DistributionConcept value_type r1 = d.alpha(); value_type r2 = d.beta(); r1 = boost::math::beta_distribution::find_alpha(r1, r2); + suppress_unused_variable_warning(r1); r1 = boost::math::beta_distribution::find_beta(r1, r2); + suppress_unused_variable_warning(r1); r1 = boost::math::beta_distribution::find_alpha(r1, r2, r1); + suppress_unused_variable_warning(r1); r1 = boost::math::beta_distribution::find_beta(r1, r2, r1); - (void)r1; // warning suppression - (void)r2; // warning suppression + suppress_unused_variable_warning(r1); } template static void test_extra_members(const boost::math::binomial_distribution& d) @@ -226,14 +280,14 @@ struct DistributionConcept r = Distribution::find_upper_bound_on_p(r, r, r, Distribution::jeffreys_prior_interval); r = Distribution::find_minimum_number_of_trials(r, r, r); r = Distribution::find_maximum_number_of_trials(r, r, r); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::cauchy_distribution& d) { value_type r = d.location(); r = d.scale(); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::chi_squared_distribution& d) @@ -241,48 +295,48 @@ struct DistributionConcept value_type r = d.degrees_of_freedom(); r = Distribution::find_degrees_of_freedom(r, r, r, r); r = Distribution::find_degrees_of_freedom(r, r, r, r, r); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::exponential_distribution& d) { value_type r = d.lambda(); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::extreme_value_distribution& d) { value_type r = d.scale(); r = d.location(); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::fisher_f_distribution& d) { value_type r = d.degrees_of_freedom1(); r = d.degrees_of_freedom2(); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::gamma_distribution& d) { value_type r = d.scale(); r = d.shape(); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::inverse_chi_squared_distribution& d) { value_type r = d.scale(); r = d.degrees_of_freedom(); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::inverse_gamma_distribution& d) { value_type r = d.scale(); r = d.shape(); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::hypergeometric_distribution& d) @@ -290,28 +344,28 @@ struct DistributionConcept unsigned u = d.defective(); u = d.sample_count(); u = d.total(); - (void)u; // warning suppression + suppress_unused_variable_warning(u); } template static void test_extra_members(const boost::math::laplace_distribution& d) { value_type r = d.scale(); r = d.location(); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::logistic_distribution& d) { value_type r = d.scale(); r = d.location(); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::lognormal_distribution& d) { value_type r = d.scale(); r = d.location(); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::negative_binomial_distribution& d) @@ -322,7 +376,7 @@ struct DistributionConcept r = Distribution::find_upper_bound_on_p(r, r, r); r = Distribution::find_minimum_number_of_trials(r, r, r); r = Distribution::find_maximum_number_of_trials(r, r, r); - (void)r; // warning suppression + suppress_unused_variable_warning(r); } template static void test_extra_members(const boost::math::non_central_beta_distribution& d) @@ -418,14 +472,17 @@ struct DistributionConcept (void)r; // warning suppression } private: + static Distribution* pd; static Distribution& get_object() { - // will never get called: - static char buf[sizeof(Distribution)]; - return * reinterpret_cast(buf); + // In reality this will never get called: + return *pd; } }; // struct DistributionConcept +template +Distribution* DistributionConcept::pd = 0; + } // namespace concepts } // namespace math } // namespace boost diff --git a/include/boost/math/concepts/real_type_concept.hpp b/include/boost/math/concepts/real_type_concept.hpp index 481c82774..f6ec01621 100644 --- a/include/boost/math/concepts/real_type_concept.hpp +++ b/include/boost/math/concepts/real_type_concept.hpp @@ -44,17 +44,29 @@ struct RealTypeConcept r = o / r; bool b; b = r == o; + suppress_unused_variable_warning(b); b = o == r; + suppress_unused_variable_warning(b); b = r != o; + suppress_unused_variable_warning(b); b = o != r; + suppress_unused_variable_warning(b); b = r <= o; + suppress_unused_variable_warning(b); b = o <= r; + suppress_unused_variable_warning(b); b = r >= o; + suppress_unused_variable_warning(b); b = o >= r; + suppress_unused_variable_warning(b); b = r < o; + suppress_unused_variable_warning(b); b = o < r; + suppress_unused_variable_warning(b); b = r > o; + suppress_unused_variable_warning(b); b = o > r; + suppress_unused_variable_warning(b); } void constraints() diff --git a/include/boost/math/distributions/bernoulli.hpp b/include/boost/math/distributions/bernoulli.hpp index 137ed0f20..cfa3ecf84 100644 --- a/include/boost/math/distributions/bernoulli.hpp +++ b/include/boost/math/distributions/bernoulli.hpp @@ -153,7 +153,7 @@ namespace boost { // Probability Density/Mass Function. BOOST_FPU_EXCEPTION_GUARD // Error check: - RealType result; // of checks. + RealType result = 0; // of checks. if(false == bernoulli_detail::check_dist_and_k( "boost::math::pdf(bernoulli_distribution<%1%>, %1%)", dist.success_fraction(), // 0 to 1 @@ -178,7 +178,7 @@ namespace boost { // Cumulative Distribution Function Bernoulli. RealType p = dist.success_fraction(); // Error check: - RealType result; + RealType result = 0; if(false == bernoulli_detail::check_dist_and_k( "boost::math::cdf(bernoulli_distribution<%1%>, %1%)", p, @@ -204,7 +204,7 @@ namespace boost bernoulli_distribution const& dist = c.dist; RealType p = dist.success_fraction(); // Error checks: - RealType result; + RealType result = 0; if(false == bernoulli_detail::check_dist_and_k( "boost::math::cdf(bernoulli_distribution<%1%>, %1%)", p, @@ -229,7 +229,7 @@ namespace boost // Return the number of expected successes k either 0 or 1. // for a given probability p. - RealType result; // of error checks: + RealType result = 0; // of error checks: if(false == bernoulli_detail::check_dist_and_prob( "boost::math::quantile(bernoulli_distribution<%1%>, %1%)", dist.success_fraction(), @@ -257,7 +257,7 @@ namespace boost // Error checks: RealType q = c.param; const bernoulli_distribution& dist = c.dist; - RealType result; + RealType result = 0; if(false == bernoulli_detail::check_dist_and_prob( "boost::math::quantile(bernoulli_distribution<%1%>, %1%)", dist.success_fraction(), diff --git a/include/boost/math/distributions/beta.hpp b/include/boost/math/distributions/beta.hpp index 0573d1d01..ef052599f 100644 --- a/include/boost/math/distributions/beta.hpp +++ b/include/boost/math/distributions/beta.hpp @@ -187,7 +187,7 @@ namespace boost RealType variance) // Expected value of variance. { static const char* function = "boost::math::beta_distribution<%1%>::find_alpha"; - RealType result; // of error checks. + RealType result = 0; // of error checks. if(false == beta_detail::check_mean( function, mean, &result, Policy()) @@ -206,7 +206,7 @@ namespace boost RealType variance) // Expected value of variance. { static const char* function = "boost::math::beta_distribution<%1%>::find_beta"; - RealType result; // of error checks. + RealType result = 0; // of error checks. if(false == beta_detail::check_mean( function, mean, &result, Policy()) @@ -229,7 +229,7 @@ namespace boost RealType probability) // cdf { static const char* function = "boost::math::beta_distribution<%1%>::find_alpha"; - RealType result; // of error checks. + RealType result = 0; // of error checks. if(false == beta_detail::check_prob( function, probability, &result, Policy()) @@ -253,7 +253,7 @@ namespace boost RealType probability) // probability cdf. { static const char* function = "boost::math::beta_distribution<%1%>::find_beta"; - RealType result; // of error checks. + RealType result = 0; // of error checks. if(false == beta_detail::check_prob( function, probability, &result, Policy()) @@ -376,7 +376,7 @@ namespace boost RealType b = dist.beta(); // Argument checks: - RealType result; + RealType result = 0; if(false == beta_detail::check_dist_and_x( function, a, b, x, @@ -399,7 +399,7 @@ namespace boost RealType b = dist.beta(); // Argument checks: - RealType result; + RealType result = 0; if(false == beta_detail::check_dist_and_x( function, a, b, x, @@ -433,7 +433,7 @@ namespace boost RealType b = dist.beta(); // Argument checks: - RealType result; + RealType result = 0; if(false == beta_detail::check_dist_and_x( function, a, b, x, @@ -468,7 +468,7 @@ namespace boost static const char* function = "boost::math::quantile(beta_distribution<%1%> const&, %1%)"; - RealType result; // of argument checks: + RealType result = 0; // of argument checks: RealType a = dist.alpha(); RealType b = dist.beta(); if(false == beta_detail::check_dist_and_prob( @@ -502,7 +502,7 @@ namespace boost // Error checks: RealType q = c.param; const beta_distribution& dist = c.dist; - RealType result; + RealType result = 0; RealType a = dist.alpha(); RealType b = dist.beta(); if(false == beta_detail::check_dist_and_prob( diff --git a/include/boost/math/distributions/binomial.hpp b/include/boost/math/distributions/binomial.hpp index ff70b819c..c73df929f 100644 --- a/include/boost/math/distributions/binomial.hpp +++ b/include/boost/math/distributions/binomial.hpp @@ -203,7 +203,7 @@ namespace boost // // Error checks: BOOST_MATH_STD_USING // ADL of std names - RealType result; + RealType result = 0; RealType trials = dist.trials(); RealType success_fraction = dist.success_fraction(); if(false == binomial_detail::check_dist_and_prob( @@ -317,7 +317,7 @@ namespace boost { static const char* function = "boost::math::binomial_distribution<%1%>::find_lower_bound_on_p"; // Error checks: - RealType result; + RealType result = 0; if(false == binomial_detail::check_dist_and_k( function, trials, RealType(0), successes, &result, Policy()) && @@ -342,7 +342,7 @@ namespace boost { static const char* function = "boost::math::binomial_distribution<%1%>::find_upper_bound_on_p"; // Error checks: - RealType result; + RealType result = 0; if(false == binomial_detail::check_dist_and_k( function, trials, RealType(0), successes, &result, Policy()) && @@ -369,7 +369,7 @@ namespace boost { static const char* function = "boost::math::binomial_distribution<%1%>::find_minimum_number_of_trials"; // Error checks: - RealType result; + RealType result = 0; if(false == binomial_detail::check_dist_and_k( function, k, p, k, &result, Policy()) && @@ -388,7 +388,7 @@ namespace boost { static const char* function = "boost::math::binomial_distribution<%1%>::find_maximum_number_of_trials"; // Error checks: - RealType result; + RealType result = 0; if(false == binomial_detail::check_dist_and_k( function, k, p, k, &result, Policy()) && @@ -446,7 +446,7 @@ namespace boost RealType n = dist.trials(); // Error check: - RealType result; + RealType result = 0; // initialization silences some compiler warnings if(false == binomial_detail::check_dist_and_k( "boost::math::pdf(binomial_distribution<%1%> const&, %1%)", n, @@ -524,7 +524,7 @@ namespace boost RealType p = dist.success_fraction(); // Error check: - RealType result; + RealType result = 0; if(false == binomial_detail::check_dist_and_k( "boost::math::cdf(binomial_distribution<%1%> const&, %1%)", n, @@ -598,7 +598,7 @@ namespace boost RealType p = dist.success_fraction(); // Error checks: - RealType result; + RealType result = 0; if(false == binomial_detail::check_dist_and_k( "boost::math::cdf(binomial_distribution<%1%> const&, %1%)", n, diff --git a/include/boost/math/distributions/cauchy.hpp b/include/boost/math/distributions/cauchy.hpp index 0a818568c..0c93febaa 100644 --- a/include/boost/math/distributions/cauchy.hpp +++ b/include/boost/math/distributions/cauchy.hpp @@ -56,7 +56,7 @@ RealType cdf_imp(const cauchy_distribution& dist, const RealTy // BOOST_MATH_STD_USING // for ADL of std functions static const char* function = "boost::math::cdf(cauchy<%1%>&, %1%)"; - RealType result; + RealType result = 0; RealType location = dist.location(); RealType scale = dist.scale(); if(false == detail::check_location(function, location, &result, Policy())) @@ -105,7 +105,7 @@ RealType quantile_imp( static const char* function = "boost::math::quantile(cauchy<%1%>&, %1%)"; BOOST_MATH_STD_USING // for ADL of std functions - RealType result; + RealType result = 0; RealType location = dist.location(); RealType scale = dist.scale(); if(false == detail::check_location(function, location, &result, Policy())) @@ -197,7 +197,7 @@ inline RealType pdf(const cauchy_distribution& dist, const Rea BOOST_MATH_STD_USING // for ADL of std functions static const char* function = "boost::math::pdf(cauchy<%1%>&, %1%)"; - RealType result; + RealType result = 0; RealType location = dist.location(); RealType scale = dist.scale(); if(false == detail::check_scale("boost::math::pdf(cauchy<%1%>&, %1%)", scale, &result, Policy())) diff --git a/include/boost/math/distributions/exponential.hpp b/include/boost/math/distributions/exponential.hpp index 44bf04240..62b858c87 100644 --- a/include/boost/math/distributions/exponential.hpp +++ b/include/boost/math/distributions/exponential.hpp @@ -102,7 +102,7 @@ inline RealType pdf(const exponential_distribution& dist, cons static const char* function = "boost::math::pdf(const exponential_distribution<%1%>&, %1%)"; RealType lambda = dist.lambda(); - RealType result; + RealType result = 0; if(0 == detail::verify_lambda(function, lambda, &result, Policy())) return result; if(0 == detail::verify_exp_x(function, x, &result, Policy())) @@ -118,7 +118,7 @@ inline RealType cdf(const exponential_distribution& dist, cons static const char* function = "boost::math::cdf(const exponential_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; RealType lambda = dist.lambda(); if(0 == detail::verify_lambda(function, lambda, &result, Policy())) return result; @@ -136,7 +136,7 @@ inline RealType quantile(const exponential_distribution& dist, static const char* function = "boost::math::quantile(const exponential_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; RealType lambda = dist.lambda(); if(0 == detail::verify_lambda(function, lambda, &result, Policy())) return result; @@ -159,7 +159,7 @@ inline RealType cdf(const complemented2_type inline RealType mean(const exponential_distribution& dist) { - RealType result; + RealType result = 0; RealType lambda = dist.lambda(); if(0 == detail::verify_lambda("boost::math::mean(const exponential_distribution<%1%>&)", lambda, &result, Policy())) return result; @@ -208,7 +208,7 @@ inline RealType mean(const exponential_distribution& dist) template inline RealType standard_deviation(const exponential_distribution& dist) { - RealType result; + RealType result = 0; RealType lambda = dist.lambda(); if(0 == detail::verify_lambda("boost::math::standard_deviation(const exponential_distribution<%1%>&)", lambda, &result, Policy())) return result; diff --git a/include/boost/math/distributions/extreme_value.hpp b/include/boost/math/distributions/extreme_value.hpp index eeb94e750..3cf94d4b3 100644 --- a/include/boost/math/distributions/extreme_value.hpp +++ b/include/boost/math/distributions/extreme_value.hpp @@ -94,7 +94,7 @@ inline RealType pdf(const extreme_value_distribution& dist, co RealType a = dist.location(); RealType b = dist.scale(); - RealType result; + RealType result = 0; if(0 == detail::verify_scale_b("boost::math::pdf(const extreme_value_distribution<%1%>&, %1%)", b, &result, Policy())) return result; result = exp((a-x)/b) * exp(-exp((a-x)/b)) / b; @@ -108,7 +108,7 @@ inline RealType cdf(const extreme_value_distribution& dist, co RealType a = dist.location(); RealType b = dist.scale(); - RealType result; + RealType result = 0; if(0 == detail::verify_scale_b("boost::math::cdf(const extreme_value_distribution<%1%>&, %1%)", b, &result, Policy())) return result; @@ -126,7 +126,7 @@ RealType quantile(const extreme_value_distribution& dist, cons RealType a = dist.location(); RealType b = dist.scale(); - RealType result; + RealType result = 0; if(0 == detail::verify_scale_b(function, b, &result, Policy())) return result; if(0 == detail::check_probability(function, p, &result, Policy())) @@ -149,7 +149,7 @@ inline RealType cdf(const complemented2_type&, %1%)", b, &result, Policy())) return result; @@ -168,7 +168,7 @@ RealType quantile(const complemented2_type& dist) { RealType a = dist.location(); RealType b = dist.scale(); - RealType result; + RealType result = 0; if(0 == detail::verify_scale_b("boost::math::mean(const extreme_value_distribution<%1%>&)", b, &result, Policy())) return result; return a + constants::euler() * b; @@ -201,7 +201,7 @@ inline RealType standard_deviation(const extreme_value_distribution&)", b, &result, Policy())) return result; return constants::pi() * b / sqrt(static_cast(6)); diff --git a/include/boost/math/distributions/fisher_f.hpp b/include/boost/math/distributions/fisher_f.hpp index fe7fa06d2..07bcc81a6 100644 --- a/include/boost/math/distributions/fisher_f.hpp +++ b/include/boost/math/distributions/fisher_f.hpp @@ -76,7 +76,7 @@ RealType pdf(const fisher_f_distribution& dist, const RealType RealType df1 = dist.degrees_of_freedom1(); RealType df2 = dist.degrees_of_freedom2(); // Error check: - RealType error_result; + RealType error_result = 0; static const char* function = "boost::math::pdf(fisher_f_distribution<%1%> const&, %1%)"; if(false == detail::check_df( function, df1, &error_result, Policy()) @@ -133,7 +133,7 @@ inline RealType cdf(const fisher_f_distribution& dist, const R RealType df1 = dist.degrees_of_freedom1(); RealType df2 = dist.degrees_of_freedom2(); // Error check: - RealType error_result; + RealType error_result = 0; if(false == detail::check_df( function, df1, &error_result, Policy()) && detail::check_df( @@ -168,7 +168,7 @@ inline RealType quantile(const fisher_f_distribution& dist, co RealType df1 = dist.degrees_of_freedom1(); RealType df2 = dist.degrees_of_freedom2(); // Error check: - RealType error_result; + RealType error_result = 0; if(false == detail::check_df( function, df1, &error_result, Policy()) && detail::check_df( @@ -194,7 +194,7 @@ inline RealType cdf(const complemented2_type& dist) RealType df1 = dist.degrees_of_freedom1(); RealType df2 = dist.degrees_of_freedom2(); // Error check: - RealType error_result; + RealType error_result = 0; if(false == detail::check_df( function, df1, &error_result, Policy()) && detail::check_df( @@ -274,7 +274,7 @@ inline RealType variance(const fisher_f_distribution& dist) RealType df1 = dist.degrees_of_freedom1(); RealType df2 = dist.degrees_of_freedom2(); // Error check: - RealType error_result; + RealType error_result = 0; if(false == detail::check_df( function, df1, &error_result, Policy()) && detail::check_df( @@ -295,7 +295,7 @@ inline RealType mode(const fisher_f_distribution& dist) RealType df1 = dist.degrees_of_freedom1(); RealType df2 = dist.degrees_of_freedom2(); // Error check: - RealType error_result; + RealType error_result = 0; if(false == detail::check_df( function, df1, &error_result, Policy()) && detail::check_df( @@ -326,7 +326,7 @@ inline RealType skewness(const fisher_f_distribution& dist) RealType df1 = dist.degrees_of_freedom1(); RealType df2 = dist.degrees_of_freedom2(); // Error check: - RealType error_result; + RealType error_result = 0; if(false == detail::check_df( function, df1, &error_result, Policy()) && detail::check_df( @@ -357,7 +357,7 @@ inline RealType kurtosis_excess(const fisher_f_distribution& d RealType df1 = dist.degrees_of_freedom1(); RealType df2 = dist.degrees_of_freedom2(); // Error check: - RealType error_result; + RealType error_result = 0; if(false == detail::check_df( function, df1, &error_result, Policy()) && detail::check_df( diff --git a/include/boost/math/distributions/gamma.hpp b/include/boost/math/distributions/gamma.hpp index 059c1466e..c15973bac 100644 --- a/include/boost/math/distributions/gamma.hpp +++ b/include/boost/math/distributions/gamma.hpp @@ -125,7 +125,7 @@ inline RealType pdf(const gamma_distribution& dist, const Real RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_gamma(function, scale, shape, &result, Policy())) return result; if(false == detail::check_gamma_x(function, x, &result, Policy())) @@ -149,7 +149,7 @@ inline RealType cdf(const gamma_distribution& dist, const Real RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_gamma(function, scale, shape, &result, Policy())) return result; if(false == detail::check_gamma_x(function, x, &result, Policy())) @@ -169,7 +169,7 @@ inline RealType quantile(const gamma_distribution& dist, const RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_gamma(function, scale, shape, &result, Policy())) return result; if(false == detail::check_probability(function, p, &result, Policy())) @@ -193,7 +193,7 @@ inline RealType cdf(const complemented2_type& dist) RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_gamma(function, scale, shape, &result, Policy())) return result; @@ -257,7 +257,7 @@ inline RealType variance(const gamma_distribution& dist) RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_gamma(function, scale, shape, &result, Policy())) return result; @@ -275,7 +275,7 @@ inline RealType mode(const gamma_distribution& dist) RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_gamma(function, scale, shape, &result, Policy())) return result; @@ -304,7 +304,7 @@ inline RealType skewness(const gamma_distribution& dist) RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_gamma(function, scale, shape, &result, Policy())) return result; @@ -322,7 +322,7 @@ inline RealType kurtosis_excess(const gamma_distribution& dist RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_gamma(function, scale, shape, &result, Policy())) return result; diff --git a/include/boost/math/distributions/geometric.hpp b/include/boost/math/distributions/geometric.hpp index 5c6dbb6bb..51e55e69f 100644 --- a/include/boost/math/distributions/geometric.hpp +++ b/include/boost/math/distributions/geometric.hpp @@ -146,7 +146,7 @@ namespace boost RealType alpha) // alpha 0.05 equivalent to 95% for one-sided test. { static const char* function = "boost::math::geometric<%1%>::find_lower_bound_on_p"; - RealType result; // of error checks. + RealType result = 0; // of error checks. RealType successes = 1; RealType failures = trials - successes; if(false == detail::check_probability(function, alpha, &result, Policy()) @@ -171,7 +171,7 @@ namespace boost RealType alpha) // alpha 0.05 equivalent to 95% for one-sided test. { static const char* function = "boost::math::geometric<%1%>::find_upper_bound_on_p"; - RealType result; // of error checks. + RealType result = 0; // of error checks. RealType successes = 1; RealType failures = trials - successes; if(false == geometric_detail::check_dist_and_k( @@ -205,7 +205,7 @@ namespace boost { static const char* function = "boost::math::geometric<%1%>::find_minimum_number_of_trials"; // Error checks: - RealType result; + RealType result = 0; if(false == geometric_detail::check_dist_and_k( function, p, k, &result, Policy()) && detail::check_probability(function, alpha, &result, Policy())) @@ -223,7 +223,7 @@ namespace boost { static const char* function = "boost::math::geometric<%1%>::find_maximum_number_of_trials"; // Error checks: - RealType result; + RealType result = 0; if(false == geometric_detail::check_dist_and_k( function, p, k, &result, Policy()) && detail::check_probability(function, alpha, &result, Policy())) @@ -317,7 +317,7 @@ namespace boost static const char* function = "boost::math::pdf(const geometric_distribution<%1%>&, %1%)"; RealType p = dist.success_fraction(); - RealType result; + RealType result = 0; if(false == geometric_detail::check_dist_and_k( function, p, @@ -356,7 +356,7 @@ namespace boost // If necessary, it has already been promoted from an integral type. RealType p = dist.success_fraction(); // Error check: - RealType result; + RealType result = 0; if(false == geometric_detail::check_dist_and_k( function, p, @@ -389,7 +389,7 @@ namespace boost geometric_distribution const& dist = c.dist; RealType p = dist.success_fraction(); // Error check: - RealType result; + RealType result = 0; if(false == geometric_detail::check_dist_and_k( function, p, @@ -416,7 +416,7 @@ namespace boost RealType success_fraction = dist.success_fraction(); // Check dist and x. - RealType result; + RealType result = 0; if(false == geometric_detail::check_dist_and_prob (function, success_fraction, x, &result, Policy())) { @@ -465,7 +465,7 @@ namespace boost RealType x = c.param; const geometric_distribution& dist = c.dist; RealType success_fraction = dist.success_fraction(); - RealType result; + RealType result = 0; if(false == geometric_detail::check_dist_and_prob( function, success_fraction, diff --git a/include/boost/math/distributions/hypergeometric.hpp b/include/boost/math/distributions/hypergeometric.hpp index afbb5212d..63d1356a2 100644 --- a/include/boost/math/distributions/hypergeometric.hpp +++ b/include/boost/math/distributions/hypergeometric.hpp @@ -120,7 +120,7 @@ namespace boost { namespace math { inline RealType pdf(const hypergeometric_distribution& dist, const unsigned& x) { static const char* function = "boost::math::pdf(const hypergeometric_distribution<%1%>&, const %1%&)"; - RealType result; + RealType result = 0; if(!dist.check_params(function, &result)) return result; if(!dist.check_x(x, function, &result)) @@ -148,7 +148,7 @@ namespace boost { namespace math { inline RealType cdf(const hypergeometric_distribution& dist, const unsigned& x) { static const char* function = "boost::math::cdf(const hypergeometric_distribution<%1%>&, const %1%&)"; - RealType result; + RealType result = 0; if(!dist.check_params(function, &result)) return result; if(!dist.check_x(x, function, &result)) @@ -176,7 +176,7 @@ namespace boost { namespace math { inline RealType cdf(const complemented2_type, unsigned>& c) { static const char* function = "boost::math::cdf(const hypergeometric_distribution<%1%>&, const %1%&)"; - RealType result; + RealType result = 0; if(!c.dist.check_params(function, &result)) return result; if(!c.dist.check_x(c.param, function, &result)) @@ -206,7 +206,7 @@ namespace boost { namespace math { BOOST_MATH_STD_USING // for ADL of std functions // Checking function argument - RealType result; + RealType result = 0; const char* function = "boost::math::quantile(const hypergeometric_distribution<%1%>&, %1%)"; if (false == dist.check_params(function, &result)) return result; if(false == detail::check_probability(function, p, &result, Policy())) return result; @@ -220,7 +220,7 @@ namespace boost { namespace math { BOOST_MATH_STD_USING // for ADL of std functions // Checking function argument - RealType result; + RealType result = 0; const char* function = "quantile(const complemented2_type, %1%>&)"; if (false == c.dist.check_params(function, &result)) return result; if(false == detail::check_probability(function, c.param, &result, Policy())) return result; diff --git a/include/boost/math/distributions/inverse_gamma.hpp b/include/boost/math/distributions/inverse_gamma.hpp index 4a2c3eaaf..88083e084 100644 --- a/include/boost/math/distributions/inverse_gamma.hpp +++ b/include/boost/math/distributions/inverse_gamma.hpp @@ -150,7 +150,7 @@ inline RealType pdf(const inverse_gamma_distribution& dist, co RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_inverse_gamma(function, scale, shape, &result, Policy())) { // distribution parameters bad. return result; @@ -198,7 +198,7 @@ inline RealType cdf(const inverse_gamma_distribution& dist, co RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_inverse_gamma(function, scale, shape, &result, Policy())) { // distribution parameters bad. return result; @@ -227,7 +227,7 @@ inline RealType quantile(const inverse_gamma_distribution& dis RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_inverse_gamma(function, scale, shape, &result, Policy())) return result; if(false == detail::check_probability(function, p, &result, Policy())) @@ -253,7 +253,7 @@ inline RealType cdf(const complemented2_type& dist) RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_scale(function, scale, &result, Policy())) { @@ -329,7 +329,7 @@ inline RealType variance(const inverse_gamma_distribution& dis RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_scale(function, scale, &result, Policy())) { return result; @@ -355,7 +355,7 @@ inline RealType mode(const inverse_gamma_distribution& dist) RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_inverse_gamma(function, scale, shape, &result, Policy())) { return result; @@ -381,7 +381,7 @@ inline RealType skewness(const inverse_gamma_distribution& dis RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_scale(function, scale, &result, Policy())) { @@ -408,7 +408,7 @@ inline RealType kurtosis_excess(const inverse_gamma_distribution& dis RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_scale(function, scale, &result, Policy())) { diff --git a/include/boost/math/distributions/inverse_gaussian.hpp b/include/boost/math/distributions/inverse_gaussian.hpp index 6803273bc..67c1b4109 100644 --- a/include/boost/math/distributions/inverse_gaussian.hpp +++ b/include/boost/math/distributions/inverse_gaussian.hpp @@ -136,7 +136,7 @@ inline RealType pdf(const inverse_gaussian_distribution& dist, RealType scale = dist.scale(); RealType mean = dist.mean(); - RealType result; + RealType result = 0; static const char* function = "boost::math::pdf(const inverse_gaussian_distribution<%1%>&, %1%)"; if(false == detail::check_scale(function, scale, &result, Policy())) { @@ -170,7 +170,7 @@ inline RealType cdf(const inverse_gaussian_distribution& dist, RealType scale = dist.scale(); RealType mean = dist.mean(); static const char* function = "boost::math::cdf(const inverse_gaussian_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; if(false == detail::check_scale(function, scale, &result, Policy())) { return result; @@ -317,7 +317,7 @@ inline RealType quantile(const inverse_gaussian_distribution& RealType scale = dist.scale(); static const char* function = "boost::math::quantile(const inverse_gaussian_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; if(false == detail::check_scale(function, scale, &result, Policy())) return result; if(false == detail::check_location(function, mean, &result, Policy())) @@ -375,7 +375,7 @@ inline RealType cdf(const complemented2_type& dist, const Re BOOST_MATH_STD_USING // for ADL of std functions // Checking function argument - RealType result; + RealType result = 0; const char* function = "boost::math::pdf(const laplace_distribution<%1%>&, %1%))"; if (false == dist.check_parameters(function, &result)) return result; if (false == detail::check_x(function, x, &result, Policy())) return result; @@ -126,7 +126,7 @@ inline RealType cdf(const laplace_distribution& dist, const Re BOOST_MATH_STD_USING // for ADL of std functions // Checking function argument - RealType result; + RealType result = 0; const char* function = "boost::math::cdf(const laplace_distribution<%1%>&, %1%)"; if (false == dist.check_parameters(function, &result)) return result; if (false == detail::check_x(function, x, &result, Policy())) return result; @@ -157,7 +157,7 @@ inline RealType quantile(const laplace_distribution& dist, con BOOST_MATH_STD_USING // for ADL of std functions. // Checking function argument - RealType result; + RealType result = 0; const char* function = "boost::math::quantile(const laplace_distribution<%1%>&, %1%)"; if (false == dist.check_parameters(function, &result)) return result; if(false == detail::check_probability(function, p, &result, Policy())) return result; @@ -199,7 +199,7 @@ inline RealType cdf(const complemented2_type& dist, const RealTyp static const char* function = "boost::math::pdf(const lognormal_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; if(0 == detail::check_scale(function, sigma, &result, Policy())) return result; if(0 == detail::check_lognormal_x(function, x, &result, Policy())) @@ -125,7 +125,7 @@ inline RealType cdf(const lognormal_distribution& dist, const static const char* function = "boost::math::cdf(const lognormal_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; if(0 == detail::check_lognormal_x(function, x, &result, Policy())) return result; @@ -143,7 +143,7 @@ inline RealType quantile(const lognormal_distribution& dist, c static const char* function = "boost::math::quantile(const lognormal_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; if(0 == detail::check_probability(function, p, &result, Policy())) return result; @@ -163,7 +163,7 @@ inline RealType cdf(const complemented2_type& dist) RealType mu = dist.location(); RealType sigma = dist.scale(); - RealType result; + RealType result = 0; if(0 == detail::check_scale("boost::math::mean(const lognormal_distribution<%1%>&)", sigma, &result, Policy())) return result; @@ -217,7 +217,7 @@ inline RealType variance(const lognormal_distribution& dist) RealType mu = dist.location(); RealType sigma = dist.scale(); - RealType result; + RealType result = 0; if(0 == detail::check_scale("boost::math::variance(const lognormal_distribution<%1%>&)", sigma, &result, Policy())) return result; @@ -232,7 +232,7 @@ inline RealType mode(const lognormal_distribution& dist) RealType mu = dist.location(); RealType sigma = dist.scale(); - RealType result; + RealType result = 0; if(0 == detail::check_scale("boost::math::mode(const lognormal_distribution<%1%>&)", sigma, &result, Policy())) return result; @@ -258,7 +258,7 @@ inline RealType skewness(const lognormal_distribution& dist) RealType ss = sigma * sigma; RealType ess = exp(ss); - RealType result; + RealType result = 0; if(0 == detail::check_scale("boost::math::skewness(const lognormal_distribution<%1%>&)", sigma, &result, Policy())) return result; @@ -274,7 +274,7 @@ inline RealType kurtosis(const lognormal_distribution& dist) RealType sigma = dist.scale(); RealType ss = sigma * sigma; - RealType result; + RealType result = 0; if(0 == detail::check_scale("boost::math::kurtosis(const lognormal_distribution<%1%>&)", sigma, &result, Policy())) return result; @@ -290,7 +290,7 @@ inline RealType kurtosis_excess(const lognormal_distribution& RealType sigma = dist.scale(); RealType ss = sigma * sigma; - RealType result; + RealType result = 0; if(0 == detail::check_scale("boost::math::kurtosis_excess(const lognormal_distribution<%1%>&)", sigma, &result, Policy())) return result; diff --git a/include/boost/math/distributions/negative_binomial.hpp b/include/boost/math/distributions/negative_binomial.hpp index 521b52756..28ce4b996 100644 --- a/include/boost/math/distributions/negative_binomial.hpp +++ b/include/boost/math/distributions/negative_binomial.hpp @@ -165,7 +165,7 @@ namespace boost RealType alpha) // alpha 0.05 equivalent to 95% for one-sided test. { static const char* function = "boost::math::negative_binomial<%1%>::find_lower_bound_on_p"; - RealType result; // of error checks. + RealType result = 0; // of error checks. RealType failures = trials - successes; if(false == detail::check_probability(function, alpha, &result, Policy()) && negative_binomial_detail::check_dist_and_k( @@ -190,7 +190,7 @@ namespace boost RealType alpha) // alpha 0.05 equivalent to 95% for one-sided test. { static const char* function = "boost::math::negative_binomial<%1%>::find_upper_bound_on_p"; - RealType result; // of error checks. + RealType result = 0; // of error checks. RealType failures = trials - successes; if(false == negative_binomial_detail::check_dist_and_k( function, successes, RealType(0), failures, &result, Policy()) @@ -222,7 +222,7 @@ namespace boost { static const char* function = "boost::math::negative_binomial<%1%>::find_minimum_number_of_trials"; // Error checks: - RealType result; + RealType result = 0; if(false == negative_binomial_detail::check_dist_and_k( function, RealType(1), p, k, &result, Policy()) && detail::check_probability(function, alpha, &result, Policy())) @@ -239,7 +239,7 @@ namespace boost { static const char* function = "boost::math::negative_binomial<%1%>::find_maximum_number_of_trials"; // Error checks: - RealType result; + RealType result = 0; if(false == negative_binomial_detail::check_dist_and_k( function, RealType(1), p, k, &result, Policy()) && detail::check_probability(function, alpha, &result, Policy())) @@ -343,7 +343,7 @@ namespace boost RealType r = dist.successes(); RealType p = dist.success_fraction(); - RealType result; + RealType result = 0; if(false == negative_binomial_detail::check_dist_and_k( function, r, @@ -370,7 +370,7 @@ namespace boost RealType p = dist.success_fraction(); RealType r = dist.successes(); // Error check: - RealType result; + RealType result = 0; if(false == negative_binomial_detail::check_dist_and_k( function, r, @@ -399,7 +399,7 @@ namespace boost RealType p = dist.success_fraction(); RealType r = dist.successes(); // Error check: - RealType result; + RealType result = 0; if(false == negative_binomial_detail::check_dist_and_k( function, r, @@ -435,7 +435,7 @@ namespace boost RealType p = dist.success_fraction(); RealType r = dist.successes(); // Check dist and P. - RealType result; + RealType result = 0; if(false == negative_binomial_detail::check_dist_and_prob (function, r, p, P, &result, Policy())) { @@ -509,7 +509,7 @@ namespace boost const negative_binomial_distribution& dist = c.dist; RealType p = dist.success_fraction(); RealType r = dist.successes(); - RealType result; + RealType result = 0; if(false == negative_binomial_detail::check_dist_and_prob( function, r, diff --git a/include/boost/math/distributions/normal.hpp b/include/boost/math/distributions/normal.hpp index 69da2dc38..baeecf634 100644 --- a/include/boost/math/distributions/normal.hpp +++ b/include/boost/math/distributions/normal.hpp @@ -106,7 +106,7 @@ inline RealType pdf(const normal_distribution& dist, const Rea // return 0; //} - RealType result; + RealType result = 0; if(false == detail::check_scale(function, sd, &result, Policy())) { return result; @@ -138,7 +138,7 @@ inline RealType cdf(const normal_distribution& dist, const Rea RealType sd = dist.standard_deviation(); RealType mean = dist.mean(); static const char* function = "boost::math::cdf(const normal_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; if(false == detail::check_scale(function, sd, &result, Policy())) { return result; @@ -179,7 +179,7 @@ inline RealType quantile(const normal_distribution& dist, cons RealType mean = dist.mean(); static const char* function = "boost::math::quantile(const normal_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; if(false == detail::check_scale(function, sd, &result, Policy())) return result; if(false == detail::check_location(function, mean, &result, Policy())) @@ -218,7 +218,7 @@ inline RealType cdf(const complemented2_type::pareto_distribution", scale, shape, &result, Policy()); } @@ -182,7 +182,7 @@ namespace boost static const char* function = "boost::math::pdf(const pareto_distribution<%1%>&, %1%)"; RealType scale = dist.scale(); RealType shape = dist.shape(); - RealType result; + RealType result = 0; if(false == (detail::check_pareto_x(function, x, &result, Policy()) && detail::check_pareto(function, scale, shape, &result, Policy()))) return result; @@ -201,7 +201,7 @@ namespace boost static const char* function = "boost::math::cdf(const pareto_distribution<%1%>&, %1%)"; RealType scale = dist.scale(); RealType shape = dist.shape(); - RealType result; + RealType result = 0; if(false == (detail::check_pareto_x(function, x, &result, Policy()) && detail::check_pareto(function, scale, shape, &result, Policy()))) @@ -222,7 +222,7 @@ namespace boost { BOOST_MATH_STD_USING // for ADL of std function pow. static const char* function = "boost::math::quantile(const pareto_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; RealType scale = dist.scale(); RealType shape = dist.shape(); if(false == (detail::check_probability(function, p, &result, Policy()) @@ -249,7 +249,7 @@ namespace boost { BOOST_MATH_STD_USING // for ADL of std function pow. static const char* function = "boost::math::cdf(const pareto_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; RealType x = c.param; RealType scale = c.dist.scale(); RealType shape = c.dist.shape(); @@ -271,7 +271,7 @@ namespace boost { BOOST_MATH_STD_USING // for ADL of std function pow. static const char* function = "boost::math::quantile(const pareto_distribution<%1%>&, %1%)"; - RealType result; + RealType result = 0; RealType q = c.param; RealType scale = c.dist.scale(); RealType shape = c.dist.shape(); @@ -296,7 +296,7 @@ namespace boost template inline RealType mean(const pareto_distribution& dist) { - RealType result; + RealType result = 0; static const char* function = "boost::math::mean(const pareto_distribution<%1%>&, %1%)"; if(false == detail::check_pareto(function, dist.scale(), dist.shape(), &result, Policy())) { @@ -322,7 +322,7 @@ namespace boost template inline RealType median(const pareto_distribution& dist) { - RealType result; + RealType result = 0; static const char* function = "boost::math::median(const pareto_distribution<%1%>&, %1%)"; if(false == detail::check_pareto(function, dist.scale(), dist.shape(), &result, Policy())) { @@ -335,7 +335,7 @@ namespace boost template inline RealType variance(const pareto_distribution& dist) { - RealType result; + RealType result = 0; RealType scale = dist.scale(); RealType shape = dist.shape(); static const char* function = "boost::math::variance(const pareto_distribution<%1%>&, %1%)"; @@ -361,7 +361,7 @@ namespace boost inline RealType skewness(const pareto_distribution& dist) { BOOST_MATH_STD_USING - RealType result; + RealType result = 0; RealType shape = dist.shape(); static const char* function = "boost::math::pdf(const pareto_distribution<%1%>&, %1%)"; if(false == detail::check_pareto(function, dist.scale(), shape, &result, Policy())) @@ -386,7 +386,7 @@ namespace boost template inline RealType kurtosis(const pareto_distribution& dist) { - RealType result; + RealType result = 0; RealType shape = dist.shape(); static const char* function = "boost::math::pdf(const pareto_distribution<%1%>&, %1%)"; if(false == detail::check_pareto(function, dist.scale(), shape, &result, Policy())) @@ -410,7 +410,7 @@ namespace boost template inline RealType kurtosis_excess(const pareto_distribution& dist) { - RealType result; + RealType result = 0; RealType shape = dist.shape(); static const char* function = "boost::math::pdf(const pareto_distribution<%1%>&, %1%)"; if(false == detail::check_pareto(function, dist.scale(), shape, &result, Policy())) diff --git a/include/boost/math/distributions/poisson.hpp b/include/boost/math/distributions/poisson.hpp index 3cb06e0f4..3dd58f80c 100644 --- a/include/boost/math/distributions/poisson.hpp +++ b/include/boost/math/distributions/poisson.hpp @@ -316,7 +316,7 @@ namespace boost RealType mean = dist.mean(); // Error check: - RealType result; + RealType result = 0; if(false == poisson_detail::check_dist_and_k( "boost::math::pdf(const poisson_distribution<%1%>&, %1%)", mean, @@ -362,7 +362,7 @@ namespace boost RealType mean = dist.mean(); // Error checks: - RealType result; + RealType result = 0; if(false == poisson_detail::check_dist_and_k( "boost::math::cdf(const poisson_distribution<%1%>&, %1%)", mean, @@ -414,7 +414,7 @@ namespace boost RealType mean = dist.mean(); // Error checks: - RealType result; + RealType result = 0; if(false == poisson_detail::check_dist_and_k( "boost::math::cdf(const poisson_distribution<%1%>&, %1%)", mean, @@ -443,7 +443,7 @@ namespace boost inline RealType quantile(const poisson_distribution& dist, const RealType& p) { // Quantile (or Percent Point) Poisson function. // Return the number of expected events k for a given probability p. - RealType result; // of Argument checks: + RealType result = 0; // of Argument checks: if(false == poisson_detail::check_prob( "boost::math::quantile(const poisson_distribution<%1%>&, %1%)", p, @@ -514,7 +514,7 @@ namespace boost // Error checks: RealType q = c.param; const poisson_distribution& dist = c.dist; - RealType result; // of argument checks. + RealType result = 0; // of argument checks. if(false == poisson_detail::check_prob( "boost::math::quantile(const poisson_distribution<%1%>&, %1%)", q, diff --git a/include/boost/math/distributions/rayleigh.hpp b/include/boost/math/distributions/rayleigh.hpp index 2aeef4d64..1ffb9dc0a 100644 --- a/include/boost/math/distributions/rayleigh.hpp +++ b/include/boost/math/distributions/rayleigh.hpp @@ -98,7 +98,7 @@ inline RealType pdf(const rayleigh_distribution& dist, const R BOOST_MATH_STD_USING // for ADL of std function exp. RealType sigma = dist.sigma(); - RealType result; + RealType result = 0; static const char* function = "boost::math::pdf(const rayleigh_distribution<%1%>&, %1%)"; if(false == detail::verify_sigma(function, sigma, &result, Policy())) { @@ -118,7 +118,7 @@ inline RealType cdf(const rayleigh_distribution& dist, const R { BOOST_MATH_STD_USING // for ADL of std functions - RealType result; + RealType result = 0; RealType sigma = dist.sigma(); static const char* function = "boost::math::cdf(const rayleigh_distribution<%1%>&, %1%)"; if(false == detail::verify_sigma(function, sigma, &result, Policy())) @@ -138,7 +138,7 @@ inline RealType quantile(const rayleigh_distribution& dist, co { BOOST_MATH_STD_USING // for ADL of std functions - RealType result; + RealType result = 0; RealType sigma = dist.sigma(); static const char* function = "boost::math::quantile(const rayleigh_distribution<%1%>&, %1%)"; if(false == detail::verify_sigma(function, sigma, &result, Policy())) @@ -163,7 +163,7 @@ inline RealType cdf(const complemented2_type inline RealType mean(const rayleigh_distribution& dist) { - RealType result; + RealType result = 0; RealType sigma = dist.sigma(); static const char* function = "boost::math::mean(const rayleigh_distribution<%1%>&, %1%)"; if(false == detail::verify_sigma(function, sigma, &result, Policy())) @@ -225,7 +225,7 @@ inline RealType mean(const rayleigh_distribution& dist) template inline RealType variance(const rayleigh_distribution& dist) { - RealType result; + RealType result = 0; RealType sigma = dist.sigma(); static const char* function = "boost::math::variance(const rayleigh_distribution<%1%>&, %1%)"; if(false == detail::verify_sigma(function, sigma, &result, Policy())) diff --git a/include/boost/math/distributions/triangular.hpp b/include/boost/math/distributions/triangular.hpp index 5030081db..ee607e177 100644 --- a/include/boost/math/distributions/triangular.hpp +++ b/include/boost/math/distributions/triangular.hpp @@ -199,7 +199,7 @@ namespace boost{ namespace math RealType lower = dist.lower(); RealType mode = dist.mode(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular(function, lower, mode, upper, &result, Policy())) { return result; @@ -237,7 +237,7 @@ namespace boost{ namespace math RealType lower = dist.lower(); RealType mode = dist.mode(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular(function, lower, mode, upper, &result, Policy())) { return result; @@ -273,7 +273,7 @@ namespace boost{ namespace math RealType lower = dist.lower(); RealType mode = dist.mode(); RealType upper = dist.upper(); - RealType result; // of checks + RealType result = 0; // of checks if(false == detail::check_triangular(function,lower, mode, upper, &result, Policy())) { return result; @@ -316,7 +316,7 @@ namespace boost{ namespace math RealType mode = c.dist.mode(); RealType upper = c.dist.upper(); RealType x = c.param; - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular(function, lower, mode, upper, &result, Policy())) { return result; @@ -352,7 +352,7 @@ namespace boost{ namespace math RealType m = c.dist.mode(); RealType u = c.dist.upper(); RealType q = c.param; // probability 0 to 1. - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular(function, l, m, u, &result, Policy())) { return result; @@ -399,7 +399,7 @@ namespace boost{ namespace math RealType lower = dist.lower(); RealType mode = dist.mode(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular(function, lower, mode, upper, &result, Policy())) { return result; @@ -415,7 +415,7 @@ namespace boost{ namespace math RealType lower = dist.lower(); RealType mode = dist.mode(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular(function, lower, mode, upper, &result, Policy())) { return result; @@ -428,7 +428,7 @@ namespace boost{ namespace math { static const char* function = "boost::math::mode(const triangular_distribution<%1%>&)"; RealType mode = dist.mode(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular_mode(function, mode, &result, Policy())) { // This should never happen! return result; @@ -442,7 +442,7 @@ namespace boost{ namespace math BOOST_MATH_STD_USING // ADL of std functions. static const char* function = "boost::math::median(const triangular_distribution<%1%>&)"; RealType mode = dist.mode(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular_mode(function, mode, &result, Policy())) { // This should never happen! return result; @@ -469,7 +469,7 @@ namespace boost{ namespace math RealType lower = dist.lower(); RealType mode = dist.mode(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular(function,lower, mode, upper, &result, Policy())) { return result; @@ -485,7 +485,7 @@ namespace boost{ namespace math RealType lower = dist.lower(); RealType upper = dist.upper(); RealType mode = dist.mode(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular(function,lower, mode, upper, &result, Policy())) { return result; @@ -500,7 +500,7 @@ namespace boost{ namespace math RealType lower = dist.lower(); RealType upper = dist.upper(); RealType mode = dist.mode(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_triangular(function,lower, mode, upper, &result, Policy())) { return result; diff --git a/include/boost/math/distributions/uniform.hpp b/include/boost/math/distributions/uniform.hpp index 2e17e18e7..5d967a17f 100644 --- a/include/boost/math/distributions/uniform.hpp +++ b/include/boost/math/distributions/uniform.hpp @@ -161,7 +161,7 @@ namespace boost{ namespace math { RealType lower = dist.lower(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_uniform("boost::math::pdf(const uniform_distribution<%1%>&, %1%)", lower, upper, &result, Policy())) { return result; @@ -186,7 +186,7 @@ namespace boost{ namespace math { RealType lower = dist.lower(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_uniform("boost::math::cdf(const uniform_distribution<%1%>&, %1%)",lower, upper, &result, Policy())) { return result; @@ -211,7 +211,7 @@ namespace boost{ namespace math { RealType lower = dist.lower(); RealType upper = dist.upper(); - RealType result; // of checks + RealType result = 0; // of checks if(false == detail::check_uniform("boost::math::quantile(const uniform_distribution<%1%>&, %1%)",lower, upper, &result, Policy())) { return result; @@ -237,7 +237,7 @@ namespace boost{ namespace math RealType lower = c.dist.lower(); RealType upper = c.dist.upper(); RealType x = c.param; - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_uniform("boost::math::cdf(const uniform_distribution<%1%>&, %1%)", lower, upper, &result, Policy())) { return result; @@ -263,7 +263,7 @@ namespace boost{ namespace math RealType lower = c.dist.lower(); RealType upper = c.dist.upper(); RealType q = c.param; - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_uniform("boost::math::quantile(const uniform_distribution<%1%>&, %1%)", lower, upper, &result, Policy())) { return result; @@ -285,7 +285,7 @@ namespace boost{ namespace math { RealType lower = dist.lower(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_uniform("boost::math::mean(const uniform_distribution<%1%>&)", lower, upper, &result, Policy())) { return result; @@ -298,7 +298,7 @@ namespace boost{ namespace math { RealType lower = dist.lower(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_uniform("boost::math::variance(const uniform_distribution<%1%>&)", lower, upper, &result, Policy())) { return result; @@ -312,7 +312,7 @@ namespace boost{ namespace math { RealType lower = dist.lower(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_uniform("boost::math::mode(const uniform_distribution<%1%>&)", lower, upper, &result, Policy())) { return result; @@ -326,7 +326,7 @@ namespace boost{ namespace math { RealType lower = dist.lower(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_uniform("boost::math::median(const uniform_distribution<%1%>&)", lower, upper, &result, Policy())) { return result; @@ -338,7 +338,7 @@ namespace boost{ namespace math { RealType lower = dist.lower(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_uniform("boost::math::skewness(const uniform_distribution<%1%>&)",lower, upper, &result, Policy())) { return result; @@ -351,7 +351,7 @@ namespace boost{ namespace math { RealType lower = dist.lower(); RealType upper = dist.upper(); - RealType result; // of checks. + RealType result = 0; // of checks. if(false == detail::check_uniform("boost::math::kurtosis_execess(const uniform_distribution<%1%>&)", lower, upper, &result, Policy())) { return result; diff --git a/include/boost/math/distributions/weibull.hpp b/include/boost/math/distributions/weibull.hpp index e47437ff3..6b5c7db34 100644 --- a/include/boost/math/distributions/weibull.hpp +++ b/include/boost/math/distributions/weibull.hpp @@ -126,7 +126,7 @@ inline RealType pdf(const weibull_distribution& dist, const Re RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_weibull(function, scale, shape, &result, Policy())) return result; if(false == detail::check_weibull_x(function, x, &result, Policy())) @@ -152,7 +152,7 @@ inline RealType cdf(const weibull_distribution& dist, const Re RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_weibull(function, scale, shape, &result, Policy())) return result; if(false == detail::check_weibull_x(function, x, &result, Policy())) @@ -173,7 +173,7 @@ inline RealType quantile(const weibull_distribution& dist, con RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_weibull(function, scale, shape, &result, Policy())) return result; if(false == detail::check_probability(function, p, &result, Policy())) @@ -197,7 +197,7 @@ inline RealType cdf(const complemented2_type& dist) RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_weibull(function, scale, shape, &result, Policy())) return result; @@ -259,7 +259,7 @@ inline RealType variance(const weibull_distribution& dist) static const char* function = "boost::math::variance(const weibull_distribution<%1%>)"; - RealType result; + RealType result = 0; if(false == detail::check_weibull(function, scale, shape, &result, Policy())) { return result; @@ -281,7 +281,7 @@ inline RealType mode(const weibull_distribution& dist) RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_weibull(function, scale, shape, &result, Policy())) { return result; @@ -302,7 +302,7 @@ inline RealType median(const weibull_distribution& dist) RealType shape = dist.shape(); // Wikipedia k RealType scale = dist.scale(); // Wikipedia lambda - RealType result; + RealType result = 0; if(false == detail::check_weibull(function, scale, shape, &result, Policy())) { return result; @@ -322,7 +322,7 @@ inline RealType skewness(const weibull_distribution& dist) RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_weibull(function, scale, shape, &result, Policy())) { return result; @@ -348,7 +348,7 @@ inline RealType kurtosis_excess(const weibull_distribution& di RealType shape = dist.shape(); RealType scale = dist.scale(); - RealType result; + RealType result = 0; if(false == detail::check_weibull(function, scale, shape, &result, Policy())) return result; diff --git a/include/boost/math/policies/error_handling.hpp b/include/boost/math/policies/error_handling.hpp index 198cd020b..833ae4901 100644 --- a/include/boost/math/policies/error_handling.hpp +++ b/include/boost/math/policies/error_handling.hpp @@ -616,7 +616,7 @@ inline R checked_narrowing_cast(T val, const char* function) // // Most of what follows will evaluate to a no-op: // - R result; + R result = 0; if(detail::check_overflow(val, &result, function, overflow_type())) return result; if(detail::check_underflow(val, &result, function, underflow_type())) diff --git a/include/boost/math/policies/policy.hpp b/include/boost/math/policies/policy.hpp index b66cd7f92..355bf18fd 100644 --- a/include/boost/math/policies/policy.hpp +++ b/include/boost/math/policies/policy.hpp @@ -738,6 +738,7 @@ struct basic_digits : public mpl::int_{ }; template struct precision { + BOOST_STATIC_ASSERT( ::std::numeric_limits::radix == 2); typedef typename Policy::precision_type precision_type; typedef basic_digits digits_t; typedef typename mpl::if_< @@ -775,6 +776,7 @@ struct precision template struct precision { + BOOST_STATIC_ASSERT((::std::numeric_limits::radix == 2) || ((::std::numeric_limits::is_specialized == 0) || (::std::numeric_limits::digits == 0))); #ifndef __BORLANDC__ typedef typename Policy::precision_type precision_type; typedef typename mpl::if_c< @@ -896,8 +898,10 @@ inline T get_epsilon_imp(mpl::true_ const&) { #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS BOOST_STATIC_ASSERT( ::std::numeric_limits::is_specialized); + BOOST_STATIC_ASSERT( ::std::numeric_limits::radix == 2); #else BOOST_ASSERT(::std::numeric_limits::is_specialized); + BOOST_ASSERT(::std::numeric_limits::radix == 2); #endif typedef typename boost::math::policies::precision::type p_t; typedef mpl::bool_::digits> is_small_int; @@ -916,7 +920,7 @@ inline T get_epsilon_imp(mpl::false_ const&) template inline T get_epsilon(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T)) { - typedef mpl::bool_< std::numeric_limits::is_specialized > tag_type; + typedef mpl::bool_< (std::numeric_limits::is_specialized && (std::numeric_limits::radix == 2)) > tag_type; return detail::get_epsilon_imp(tag_type()); } diff --git a/include/boost/math/special_functions/beta.hpp b/include/boost/math/special_functions/beta.hpp index 0e17af242..b68834c75 100644 --- a/include/boost/math/special_functions/beta.hpp +++ b/include/boost/math/special_functions/beta.hpp @@ -326,6 +326,10 @@ T ibeta_power_terms(T a, T b2 = (y * cgh) / bgh; l1 = a * log(b1); l2 = b * log(b2); + BOOST_MATH_INSTRUMENT_VARIABLE(b1); + BOOST_MATH_INSTRUMENT_VARIABLE(b2); + BOOST_MATH_INSTRUMENT_VARIABLE(l1); + BOOST_MATH_INSTRUMENT_VARIABLE(l2); if((l1 >= tools::log_max_value()) || (l1 <= tools::log_min_value()) || (l2 >= tools::log_max_value()) @@ -384,9 +388,8 @@ T ibeta_power_terms(T a, return pow(x, a) * pow(y, b); } - T result; + T result= 0; // assignment here silences warnings later - T prefix = 1; T c = a + b; // integration limits for the gamma functions: @@ -519,7 +522,6 @@ T ibeta_series(T a, T b, T x, T s0, const boost::math::lanczos::undefined_lanczo if(normalised) { - T prefix = 1; T c = a + b; // figure out integration limits for the gamma function: diff --git a/include/boost/math/special_functions/cbrt.hpp b/include/boost/math/special_functions/cbrt.hpp index c5421344f..0fc6e0742 100644 --- a/include/boost/math/special_functions/cbrt.hpp +++ b/include/boost/math/special_functions/cbrt.hpp @@ -90,6 +90,8 @@ T cbrt_imp(T z, const Policy& pol) typedef typename largest_cbrt_int_type::type shift_type; + BOOST_STATIC_ASSERT( ::std::numeric_limits::radix == 2); + if(abs(i_exp3) < std::numeric_limits::digits) { if(i_exp3 > 0) diff --git a/include/boost/math/special_functions/detail/t_distribution_inv.hpp b/include/boost/math/special_functions/detail/t_distribution_inv.hpp index 8f7f0e6fd..bb6bc848a 100644 --- a/include/boost/math/special_functions/detail/t_distribution_inv.hpp +++ b/include/boost/math/special_functions/detail/t_distribution_inv.hpp @@ -529,7 +529,10 @@ inline T fast_students_t_quantile(T df, T p, const Policy& pol) typedef mpl::bool_< (std::numeric_limits::digits <= 53) && - (std::numeric_limits::is_specialized)> tag_type; + (std::numeric_limits::is_specialized) + && + (std::numeric_limits::radix == 2) + > tag_type; return policies::checked_narrowing_cast(fast_students_t_quantile_imp(static_cast(df), static_cast(p), pol, static_cast(0)), "boost::math::students_t_quantile<%1%>(%1%,%1%,%1%)"); } diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index 5d414259b..461adf397 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -1,3 +1,4 @@ + // Copyright John Maddock 2006-7. // Copyright Paul A. Bristow 2007. @@ -150,6 +151,7 @@ T gamma_imp(T z, const Policy& pol, const L& l) if(z <= -20) { result = gamma_imp(T(-z), pol, l) * sinpx(z); + BOOST_MATH_INSTRUMENT_VARIABLE(result); if((fabs(result) < 1) && (tools::max_value() * fabs(result) < boost::math::constants::pi())) return policies::raise_overflow_error(function, "Result of tgamma is too large to represent.", pol); result = -boost::math::constants::pi() / result; @@ -157,6 +159,7 @@ T gamma_imp(T z, const Policy& pol, const L& l) return policies::raise_underflow_error(function, "Result of tgamma is too small to represent.", pol); if((boost::math::fpclassify)(result) == (int)FP_SUBNORMAL) return policies::raise_denorm_error(function, "Result of tgamma is denormalized.", result, pol); + BOOST_MATH_INSTRUMENT_VARIABLE(result); return result; } @@ -167,29 +170,41 @@ T gamma_imp(T z, const Policy& pol, const L& l) z += 1; } } + BOOST_MATH_INSTRUMENT_VARIABLE(result); if((floor(z) == z) && (z < max_factorial::value)) { result *= unchecked_factorial(itrunc(z, pol) - 1); + BOOST_MATH_INSTRUMENT_VARIABLE(result); } else { result *= L::lanczos_sum(z); + BOOST_MATH_INSTRUMENT_VARIABLE(result); + BOOST_MATH_INSTRUMENT_VARIABLE(tools::log_max_value()); if(z * log(z) > tools::log_max_value()) { // we're going to overflow unless this is done with care: T zgh = (z + static_cast(L::g()) - boost::math::constants::half()); + BOOST_MATH_INSTRUMENT_VARIABLE(zgh); if(log(zgh) * z / 2 > tools::log_max_value()) return policies::raise_overflow_error(function, "Result of tgamma is too large to represent.", pol); T hp = pow(zgh, (z / 2) - T(0.25)); + BOOST_MATH_INSTRUMENT_VARIABLE(hp); result *= hp / exp(zgh); + BOOST_MATH_INSTRUMENT_VARIABLE(result); if(tools::max_value() / hp < result) return policies::raise_overflow_error(function, "Result of tgamma is too large to represent.", pol); result *= hp; + BOOST_MATH_INSTRUMENT_VARIABLE(result); } else { T zgh = (z + static_cast(L::g()) - boost::math::constants::half()); + BOOST_MATH_INSTRUMENT_VARIABLE(zgh); + BOOST_MATH_INSTRUMENT_VARIABLE(pow(zgh, z - boost::math::constants::half())); + BOOST_MATH_INSTRUMENT_VARIABLE(exp(zgh)); result *= pow(zgh, z - boost::math::constants::half()) / exp(zgh); + BOOST_MATH_INSTRUMENT_VARIABLE(result); } } return result; diff --git a/include/boost/math/tools/config.hpp b/include/boost/math/tools/config.hpp index 140733205..736fedee5 100644 --- a/include/boost/math/tools/config.hpp +++ b/include/boost/math/tools/config.hpp @@ -253,6 +253,12 @@ inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d) return (std::max)((std::max)(a, b), (std::max)(c, d)); } } // namespace tools + +template +void suppress_unused_variable_warning(const T&) +{ +} + }} // namespace boost namespace math #if ((defined(__linux__) && !defined(__UCLIBC__)) || defined(__QNX__) || defined(__IBMCPP__)) && !defined(BOOST_NO_FENV_H) diff --git a/include/boost/math/tools/precision.hpp b/include/boost/math/tools/precision.hpp index e7695e92a..54cadcc96 100644 --- a/include/boost/math/tools/precision.hpp +++ b/include/boost/math/tools/precision.hpp @@ -45,8 +45,10 @@ inline int digits(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(T)) { #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS BOOST_STATIC_ASSERT( ::std::numeric_limits::is_specialized); + BOOST_STATIC_ASSERT( ::std::numeric_limits::radix == 2); #else BOOST_ASSERT(::std::numeric_limits::is_specialized); + BOOST_ASSERT(::std::numeric_limits::radix == 2); #endif return std::numeric_limits::digits; } @@ -303,14 +305,14 @@ inline T forth_root_epsilon_imp(const T*, const Tag&) template inline T root_epsilon() { - typedef mpl::int_::digits> tag_type; + typedef mpl::int_< (::std::numeric_limits::radix == 2) ? std::numeric_limits::digits : 0> tag_type; return detail::root_epsilon_imp(static_cast(0), tag_type()); } template inline T forth_root_epsilon() { - typedef mpl::int_::digits> tag_type; + typedef mpl::int_< (::std::numeric_limits::radix == 2) ? std::numeric_limits::digits : 0> tag_type; return detail::forth_root_epsilon_imp(static_cast(0), tag_type()); } From 1f6642b3888e0d8bd3955edbeef65979d2537fa5 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 2 May 2011 18:21:28 +0000 Subject: [PATCH 77/82] Add initial version of e_float support. [SVN r71674] --- config/Jamfile.v2 | 4 +- config/has_e_float.cpp | 15 + include/boost/math/bindings/e_float.hpp | 803 ++++++++++++++++++++++++ test/Jamfile.v2 | 3 + test/e_float_concept_check.cpp | 40 ++ 5 files changed, 864 insertions(+), 1 deletion(-) create mode 100644 config/has_e_float.cpp create mode 100644 include/boost/math/bindings/e_float.hpp create mode 100644 test/e_float_concept_check.cpp diff --git a/config/Jamfile.v2 b/config/Jamfile.v2 index 546b07be8..8773e6e1d 100644 --- a/config/Jamfile.v2 +++ b/config/Jamfile.v2 @@ -8,6 +8,7 @@ import path ; local ntl-path = [ modules.peek : NTL_PATH ] ; local gmp_path = [ modules.peek : GMP_PATH ] ; +local e_float_path = [ modules.peek : E_FLOAT_PATH ] ; obj has_long_double_support : has_long_double_support.cpp ; obj has_mpfr_class : has_mpfr_class.cpp : @@ -19,6 +20,7 @@ obj has_gmpxx : has_gmpxx.cpp : $(gmp_path) $(gmp_path)/mpfr $(gmp_path)/gmpfrxx ; obj has_gcc_visibility : has_gcc_visibility.cpp : gcc:-fvisibility=hidden gcc:-Werror ; +obj has_e_float : has_e_float.cpp : $(e_float_path) ; explicit has_long_double_support ; explicit has_mpfr_class ; @@ -26,4 +28,4 @@ explicit has_mpreal ; explicit has_ntl_rr ; explicit has_gmpxx ; explicit has_gcc_visibility ; - +explicit has_e_float ; diff --git a/config/has_e_float.cpp b/config/has_e_float.cpp new file mode 100644 index 000000000..1f3b30539 --- /dev/null +++ b/config/has_e_float.cpp @@ -0,0 +1,15 @@ +// Copyright John Maddock 2011. +// 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) + + +#ifdef _MSC_VER +# pragma warning (disable : 4100) // unreferenced formal parameter +#endif + +#define E_FLOAT_TYPE_EFX + +#include +#include + diff --git a/include/boost/math/bindings/e_float.hpp b/include/boost/math/bindings/e_float.hpp new file mode 100644 index 000000000..d3d72e7ce --- /dev/null +++ b/include/boost/math/bindings/e_float.hpp @@ -0,0 +1,803 @@ +// Copyright John Maddock 2008. +// 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) +// +// Wrapper that works with mpfr_class defined in gmpfrxx.h +// See http://math.berkeley.edu/~wilken/code/gmpfrxx/ +// Also requires the gmp and mpfr libraries. +// + +#ifndef BOOST_MATH_E_FLOAT_BINDINGS_HPP +#define BOOST_MATH_E_FLOAT_BINDINGS_HPP + +#include + + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + + +namespace boost{ namespace math{ namespace ef{ + +class e_float +{ +public: + // Constructors: + e_float() {} + e_float(const ::e_float& c) : m_value(c){} + e_float(char c) + { + m_value = ::e_float(c); + } +#ifndef BOOST_NO_INTRINSIC_WCHAR_T + e_float(wchar_t c) + { + m_value = ::e_float(c); + } +#endif + e_float(unsigned char c) + { + m_value = ::e_float(c); + } + e_float(signed char c) + { + m_value = ::e_float(c); + } + e_float(unsigned short c) + { + m_value = ::e_float(c); + } + e_float(short c) + { + m_value = ::e_float(c); + } + e_float(unsigned int c) + { + m_value = ::e_float(c); + } + e_float(int c) + { + m_value = ::e_float(c); + } + e_float(unsigned long c) + { + m_value = ::e_float((UINT64)c); + } + e_float(long c) + { + m_value = ::e_float((INT64)c); + } +#ifdef BOOST_HAS_LONG_LONG + e_float(boost::ulong_long_type c) + { + m_value = ::e_float(c); + } + e_float(boost::long_long_type c) + { + m_value = ::e_float(c); + } +#endif + e_float(float c) + { + assign_large_real(c); + } + e_float(double c) + { + assign_large_real(c); + } + e_float(long double c) + { + assign_large_real(c); + } + + // Assignment: + e_float& operator=(char c) { m_value = ::e_float(c); return *this; } + e_float& operator=(unsigned char c) { m_value = ::e_float(c); return *this; } + e_float& operator=(signed char c) { m_value = ::e_float(c); return *this; } +#ifndef BOOST_NO_INTRINSIC_WCHAR_T + e_float& operator=(wchar_t c) { m_value = ::e_float(c); return *this; } +#endif + e_float& operator=(short c) { m_value = ::e_float(c); return *this; } + e_float& operator=(unsigned short c) { m_value = ::e_float(c); return *this; } + e_float& operator=(int c) { m_value = ::e_float(c); return *this; } + e_float& operator=(unsigned int c) { m_value = ::e_float(c); return *this; } + e_float& operator=(long c) { m_value = ::e_float((INT64)c); return *this; } + e_float& operator=(unsigned long c) { m_value = ::e_float((UINT64)c); return *this; } +#ifdef BOOST_HAS_LONG_LONG + e_float& operator=(boost::long_long_type c) { m_value = ::e_float(c); return *this; } + e_float& operator=(boost::ulong_long_type c) { m_value = ::e_float(c); return *this; } +#endif + e_float& operator=(float c) { assign_large_real(c); return *this; } + e_float& operator=(double c) { assign_large_real(c); return *this; } + e_float& operator=(long double c) { assign_large_real(c); return *this; } + + // Access: + ::e_float& value(){ return m_value; } + ::e_float const& value()const{ return m_value; } + + // Member arithmetic: + e_float& operator+=(const e_float& other) + { m_value += other.value(); return *this; } + e_float& operator-=(const e_float& other) + { m_value -= other.value(); return *this; } + e_float& operator*=(const e_float& other) + { m_value *= other.value(); return *this; } + e_float& operator/=(const e_float& other) + { m_value /= other.value(); return *this; } + e_float operator-()const + { return -m_value; } + e_float const& operator+()const + { return *this; } + +private: + ::e_float m_value; + + template + void assign_large_real(const V& a) + { + using std::frexp; + using std::ldexp; + using std::floor; + if (a == 0) { + m_value = ::ef::zero(); + return; + } + + if (a == 1) { + m_value = ::ef::one(); + return; + } + + if ((boost::math::isinf)(a)) + { + m_value = a > 0 ? m_value.my_value_inf() : -m_value.my_value_inf(); + return; + } + if((boost::math::isnan)(a)) + { + m_value = m_value.my_value_nan(); + return; + } + + int e; + long double f, term; + ::e_float t; + m_value = ::ef::zero(); + + f = frexp(a, &e); + + ::e_float shift = ::ef::pow2(30); + + while(f) + { + // extract 30 bits from f: + f = ldexp(f, 30); + term = floor(f); + e -= 30; + m_value *= shift; + m_value += ::e_float(static_cast(term)); + f -= term; + } + m_value *= ::ef::pow2(e); + } +}; + + +// Non-member arithmetic: +inline e_float operator+(const e_float& a, const e_float& b) +{ + e_float result(a); + result += b; + return result; +} +inline e_float operator-(const e_float& a, const e_float& b) +{ + e_float result(a); + result -= b; + return result; +} +inline e_float operator*(const e_float& a, const e_float& b) +{ + e_float result(a); + result *= b; + return result; +} +inline e_float operator/(const e_float& a, const e_float& b) +{ + e_float result(a); + result /= b; + return result; +} + +// Comparison: +inline bool operator == (const e_float& a, const e_float& b) +{ return a.value() == b.value() ? true : false; } +inline bool operator != (const e_float& a, const e_float& b) +{ return a.value() != b.value() ? true : false;} +inline bool operator < (const e_float& a, const e_float& b) +{ return a.value() < b.value() ? true : false; } +inline bool operator <= (const e_float& a, const e_float& b) +{ return a.value() <= b.value() ? true : false; } +inline bool operator > (const e_float& a, const e_float& b) +{ return a.value() > b.value() ? true : false; } +inline bool operator >= (const e_float& a, const e_float& b) +{ return a.value() >= b.value() ? true : false; } + +std::istream& operator >> (std::istream& is, e_float& f) +{ + return is >> f.value(); +} + +std::ostream& operator << (std::ostream& os, const e_float& f) +{ + return os << f.value(); +} + +inline e_float fabs(const e_float& v) +{ + return ::ef::fabs(v.value()); +} + +inline e_float abs(const e_float& v) +{ + return ::ef::fabs(v.value()); +} + +inline e_float floor(const e_float& v) +{ + return ::ef::floor(v.value()); +} + +inline e_float ceil(const e_float& v) +{ + return ::ef::ceil(v.value()); +} + +inline e_float pow(const e_float& v, const e_float& w) +{ + return ::ef::pow(v.value(), w.value()); +} + +inline e_float pow(const e_float& v, int i) +{ + return ::ef::pow(v.value(), ::e_float(i)); +} + +inline e_float exp(const e_float& v) +{ + return ::ef::exp(v.value()); +} + +inline e_float log(const e_float& v) +{ + return ::ef::log(v.value()); +} + +inline e_float sqrt(const e_float& v) +{ + return ::ef::sqrt(v.value()); +} + +inline e_float sin(const e_float& v) +{ + return ::ef::sin(v.value()); +} + +inline e_float cos(const e_float& v) +{ + return ::ef::cos(v.value()); +} + +inline e_float tan(const e_float& v) +{ + return ::ef::tan(v.value()); +} + +inline e_float acos(const e_float& v) +{ + return ::ef::acos(v.value()); +} + +inline e_float asin(const e_float& v) +{ + return ::ef::asin(v.value()); +} + +inline e_float atan(const e_float& v) +{ + return ::ef::atan(v.value()); +} + +inline e_float ldexp(const e_float& v, int e) +{ + return v.value() * ::ef::pow2(e); +} + +inline e_float frexp(const e_float& v, int* expon) +{ + double d; + INT64 i; + v.value().extract_parts(d, i); + *expon = static_cast(i); + return v.value() * ::ef::pow2(-i); +} + +inline e_float sinh (const e_float& x) +{ + return ::ef::sinh(x.value()); +} + +inline e_float cosh (const e_float& x) +{ + return ::ef::cosh(x.value()); +} + +inline e_float tanh (const e_float& x) +{ + return ::ef::tanh(x.value()); +} + +inline e_float asinh (const e_float& x) +{ + return ::ef::asinh(x.value()); +} + +inline e_float acosh (const e_float& x) +{ + return ::ef::acosh(x.value()); +} + +inline e_float atanh (const e_float& x) +{ + return ::ef::atanh(x.value()); +} + +e_float fmod(const e_float& v1, const e_float& v2) +{ + e_float n; + if(v1 < 0) + n = ceil(v1 / v2); + else + n = floor(v1 / v2); + return v1 - n * v2; +} + +} namespace detail{ + +template <> +inline int fpclassify_imp< boost::math::ef::e_float> BOOST_NO_MACRO_EXPAND(boost::math::ef::e_float x, const generic_tag&) +{ + if(x.value().isnan()) + return FP_NAN; + if(x.value().isinf()) + return FP_INFINITE; + if(x == 0) + return FP_ZERO; + return FP_NORMAL; +} + +} namespace ef{ + +template +inline int itrunc(const e_float& v, const Policy& pol) +{ + BOOST_MATH_STD_USING + e_float r = boost::math::trunc(v, pol); + if(fabs(r) > (std::numeric_limits::max)()) + return static_cast(policies::raise_rounding_error("boost::math::itrunc<%1%>(%1%)", 0, 0, v, pol)); + return static_cast(r.value().extract_int64()); +} + +template +inline long ltrunc(const e_float& v, const Policy& pol) +{ + BOOST_MATH_STD_USING + e_float r = boost::math::trunc(v, pol); + if(fabs(r) > (std::numeric_limits::max)()) + return static_cast(policies::raise_rounding_error("boost::math::ltrunc<%1%>(%1%)", 0, 0L, v, pol)); + return static_cast(r.value().extract_int64()); +} + +#ifdef BOOST_HAS_LONG_LONG +template +inline boost::long_long_type lltrunc(const e_float& v, const Policy& pol) +{ + BOOST_MATH_STD_USING + e_float r = boost::math::trunc(v, pol); + if(fabs(r) > (std::numeric_limits::max)()) + return static_cast(policies::raise_rounding_error("boost::math::lltrunc<%1%>(%1%)", 0, v, 0LL, pol).value().extract_int64()); + return static_cast(r.value().extract_int64()); +} +#endif + +template +inline int iround(const e_float& v, const Policy& pol) +{ + BOOST_MATH_STD_USING + e_float r = boost::math::round(v, pol); + if(fabs(r) > (std::numeric_limits::max)()) + return static_cast(policies::raise_rounding_error("boost::math::iround<%1%>(%1%)", 0, v, 0, pol).value().extract_int64()); + return static_cast(r.value().extract_int64()); +} + +template +inline long lround(const e_float& v, const Policy& pol) +{ + BOOST_MATH_STD_USING + e_float r = boost::math::round(v, pol); + if(fabs(r) > (std::numeric_limits::max)()) + return static_cast(policies::raise_rounding_error("boost::math::lround<%1%>(%1%)", 0, v, 0L, pol).value().extract_int64()); + return static_cast(r.value().extract_int64()); +} + +#ifdef BOOST_HAS_LONG_LONG +template +inline boost::long_long_type llround(const e_float& v, const Policy& pol) +{ + BOOST_MATH_STD_USING + e_float r = boost::math::round(v, pol); + if(fabs(r) > (std::numeric_limits::max)()) + return static_cast(policies::raise_rounding_error("boost::math::llround<%1%>(%1%)", 0, v, 0LL, pol).value().extract_int64()); + return static_cast(r.value().extract_int64()); +} +#endif + +}}} + +namespace std{ + + template<> + class numeric_limits< ::boost::math::ef::e_float> : public numeric_limits< ::e_float> + { + public: + static const ::boost::math::ef::e_float (min) (void) + { + return (numeric_limits< ::e_float>::min)(); + } + static const ::boost::math::ef::e_float (max) (void) + { + return (numeric_limits< ::e_float>::max)(); + } + static const ::boost::math::ef::e_float epsilon (void) + { + return (numeric_limits< ::e_float>::epsilon)(); + } + static const ::boost::math::ef::e_float round_error(void) + { + return (numeric_limits< ::e_float>::round_error)(); + } + static const ::boost::math::ef::e_float infinity (void) + { + return (numeric_limits< ::e_float>::infinity)(); + } + static const ::boost::math::ef::e_float quiet_NaN (void) + { + return (numeric_limits< ::e_float>::quiet_NaN)(); + } + // + // e_float's supplied digits member is wrong + // - it should be same the same as digits 10 + // - given that radix is 10. + // + static const int digits = digits10; + }; + +} // namespace std + +namespace boost{ namespace math{ + +namespace policies{ + +template +struct precision< ::boost::math::ef::e_float, Policy> +{ + typedef typename Policy::precision_type precision_type; + typedef digits2<((::std::numeric_limits< ::boost::math::ef::e_float>::digits10 + 1) * 1000L) / 301L> digits_2; + typedef typename mpl::if_c< + ((digits_2::value <= precision_type::value) + || (Policy::precision_type::value <= 0)), + // Default case, full precision for RealType: + digits_2, + // User customised precision: + precision_type + >::type type; +}; + +} + +namespace tools{ + +template <> +inline int digits< ::boost::math::ef::e_float>(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC( ::boost::math::ef::e_float)) +{ + return ((::std::numeric_limits< ::boost::math::ef::e_float>::digits10 + 1) * 1000L) / 301L; +} + +template <> +inline ::boost::math::ef::e_float root_epsilon< ::boost::math::ef::e_float>() +{ + return detail::root_epsilon_imp(static_cast< ::boost::math::ef::e_float const*>(0), mpl::int_<0>()); +} + +template <> +inline ::boost::math::ef::e_float forth_root_epsilon< ::boost::math::ef::e_float>() +{ + return detail::forth_root_epsilon_imp(static_cast< ::boost::math::ef::e_float const*>(0), mpl::int_<0>()); +} + +} + +namespace lanczos{ + +template +struct lanczos +{ + typedef typename mpl::if_c< + std::numeric_limits< ::e_float>::digits10 < 22, + lanczos13UDT, + typename mpl::if_c< + std::numeric_limits< ::e_float>::digits10 < 36, + lanczos22UDT, + typename mpl::if_c< + std::numeric_limits< ::e_float>::digits10 < 50, + lanczos31UDT, + typename mpl::if_c< + std::numeric_limits< ::e_float>::digits10 < 110, + lanczos61UDT, + undefined_lanczos + >::type + >::type + >::type + >::type type; +}; + +} // namespace lanczos + +template +inline boost::math::ef::e_float skewness(const extreme_value_distribution& /*dist*/) +{ + // + // This is 12 * sqrt(6) * zeta(3) / pi^3: + // See http://mathworld.wolfram.com/ExtremeValueDistribution.html + // + return boost::lexical_cast("1.1395470994046486574927930193898461120875997958366"); +} + +template +inline boost::math::ef::e_float skewness(const rayleigh_distribution& /*dist*/) +{ + // using namespace boost::math::constants; + return boost::lexical_cast("0.63111065781893713819189935154422777984404221106391"); + // Computed using NTL at 150 bit, about 50 decimal digits. + // return 2 * root_pi() * pi_minus_three() / pow23_four_minus_pi(); +} + +template +inline boost::math::ef::e_float kurtosis(const rayleigh_distribution& /*dist*/) +{ + // using namespace boost::math::constants; + return boost::lexical_cast("3.2450893006876380628486604106197544154170667057995"); + // Computed using NTL at 150 bit, about 50 decimal digits. + // return 3 - (6 * pi() * pi() - 24 * pi() + 16) / + // (four_minus_pi() * four_minus_pi()); +} + +template +inline boost::math::ef::e_float kurtosis_excess(const rayleigh_distribution& /*dist*/) +{ + //using namespace boost::math::constants; + // Computed using NTL at 150 bit, about 50 decimal digits. + return boost::lexical_cast("0.2450893006876380628486604106197544154170667057995"); + // return -(6 * pi() * pi() - 24 * pi() + 16) / + // (four_minus_pi() * four_minus_pi()); +} // kurtosis + +namespace detail{ + +// +// Version of Digamma accurate to ~100 decimal digits. +// +template +boost::math::ef::e_float digamma_imp(boost::math::ef::e_float x, const mpl::int_<0>* , const Policy& pol) +{ + // + // This handles reflection of negative arguments, and all our + // eboost::math::ef::e_floator handling, then forwards to the T-specific approximation. + // + BOOST_MATH_STD_USING // ADL of std functions. + + boost::math::ef::e_float result = 0; + // + // Check for negative arguments and use reflection: + // + if(x < 0) + { + // Reflect: + x = 1 - x; + // Argument reduction for tan: + boost::math::ef::e_float remainder = x - floor(x); + // Shift to negative if > 0.5: + if(remainder > 0.5) + { + remainder -= 1; + } + // + // check for evaluation at a negative pole: + // + if(remainder == 0) + { + return policies::raise_pole_error("boost::math::digamma<%1%>(%1%)", 0, (1-x), pol); + } + result = constants::pi() / tan(constants::pi() * remainder); + } + result += big_digamma(x); + return result; +} +boost::math::ef::e_float bessel_i0(boost::math::ef::e_float x) +{ + static const boost::math::ef::e_float P1[] = { + boost::lexical_cast("-2.2335582639474375249e+15"), + boost::lexical_cast("-5.5050369673018427753e+14"), + boost::lexical_cast("-3.2940087627407749166e+13"), + boost::lexical_cast("-8.4925101247114157499e+11"), + boost::lexical_cast("-1.1912746104985237192e+10"), + boost::lexical_cast("-1.0313066708737980747e+08"), + boost::lexical_cast("-5.9545626019847898221e+05"), + boost::lexical_cast("-2.4125195876041896775e+03"), + boost::lexical_cast("-7.0935347449210549190e+00"), + boost::lexical_cast("-1.5453977791786851041e-02"), + boost::lexical_cast("-2.5172644670688975051e-05"), + boost::lexical_cast("-3.0517226450451067446e-08"), + boost::lexical_cast("-2.6843448573468483278e-11"), + boost::lexical_cast("-1.5982226675653184646e-14"), + boost::lexical_cast("-5.2487866627945699800e-18"), + }; + static const boost::math::ef::e_float Q1[] = { + boost::lexical_cast("-2.2335582639474375245e+15"), + boost::lexical_cast("7.8858692566751002988e+12"), + boost::lexical_cast("-1.2207067397808979846e+10"), + boost::lexical_cast("1.0377081058062166144e+07"), + boost::lexical_cast("-4.8527560179962773045e+03"), + boost::lexical_cast("1.0"), + }; + static const boost::math::ef::e_float P2[] = { + boost::lexical_cast("-2.2210262233306573296e-04"), + boost::lexical_cast("1.3067392038106924055e-02"), + boost::lexical_cast("-4.4700805721174453923e-01"), + boost::lexical_cast("5.5674518371240761397e+00"), + boost::lexical_cast("-2.3517945679239481621e+01"), + boost::lexical_cast("3.1611322818701131207e+01"), + boost::lexical_cast("-9.6090021968656180000e+00"), + }; + static const boost::math::ef::e_float Q2[] = { + boost::lexical_cast("-5.5194330231005480228e-04"), + boost::lexical_cast("3.2547697594819615062e-02"), + boost::lexical_cast("-1.1151759188741312645e+00"), + boost::lexical_cast("1.3982595353892851542e+01"), + boost::lexical_cast("-6.0228002066743340583e+01"), + boost::lexical_cast("8.5539563258012929600e+01"), + boost::lexical_cast("-3.1446690275135491500e+01"), + boost::lexical_cast("1.0"), + }; + boost::math::ef::e_float value, factor, r; + + BOOST_MATH_STD_USING + using namespace boost::math::tools; + + if (x < 0) + { + x = -x; // even function + } + if (x == 0) + { + return static_cast(1); + } + if (x <= 15) // x in (0, 15] + { + boost::math::ef::e_float y = x * x; + value = evaluate_polynomial(P1, y) / evaluate_polynomial(Q1, y); + } + else // x in (15, \infty) + { + boost::math::ef::e_float y = 1 / x - 1 / 15; + r = evaluate_polynomial(P2, y) / evaluate_polynomial(Q2, y); + factor = exp(x) / sqrt(x); + value = factor * r; + } + + return value; +} + +boost::math::ef::e_float bessel_i1(boost::math::ef::e_float x) +{ + static const boost::math::ef::e_float P1[] = { + lexical_cast("-1.4577180278143463643e+15"), + lexical_cast("-1.7732037840791591320e+14"), + lexical_cast("-6.9876779648010090070e+12"), + lexical_cast("-1.3357437682275493024e+11"), + lexical_cast("-1.4828267606612366099e+09"), + lexical_cast("-1.0588550724769347106e+07"), + lexical_cast("-5.1894091982308017540e+04"), + lexical_cast("-1.8225946631657315931e+02"), + lexical_cast("-4.7207090827310162436e-01"), + lexical_cast("-9.1746443287817501309e-04"), + lexical_cast("-1.3466829827635152875e-06"), + lexical_cast("-1.4831904935994647675e-09"), + lexical_cast("-1.1928788903603238754e-12"), + lexical_cast("-6.5245515583151902910e-16"), + lexical_cast("-1.9705291802535139930e-19"), + }; + static const boost::math::ef::e_float Q1[] = { + lexical_cast("-2.9154360556286927285e+15"), + lexical_cast("9.7887501377547640438e+12"), + lexical_cast("-1.4386907088588283434e+10"), + lexical_cast("1.1594225856856884006e+07"), + lexical_cast("-5.1326864679904189920e+03"), + lexical_cast("1.0"), + }; + static const boost::math::ef::e_float P2[] = { + lexical_cast("1.4582087408985668208e-05"), + lexical_cast("-8.9359825138577646443e-04"), + lexical_cast("2.9204895411257790122e-02"), + lexical_cast("-3.4198728018058047439e-01"), + lexical_cast("1.3960118277609544334e+00"), + lexical_cast("-1.9746376087200685843e+00"), + lexical_cast("8.5591872901933459000e-01"), + lexical_cast("-6.0437159056137599999e-02"), + }; + static const boost::math::ef::e_float Q2[] = { + lexical_cast("3.7510433111922824643e-05"), + lexical_cast("-2.2835624489492512649e-03"), + lexical_cast("7.4212010813186530069e-02"), + lexical_cast("-8.5017476463217924408e-01"), + lexical_cast("3.2593714889036996297e+00"), + lexical_cast("-3.8806586721556593450e+00"), + lexical_cast("1.0"), + }; + boost::math::ef::e_float value, factor, r, w; + + BOOST_MATH_STD_USING + using namespace boost::math::tools; + + w = abs(x); + if (x == 0) + { + return static_cast(0); + } + if (w <= 15) // w in (0, 15] + { + boost::math::ef::e_float y = x * x; + r = evaluate_polynomial(P1, y) / evaluate_polynomial(Q1, y); + factor = w; + value = factor * r; + } + else // w in (15, \infty) + { + boost::math::ef::e_float y = 1 / w - boost::math::ef::e_float(1) / 15; + r = evaluate_polynomial(P2, y) / evaluate_polynomial(Q2, y); + factor = exp(w) / sqrt(w); + value = factor * r; + } + + if (x < 0) + { + value *= -value; // odd function + } + return value; +} + +} // namespace detail + +}} +#endif // BOOST_MATH_E_FLOAT_BINDINGS_HPP + diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 39bf17cda..0ce242550 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -15,6 +15,7 @@ import pch ; local ntl-path = [ modules.peek : NTL_PATH ] ; local gmp_path = [ modules.peek : GMP_PATH ] ; +local e_float_path = [ modules.peek : E_FLOAT_PATH ] ; project : requirements @@ -52,6 +53,7 @@ project BOOST_UBLAS_UNSUPPORTED_COMPILER=0 . $(ntl-path)/include + $(e_float_path) $(gmp_path) $(gmp_path)/mpfr $(gmp_path)/gmpfrxx $(gmp_path)/mpfrc++ ; @@ -798,6 +800,7 @@ run complex_test.cpp ../../test/build//boost_test_exec_monitor ; compile ntl_concept_check.cpp : [ check-target-builds ../config//has_ntl_rr : : no ] ; compile mpfr_concept_check.cpp : [ check-target-builds ../config//has_mpfr_class : : no ] ; compile mpreal_concept_check.cpp : [ check-target-builds ../config//has_mpreal : : no ] ; +compile e_float_concept_check.cpp : [ check-target-builds ../config//has_e_float : : no ] ; compile test_common_factor_gmpxx.cpp : [ check-target-builds ../config//has_gmpxx : : no ] ; build-project ../example ; diff --git a/test/e_float_concept_check.cpp b/test/e_float_concept_check.cpp new file mode 100644 index 000000000..74149fbc8 --- /dev/null +++ b/test/e_float_concept_check.cpp @@ -0,0 +1,40 @@ + +// Copyright John Maddock 2011. +// 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) + +// +// This tests two things: that e_float meets our +// conceptual requirements, and that we can instantiate +// all our distributions and special functions on this type. +// +#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false +#define TEST_MPFR + +#ifdef _MSC_VER +# pragma warning(disable:4800) +# pragma warning(disable:4512) +# pragma warning(disable:4127) +# pragma warning(disable:4512) +# pragma warning(disable:4503) // decorated name length exceeded, name was truncated +#endif + +#define E_FLOAT_TYPE_EFX + +#include + +#include +#include "compile_test/instantiate.hpp" + +void foo() +{ + instantiate(boost::math::ef::e_float()); +} + +int main() +{ + BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept)); +} + + From 2ad656bb1b8e5b507e201a3bd19bc72ba164b21c Mon Sep 17 00:00:00 2001 From: John Maddock Date: Thu, 12 May 2011 12:12:30 +0000 Subject: [PATCH 78/82] Document e_float support. [SVN r71886] --- doc/sf_and_dist/concepts.qbk | 15 +++++ doc/sf_and_dist/html/index.html | 5 +- doc/sf_and_dist/html/index/s12.html | 2 +- doc/sf_and_dist/html/index/s13.html | 2 +- doc/sf_and_dist/html/index/s14.html | 2 +- doc/sf_and_dist/html/index/s15.html | 2 +- doc/sf_and_dist/html/index/s16.html | 2 +- .../backgrounders/implementation.html | 30 +++++----- .../math_toolkit/backgrounders/lanczos.html | 10 ++-- .../html/math_toolkit/backgrounders/refs.html | 6 +- .../backgrounders/relative_error.html | 2 +- .../math_toolkit/backgrounders/remez.html | 16 ++--- .../dist/dist_ref/dist_algorithms.html | 6 +- .../dist/dist_ref/dists/bernoulli_dist.html | 10 ++-- .../dist/dist_ref/dists/beta_dist.html | 20 +++---- .../dist/dist_ref/dists/binomial_dist.html | 24 ++++---- .../dist/dist_ref/dists/cauchy_dist.html | 10 ++-- .../dist/dist_ref/dists/chi_squared_dist.html | 12 ++-- .../dist/dist_ref/dists/exp_dist.html | 10 ++-- .../dist/dist_ref/dists/extreme_dist.html | 8 +-- .../dist/dist_ref/dists/f_dist.html | 10 ++-- .../dist/dist_ref/dists/gamma_dist.html | 8 +-- .../dist/dist_ref/dists/geometric_dist.html | 22 +++---- .../dist_ref/dists/hypergeometric_dist.html | 10 ++-- .../dists/inverse_chi_squared_dist.html | 10 ++-- .../dist_ref/dists/inverse_gamma_dist.html | 8 +-- .../dist_ref/dists/inverse_gaussian_dist.html | 10 ++-- .../dist/dist_ref/dists/laplace_dist.html | 10 ++-- .../dist/dist_ref/dists/logistic_dist.html | 8 +-- .../dist/dist_ref/dists/lognormal_dist.html | 8 +-- .../dist/dist_ref/dists/nc_beta_dist.html | 10 ++-- .../dist_ref/dists/nc_chi_squared_dist.html | 12 ++-- .../dist/dist_ref/dists/nc_f_dist.html | 10 ++-- .../dist/dist_ref/dists/nc_t_dist.html | 10 ++-- .../dists/negative_binomial_dist.html | 22 +++---- .../dist/dist_ref/dists/normal_dist.html | 8 +-- .../dist/dist_ref/dists/pareto.html | 12 ++-- .../dist/dist_ref/dists/poisson_dist.html | 8 +-- .../dist/dist_ref/dists/rayleigh.html | 12 ++-- .../dist/dist_ref/dists/students_t_dist.html | 10 ++-- .../dist/dist_ref/dists/triangular_dist.html | 10 ++-- .../dist/dist_ref/dists/uniform_dist.html | 10 ++-- .../dist/dist_ref/dists/weibull_dist.html | 12 ++-- .../html/math_toolkit/dist/dist_ref/nmp.html | 54 ++++++++--------- .../html/math_toolkit/dist/future.html | 8 +-- .../weg/binom_eg/binomial_quiz_example.html | 4 +- .../stat_tut/weg/cs_eg/chi_sq_intervals.html | 2 +- .../dist/stat_tut/weg/dist_construct_eg.html | 2 +- .../weg/find_eg/find_location_eg.html | 2 +- .../weg/find_eg/find_mean_and_sd_eg.html | 6 +- .../stat_tut/weg/find_eg/find_scale_eg.html | 2 +- .../dist/stat_tut/weg/geometric_eg.html | 8 +-- .../weg/normal_example/normal_misc.html | 14 ++--- .../html/math_toolkit/extern_c/c99.html | 4 +- .../html/math_toolkit/extern_c/tr1.html | 10 ++-- .../html/math_toolkit/extern_c/tr1_ref.html | 6 +- .../math_toolkit/main_overview/building.html | 6 +- .../main_overview/directories.html | 4 +- .../main_overview/error_handling.html | 24 ++++---- .../math_toolkit/main_overview/history1.html | 30 +++++----- .../math_toolkit/main_overview/intro.html | 6 +- .../main_overview/navigation.html | 2 +- .../html/math_toolkit/main_overview/tr1.html | 10 ++-- .../html/math_toolkit/perf/comparisons.html | 54 ++++++++--------- .../policy/pol_ref/discrete_quant_ref.html | 12 ++-- .../pol_ref/error_handling_policies.html | 14 ++--- .../policy/pol_ref/internal_promotion.html | 2 +- .../policy/pol_ref/policy_defaults.html | 32 +++++----- .../pol_tutorial/understand_dis_quant.html | 2 +- .../math_toolkit/special/bessel/bessel.html | 10 ++-- .../special/bessel/bessel_over.html | 6 +- .../math_toolkit/special/bessel/mbessel.html | 10 ++-- .../special/bessel/sph_bessel.html | 10 ++-- .../math_toolkit/special/ellint/ellint_1.html | 10 ++-- .../math_toolkit/special/ellint/ellint_2.html | 10 ++-- .../math_toolkit/special/ellint/ellint_3.html | 14 ++--- .../special/ellint/ellint_carlson.html | 10 ++-- .../special/ellint/ellint_intro.html | 12 ++-- .../math_toolkit/special/expint/expint_i.html | 14 ++--- .../math_toolkit/special/expint/expint_n.html | 10 ++-- .../special/factorials/sf_binomial.html | 6 +- .../factorials/sf_double_factorial.html | 6 +- .../special/factorials/sf_factorial.html | 10 ++-- .../factorials/sf_falling_factorial.html | 6 +- .../factorials/sf_rising_factorial.html | 6 +- .../math_toolkit/special/inv_hyper/acosh.html | 6 +- .../math_toolkit/special/inv_hyper/asinh.html | 6 +- .../math_toolkit/special/inv_hyper/atanh.html | 6 +- .../math_toolkit/special/powers/cbrt.html | 4 +- .../math_toolkit/special/powers/ct_pow.html | 14 ++--- .../math_toolkit/special/powers/expm1.html | 4 +- .../math_toolkit/special/powers/hypot.html | 2 +- .../math_toolkit/special/powers/log1p.html | 4 +- .../math_toolkit/special/powers/powm1.html | 4 +- .../math_toolkit/special/powers/sqrt1pm1.html | 4 +- .../special/sf_beta/beta_derivative.html | 8 +-- .../special/sf_beta/beta_function.html | 10 ++-- .../special/sf_beta/ibeta_function.html | 10 ++-- .../special/sf_beta/ibeta_inv_function.html | 10 ++-- .../special/sf_erf/error_function.html | 10 ++-- .../special/sf_erf/error_inv.html | 10 ++-- .../special/sf_gamma/digamma.html | 10 ++-- .../special/sf_gamma/gamma_derivatives.html | 8 +-- .../special/sf_gamma/gamma_ratios.html | 8 +-- .../math_toolkit/special/sf_gamma/igamma.html | 12 ++-- .../special/sf_gamma/igamma_inv.html | 10 ++-- .../math_toolkit/special/sf_gamma/lgamma.html | 10 ++-- .../math_toolkit/special/sf_gamma/tgamma.html | 10 ++-- .../math_toolkit/special/sf_poly/hermite.html | 10 ++-- .../special/sf_poly/laguerre.html | 10 ++-- .../special/sf_poly/legendre.html | 10 ++-- .../special/sf_poly/sph_harm.html | 10 ++-- .../html/math_toolkit/special/zetas/zeta.html | 10 ++-- .../html/math_toolkit/status/history1.html | 30 +++++----- .../html/math_toolkit/status/issues.html | 16 ++--- .../math_toolkit/toolkit/internals1/cf.html | 8 +-- .../toolkit/internals1/constants.html | 4 +- .../toolkit/internals1/minima.html | 6 +- .../toolkit/internals1/rational.html | 6 +- .../toolkit/internals1/roots.html | 12 ++-- .../toolkit/internals1/roots2.html | 12 ++-- .../toolkit/internals1/series_evaluation.html | 6 +- .../toolkit/internals1/tuples.html | 4 +- .../toolkit/internals2/error_test.html | 6 +- .../toolkit/internals2/polynomials.html | 4 +- .../toolkit/internals2/test_data.html | 12 ++-- .../html/math_toolkit/using_udt.html | 1 + .../math_toolkit/using_udt/archetypes.html | 8 +-- .../html/math_toolkit/using_udt/concepts.html | 10 ++-- .../html/math_toolkit/using_udt/e_float.html | 59 +++++++++++++++++++ .../html/math_toolkit/using_udt/use_mpfr.html | 6 +- .../html/math_toolkit/utils/fp_facets.html | 2 +- .../utils/fp_facets/examples.html | 8 +-- .../math_toolkit/utils/fp_facets/intro.html | 10 ++-- .../utils/fp_facets/reference.html | 14 ++--- .../html/math_toolkit/utils/fpclass.html | 6 +- .../utils/next_float/float_advance.html | 4 +- .../utils/next_float/float_distance.html | 4 +- .../utils/next_float/float_next.html | 4 +- .../utils/next_float/float_prior.html | 4 +- .../utils/next_float/nextafter.html | 6 +- .../math_toolkit/utils/sign_functions.html | 10 ++-- 142 files changed, 751 insertions(+), 675 deletions(-) create mode 100644 doc/sf_and_dist/html/math_toolkit/using_udt/e_float.html diff --git a/doc/sf_and_dist/concepts.qbk b/doc/sf_and_dist/concepts.qbk index a1d491337..e0cceeaa3 100644 --- a/doc/sf_and_dist/concepts.qbk +++ b/doc/sf_and_dist/concepts.qbk @@ -84,6 +84,21 @@ There is a concept checking test program for mpfr support [endsect][/section:use_mpfr Using With MPFR / GMP - a High-Precision Floating-Point Library] +[section:e_float e_float Support] + +This library can be used with [@http://calgo.acm.org/910.zip e_float (TOMS Algorithm 910)] via the header: + + + +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]. + + +[endsect] + [section:concepts Conceptual Requirements for Real Number Types] The functions, and statistical distributions in this library can be used with diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html index 26ca5a5b3..56c873753 100644 --- a/doc/sf_and_dist/html/index.html +++ b/doc/sf_and_dist/html/index.html @@ -53,7 +53,7 @@ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and Thijs van den Berg

    -Function Index

    +Function Index

    A B C D E F G H I K L M N P Q R S T U V Z

    diff --git a/doc/sf_and_dist/html/index/s13.html b/doc/sf_and_dist/html/index/s13.html index 105b95d0c..3d96d65ef 100644 --- a/doc/sf_and_dist/html/index/s13.html +++ b/doc/sf_and_dist/html/index/s13.html @@ -24,7 +24,7 @@

    -Class Index

    +Class Index

    B C D E F G H I L M N P R S T U W

    diff --git a/doc/sf_and_dist/html/index/s14.html b/doc/sf_and_dist/html/index/s14.html index 1101f2de0..aa81d1740 100644 --- a/doc/sf_and_dist/html/index/s14.html +++ b/doc/sf_and_dist/html/index/s14.html @@ -24,7 +24,7 @@

    -Typedef Index

    +Typedef Index

    A B C D E F G H I L N O P R S T U V W

    diff --git a/doc/sf_and_dist/html/index/s15.html b/doc/sf_and_dist/html/index/s15.html index 41ba51b6f..a59d1d124 100644 --- a/doc/sf_and_dist/html/index/s15.html +++ b/doc/sf_and_dist/html/index/s15.html @@ -24,7 +24,7 @@

    -Macro Index

    +Macro Index

    A B C E F H I L N R S T

    diff --git a/doc/sf_and_dist/html/index/s16.html b/doc/sf_and_dist/html/index/s16.html index e256df42e..d507f949d 100644 --- a/doc/sf_and_dist/html/index/s16.html +++ b/doc/sf_and_dist/html/index/s16.html @@ -23,7 +23,7 @@

    -Index

    +Index

    A B C D E F G H I K L M N O P Q R S T U V W Z

    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index 051e0c7fd..db15e5bd4 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

    - + Implemention philosophy
    @@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

    - + Accuracy and Representation of Test Values
    @@ -130,7 +130,7 @@ binary value).

    - + Tolerance of Tests
    @@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

    - + Handling Unsuitable Arguments
    @@ -224,7 +224,7 @@

    - + Handling of Functions that are Not Mathematically defined
    @@ -258,7 +258,7 @@

    - + Median of distributions
    @@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

    - + Handling of Floating-Point Infinity
    @@ -337,7 +337,7 @@ handling policies.

    - + Scale, Shape and Location
    @@ -364,7 +364,7 @@ functions, they can be added if required.

    - + Notes on Implementation of Specific Functions & Distributions
    @@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
    - + Rational Approximations Used
    @@ -419,7 +419,7 @@ to the "true" minimax solution.

    - + Representation of Mathematical Constants
    @@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
    - + Thread safety
    @@ -505,7 +505,7 @@ the right thing here at some point.

    - + Sources of Test Data
    @@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

    - + Creating and Managing the Equations
    @@ -731,7 +731,7 @@ done HTML: this needs further investigation.

    - + Producing Graphs
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index b7d465324..0a16ef39d 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
    - + Motivation

    @@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

    - + The Approximation
    @@ -161,7 +161,7 @@

    - + Computing the Coefficients
    @@ -205,7 +205,7 @@ multiplied by F as the last step.

    - + Choosing the Right Parameters
    @@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index c8bac29dd..2c1fcc4bc 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
    - + General references
    @@ -98,7 +98,7 @@ Library (version 2), Walter E. Brown

    - + Calculators

    @@ -120,7 +120,7 @@ Binomial Probability Distribution Calculator.

    - + Other Libraries

    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index 59d52ae16..eb5367141 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

    - + The Impossibility of Zero Error
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index 04958150d..102c6357a 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

    - + The Remez Method
    @@ -174,7 +174,7 @@
    - + Remez Step 1
    @@ -205,7 +205,7 @@ to 5.6x10-4.

    - + Remez Step 2
    @@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

    - + Iteration

    @@ -250,7 +250,7 @@ remez-4

    - + Rational Approximations
    @@ -299,7 +299,7 @@ number of terms overall.

    - + Practical Considerations
    @@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

    - + Remez Method Checklist
    @@ -461,7 +461,7 @@
    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index b53948160..cf6b73dd5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms

    - + Finding the Location and Scale for Normal and similar distributions
    @@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
    - + find_location function
    @@ -80,7 +80,7 @@ }} // namespaces
    - + find_scale function
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index 26bb97928..953c8d49c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

    - + Member Functions
    @@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ exception and make an error message available.

    - + Accuracy

    @@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

    - + Implementation

    @@ -327,7 +327,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index c2c7bf5ee..24a500deb 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

      - + Member Functions
      - + Constructor
      beta_distribution(RealType alpha, RealType beta);
      @@ -164,7 +164,7 @@
                   yellow in the graph above).
                 

      - + Parameter Accessors
      @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
      - + Parameter Estimators
      @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

      - + Non-member Accessor Functions
      @@ -263,7 +263,7 @@ Mathworld.

      - + Applications

      @@ -276,7 +276,7 @@ statistical inference.

      - + Related distributions
      @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

      - + Accuracy

      @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

      - + Implementation

      @@ -594,7 +594,7 @@

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index d5488567e..0a02a317e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

    - + Member Functions
    - + Construct
    binomial_distribution(RealType n, RealType p);
    @@ -183,7 +183,7 @@
                 otherwise calls domain_error.
               

    - + Accessors
    RealType success_fraction() const;
    @@ -199,7 +199,7 @@
                 was constructed.
               

    - + Lower Bound on the Success Fraction
    @@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

    - + Upper Bound on the Success Fraction
    @@ -383,7 +383,7 @@
    - + Estimating the Number of Trials Required for a Certain Number of Successes
    @@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

    - + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

    - + Non-member Accessors
    @@ -622,7 +622,7 @@
    - + Examples

    @@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

    - + Accuracy

    @@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -884,7 +884,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index 5cf012f0c..e12d26566 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

      - + Accuracy

      @@ -157,7 +157,7 @@ have very low error rates.

      - + Implementation

      @@ -273,7 +273,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index 71b56c55f..a3027e0ae 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

      - + Member Functions
      @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

      - + Non-member Accessors
      @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

      - + Examples

      @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

      - + Accuracy

      @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

      - + Implementation

      @@ -379,7 +379,7 @@ independent, normally distributed random

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index 7510b2969..c7cf8fdd8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

      - + Member Functions
      @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

      - + Non-member Accessors
      @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -122,7 +122,7 @@ should have very low error rates.

      - + Implementation

      @@ -283,7 +283,7 @@

    - + references
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index ddc88fc52..5cdb47367 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

      - + Member Functions
      @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

      - + Accuracy

      @@ -154,7 +154,7 @@ very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index 22f8a7d42..92ccb64bd 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

      - + Member Functions
      @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

      - + Non-member Accessors
      @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

      - + Accuracy

      @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index 94b00b7ea..8c6315a17 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

      - + Member Functions
      @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index a8765998c..4bc0d98f8 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

      - + Related Distributions
      @@ -206,12 +206,12 @@
    - + Member Functions
    - + Constructor
    geometric_distribution(RealType p);
    @@ -226,7 +226,7 @@
                 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -253,7 +253,7 @@
                 Binomial Distribution for more discussion.
               

    - + Lower Bound on success_fraction Parameter p
    @@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on success_fraction Parameter p
    @@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -415,7 +415,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -463,7 +463,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -611,7 +611,7 @@
    - + Accuracy

    @@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index d13633da1..226b1dd77 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

    - + Member Functions
    @@ -131,7 +131,7 @@ from the population N.

    - + Non-member Accessors
    @@ -185,7 +185,7 @@
    - + Accuracy

    @@ -211,7 +211,7 @@ meaningless for N >= 1015.

    - + Testing

    @@ -223,7 +223,7 @@ this implementation and NTL::RR.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index 6d774f866..70da8251f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

    - + Member Functions
    @@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

    - + Non-member Accessors
    @@ -255,7 +255,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

    - + Implementation

    @@ -452,7 +452,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index d13597a41..a745dd2d2 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

      - + Member Functions
      @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

      - + Non-member Accessors
      @@ -184,7 +184,7 @@

    - + Accuracy

    @@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index eec25207f..64e1ce4ec 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -146,7 +146,7 @@ the __wald_distrib (where mean μ is unity) is also provided.

    - + Member Functions
    @@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

    - + Non-member Accessors
    @@ -201,7 +201,7 @@

    - + Accuracy

    @@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    @@ -390,7 +390,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index dcffa210f..41f2febef 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

      - + Member Functions
      @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

      - + Accuracy

      @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

      - + Implementation

      @@ -329,7 +329,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index 06b8c353d..820799801 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

      - + Member Functions
      @@ -98,7 +98,7 @@ Returns the scale of this distribution.

      - + Non-member Accessors
      @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

      - + Accuracy

      @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

      - + Implementation
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index a6e01275b..36f86fb4b 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index 6b39feaa4..a939c8900 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

      - + Member Functions
      @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

      - + Non-member Accessors
      @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

      - + Accuracy

      @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

      - + Tests

      @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index 908286e84..a47f997c2 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

      - + Member Functions
      @@ -183,7 +183,7 @@ == q.

      - + Non-member Accessors
      @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

      - + Accuracy

      @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

      - + Tests

      @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index 8c719acb6..5a979eda5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

      - + Member Functions
      @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

      - + Non-member Accessors
      @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

      - + Tests

      @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index ccdd6425e..bc56589f1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

      - + Member Functions
      @@ -111,7 +111,7 @@ which this object was constructed.

      - + Non-member Accessors
      @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

      - + Accuracy

      @@ -255,7 +255,7 @@ epsilon.

      - + Tests

      @@ -270,7 +270,7 @@ least 50 decimal places.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index e9740ce76..fb2370eed 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

      - + Related Distributions
      @@ -195,12 +195,12 @@
      - + Member Functions
      - + Construct
      negative_binomial_distribution(RealType r, RealType p);
      @@ -216,7 +216,7 @@
                   <= 1.
                 

      - + Accessors
      RealType success_fraction() const; // successes / trials (0 <= p <= 1)
      @@ -237,7 +237,7 @@
                   Distribution for more discussion.
                 

      - + Lower Bound on Parameter p
      @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

      - + Upper Bound on Parameter p
      @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

      - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
      @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

      - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
      @@ -457,7 +457,7 @@ probability of observing more than k failures.

      - + Non-member Accessors
      @@ -606,7 +606,7 @@

    - + Accuracy

    @@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index d49fd5b6d..d4caadebc 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

    - + Member Functions
    @@ -109,7 +109,7 @@ be used generically).

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

    - + Accuracy

    @@ -139,7 +139,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index ab5389aea..bb75148de 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

    - + Related distributions
    - + Member Functions
    @@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

    - + Non-member Accessors
    @@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ zero) see also why complements?.

    - + Implementation

    @@ -318,7 +318,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index bf2a15aed..14a975538 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
    - + Member Functions
    @@ -131,7 +131,7 @@ Returns the mean of this distribution.

    - + Non-member Accessors
    @@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

    - + Accuracy

    @@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index 28ee371bc..18a847639 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

    - + Related distributions
    @@ -102,7 +102,7 @@ distribution.

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

    - + Accuracy

    @@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

    - + Implementation

    @@ -320,7 +320,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index 0fe1e5f64..e92b51768 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

      - + Member Functions
      @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

      - + Non-member Accessors
      @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

      - + Examples

      @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

      - + Accuracy

      @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index 1ed3e5f49..d25c289f2 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

      - + Member Functions
      @@ -163,7 +163,7 @@ (default+1).

      - + Non-member Accessors
      @@ -184,7 +184,7 @@ range is lower <= x <= upper.

      - + Accuracy

      @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

      - + Implementation

      @@ -378,7 +378,7 @@ Calculate and plot probability distributions

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index d2ec5b706..b2224ff5d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

        - + Member Functions
        @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

        - + Non-member Accessors
        @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

        - + Accuracy

        @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index f694871d8..a11ccf522 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

        - + Related distributions
        @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

        - + Member Functions
        @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

        - + Non-member Accessors
        @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

        - + Accuracy

        @@ -170,7 +170,7 @@ as such should have very low error rates.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index a562c8c79..76768dc2f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

        - + Function Index
          @@ -94,7 +94,7 @@
        - + Conceptual Index
          @@ -180,7 +180,7 @@
        - + Cumulative Distribution Function
        template <class RealType, class Policy>
        @@ -203,7 +203,7 @@
                   cdf
                 

        - + Complement of the Cumulative Distribution Function
        template <class Distribution, class RealType>
        @@ -243,7 +243,7 @@
                   complement is useful and when it should be used.
                 

        - + Hazard Function
        template <class RealType, class Policy>
        @@ -271,7 +271,7 @@
                   

      - + Cumulative Hazard Function
      template <class RealType, class Policy>
      @@ -298,7 +298,7 @@
                 

    - + mean
    template<class RealType, class Policy>
    @@ -313,7 +313,7 @@
               distribution).
             

    - + median
    template<class RealType, class Policy>
    @@ -323,7 +323,7 @@
               Returns the median of the distribution dist.
             

    - + mode
    template<class RealType, Policy>
    @@ -337,7 +337,7 @@
               if the distribution does not have a defined mode.
             

    - + Probability Density Function
    template <class RealType, class Policy>
    @@ -365,7 +365,7 @@
               pdf
             

    - + Range
    template<class RealType, class Policy>
    @@ -375,7 +375,7 @@
               Returns the valid range of the random variable over distribution dist.
             

    - + Quantile
    template <class RealType, class Policy>
    @@ -405,7 +405,7 @@
               quantile
             

    - + Quantile from the complement of the probability.

    @@ -450,7 +450,7 @@ survival_inv

    - + Standard Deviation
    template <class RealType, class Policy>
    @@ -464,7 +464,7 @@
               if the distribution does not have a defined standard deviation.
             

    - + support
    template<class RealType, class Policy>
    @@ -481,7 +481,7 @@
               where the pdf is zero, and the cdf zero or unity.
             

    - + Variance
    template <class RealType, class Policy>
    @@ -495,7 +495,7 @@
               if the distribution does not have a defined variance.
             

    - + Skewness
    template <class RealType, class Policy>
    @@ -509,7 +509,7 @@
               if the distribution does not have a defined skewness.
             

    - + Kurtosis
    template <class RealType, class Policy>
    @@ -551,7 +551,7 @@
               'Proper' kurtosis can have a value from zero to + infinity.
             

    - + Kurtosis excess
    template <class RealType, Policy>
    @@ -585,7 +585,7 @@
               The kurtosis excess of a normal distribution is zero.
             

    - + P and Q

    @@ -595,7 +595,7 @@ returned by these functions.

    - + Percent Point Function or Percentile

    @@ -603,7 +603,7 @@ the Quantile.

    - + Inverse CDF Function.

    @@ -611,14 +611,14 @@ Quantile.

    - + Inverse Survival Function.

    The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

    - + Probability Mass Function

    @@ -631,7 +631,7 @@ applies to continuous distributions.

    - + Lower Critical Value.

    @@ -640,7 +640,7 @@ the Quantile.

    - + Upper Critical Value.

    @@ -650,7 +650,7 @@ complement of the probability.

    - + Survival Function

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index 8dcf92dd6..ccd1886f5 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

    - + Adding Additional Location and Scale Parameters
    @@ -55,7 +55,7 @@ functions.

    - + An "any_distribution" class
    @@ -91,7 +91,7 @@ investigation.

    - + Higher Level Hypothesis Tests
    @@ -111,7 +111,7 @@ expected_mean.

    - + Integration With Statistical Accumulators
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index 205e0cc4f..449e2a4aa 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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
    - + Using Binomial distribution moments
    @@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
    - + Quantiles

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index 3b6a4f08c..94cd67dc4 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

    - + Confidence intervals as a function of the number of observations
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index 799afbf7f..da22fcbc3 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
    negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
     
    - + Default arguments to distribution constructors.
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index f5461c6a3..514cfdebd 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
    - + Controlling Error Handling from find_location
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index c09bb36b5..a23de9020 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

    - + Using find_location and find_scale to meet dispensing and measurement specifications
    @@ -193,7 +193,7 @@

    - + Using Cauchy-Lorentz instead of normal distribution
    @@ -305,7 +305,7 @@ of estimating these intervals.

    - + Changing the scale or standard deviation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index 0848a8514..d1f032683 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
    - + Controlling how Errors from find_scale are handled
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index e36ea7d20..ae68c4b1f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

    - + Throwing a dice
    @@ -288,7 +288,7 @@ replicated in C++ if desired.

    - + Surveying customers to find one with a faulty product
    @@ -333,7 +333,7 @@

    - + Basket Ball Shooters
    @@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

    - + Estimating failures
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index d015686c5..949d442ba 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

    - + Traditional Tables
    @@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

    - + Standard deviations either side of the Mean
    @@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

    - + Some simple examples
    - + Life of light bulbs
    @@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + How many onions?
    @@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + Packing beef
    @@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

    - + Length of bolts
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index 853af19a1..0cc3573e1 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
    - + Supported C99 Functions
    @@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
    - + Quick Reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index 18888d6b3..547ac4864 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

    - + Usage Recomendations

    @@ -295,7 +295,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -391,7 +391,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -520,7 +520,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index ed76cf77a..a238c52a7 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
    - + Supported TR1 Functions
    @@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
    - + Quick Reference
    // [5.2.1.1] associated Laguerre polynomials:
    @@ -494,7 +494,7 @@
             for the full template (header only) version of this function.
           

    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index b6b8e6f11..c5fba4b42 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
    - + Building a Library (shared, dynamic .dll or static .lib)
    @@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

    - + Building the Examples
    @@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

    - + Building the Tests
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index a27b3e96d..fa18acdff 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
    - + boost/math
    @@ -73,7 +73,7 @@
    - + boost/libs
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index 0b99d89fa..b7d5e09f0 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
    - + Quick Reference
    @@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

    - + Rationale

    @@ -766,7 +766,7 @@

    - + Finding More Information
    @@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

    - + Domain Errors

    @@ -859,7 +859,7 @@ for more details.

    - + Evaluation at a pole

    @@ -897,7 +897,7 @@ for more details.

    - + Numeric Overflow

    @@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

    - + Numeric Underflow

    @@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

    - + Denormalisation Errors

    @@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

    - + Evaluation Errors

    @@ -1001,7 +1001,7 @@ for more details.

    - + Indeterminate Result Errors

    @@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

    - + Rounding Errors

    @@ -1068,7 +1068,7 @@ for more details.

    - + Errors from typecasts

    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index b79f320af..44f9dfed3 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -28,7 +28,7 @@ New

    - + Boost-1.47
      @@ -45,7 +45,7 @@
    - + Boost-1.46.1
    • @@ -53,7 +53,7 @@ #5113.
    - + Boost-1.46.0
      @@ -68,7 +68,7 @@
    - + Boost-1.45.0
      @@ -85,7 +85,7 @@
    - + Boost-1.44.0
      @@ -99,7 +99,7 @@
    - + Boost-1.41.0
    • @@ -107,7 +107,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -144,7 +144,7 @@
    - + Boost-1.38.0
      @@ -156,14 +156,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -196,7 +196,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -228,7 +228,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -242,7 +242,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -270,7 +270,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -306,7 +306,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index c745973e8..99744343b 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

    - + Statistical Distributions
    @@ -56,7 +56,7 @@ tests.

    - + Mathematical Special Functions
    @@ -83,7 +83,7 @@ double.

    - + Implementation Toolkit
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index 74746de15..876ac7f6b 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

    - + Shortcuts
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index 4d9e7b960..e2e608d7b 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

    - + Usage Recomendations
    @@ -297,7 +297,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -393,7 +393,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -522,7 +522,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index 4f118af59..b2b39c28f 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

    - + Comparison to GSL-1.13 and Cephes
    @@ -344,7 +344,7 @@

    - +INF [1] + +INF [1]

    @@ -423,7 +423,7 @@

    -

    17.89[2]

    +

    17.89[2]

    (4.248e-005s)

    @@ -548,11 +548,11 @@ -

    [1] +

    [1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

    -

    [2] +

    [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 @@ -563,7 +563,7 @@

    - + Comparison to the R and DCDFLIB Statistical Libraries on Windows
    @@ -659,7 +659,7 @@

    -

    67.66[1]

    +

    67.66[1]

    (3.366e-004s)

    @@ -1088,7 +1088,7 @@

    -

    3.60[2]

    +

    3.60[2]

    (5.987e-007s)

    @@ -1317,7 +1317,7 @@

    -

    43.43[3]

    +

    43.43[3]

    (3.732e-004s)

    @@ -1387,7 +1387,7 @@

    -

    393.90[4]

    +

    393.90[4]

    (2.673e-002s)

    @@ -1523,7 +1523,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (4.411e-004s)

    @@ -1809,28 +1809,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. @@ -1839,7 +1839,7 @@


    - + Comparison to the R Statistical Library on Linux
    @@ -1934,7 +1934,7 @@

    -

    30.51[1]

    +

    30.51[1]

    (3.616e-004s)

    @@ -2363,7 +2363,7 @@

    -

    2.20[2]

    +

    2.20[2]

    (3.522e-007s)

    @@ -2592,7 +2592,7 @@

    -

    25.92[3]

    +

    25.92[3]

    (4.407e-004s)

    @@ -2662,7 +2662,7 @@

    -

    144.91[4]

    +

    144.91[4]

    (3.214e-002s)

    @@ -2798,7 +2798,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (5.916e-004s)

    @@ -3084,28 +3084,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index edb010a7c..1dcc9dc83 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

    - + real

    @@ -89,7 +89,7 @@ = 68.1584.

    - + integer_round_outwards

    @@ -143,7 +143,7 @@ in each tail.

    - + integer_round_inwards

    @@ -202,7 +202,7 @@ in each tail.

    - + integer_round_down

    @@ -210,7 +210,7 @@ or a lower quantile.

    - + integer_round_up

    @@ -218,7 +218,7 @@ a lower quantile.

    - + integer_round_nearest

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index e78cd90b1..89ee6795e 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

    - + Available Actions When an Error is Raised
    @@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

    - + throw_on_error

    @@ -174,7 +174,7 @@

    - + errno_on_error

    @@ -289,7 +289,7 @@

    - + ignore_error

    @@ -402,7 +402,7 @@

    - + user_error

    @@ -451,7 +451,7 @@ here.

    - + Kinds of Error Raised
    @@ -691,7 +691,7 @@
    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index bc9f46fb6..c957f5a5d 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index c20b59e77..a4482e864 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

    - + BOOST_MATH_DOMAIN_ERROR_POLICY

    @@ -71,7 +71,7 @@ ignore_error or user_error.

    - + BOOST_MATH_POLE_ERROR_POLICY

    @@ -81,7 +81,7 @@ ignore_error or user_error.

    - + BOOST_MATH_OVERFLOW_ERROR_POLICY

    @@ -91,7 +91,7 @@ ignore_error or user_error.

    - + BOOST_MATH_ROUNDING_ERROR_POLICY

    @@ -101,7 +101,7 @@ ignore_error or user_error.

    - + BOOST_MATH_EVALUATION_ERROR_POLICY

    @@ -111,7 +111,7 @@ ignore_error or user_error.

    - + BOOST_MATH_UNDERFLOW_ERROR_POLICY

    @@ -121,7 +121,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DENORM_ERROR_POLICY

    @@ -131,7 +131,7 @@ ignore_error or user_error.

    - + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

    @@ -142,7 +142,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DIGITS10_POLICY

    @@ -153,7 +153,7 @@ recommended that you change this from the default.

    - + BOOST_MATH_PROMOTE_FLOAT_POLICY

    @@ -165,7 +165,7 @@ off.

    - + BOOST_MATH_PROMOTE_DOUBLE_POLICY

    @@ -177,7 +177,7 @@ off.

    - + BOOST_MATH_DISCRETE_QUANTILE_POLICY

    @@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

    - + BOOST_MATH_ASSERT_UNDEFINED_POLICY

    @@ -201,7 +201,7 @@ whether or not a particular property is well defined.

    - + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

    @@ -210,7 +210,7 @@ Defaults to 1000000.

    - + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

    @@ -219,7 +219,7 @@ Defaults to 200.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index 945d76e52..f94a4e00b 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

    - + Other Rounding Policies are Available
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index dc0f612f3..c1966679b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -105,7 +105,7 @@

    - + Testing

    @@ -114,7 +114,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -489,7 +489,7 @@ were found.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index 5d14bc76d..ae67e9cb3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

    - + Ordinary Bessel Functions
    @@ -103,7 +103,7 @@ and is known as either a Bessel

    - + Modified Bessel Functions
    @@ -167,7 +167,7 @@ respectively:

    - + Spherical Bessel Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index 9540a3f1f..03fc8a466 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -104,7 +104,7 @@

    - + Testing

    @@ -113,7 +113,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -321,7 +321,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index b89502692..3c9f87bb1 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
     
    - + Description

    @@ -92,7 +92,7 @@ for small x:

    - + Testing

    @@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

    - + Accuracy

    @@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index dc985509f..233ff9470 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index d6dea6e35..750b3f812 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index 0cc97e17a..949ea1e3c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -231,7 +231,7 @@

    - + Testing

    @@ -241,7 +241,7 @@ this implementation.

    - + Implementation

    @@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

    - Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

    are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



    -

    [1] +

    [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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index d8ba513fd..1422ce1f0 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

    - + Synopsis

    @@ -100,7 +100,7 @@ }} // namespaces

    - + Description

    @@ -216,7 +216,7 @@

    - + Testing

    @@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

    - + Accuracy

    @@ -393,7 +393,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index 83e4a8518..1c08ad064 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

    - + Notation

    All variables are real numbers unless otherwise noted.

    - + Definition

    @@ -245,7 +245,7 @@

    - + Duplication Theorem

    @@ -256,7 +256,7 @@

    - + Carlson's Formulas

    @@ -273,7 +273,7 @@

    - + Numerical Algorithms
    @@ -287,7 +287,7 @@ integrals with satisfactory precisions.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index c41225042..5db8a12c9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -202,7 +202,7 @@ slightly over the range [4,6].

    - + Testing

    @@ -217,7 +217,7 @@ check.

    - + Implementation

    @@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



    -

    [2] +

    [2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index 85b3a3739..6b1069f11 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -220,7 +220,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index 207e7c9cc..14fbc865c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

    - + Accuracy

    @@ -99,14 +99,14 @@ function for larger arguments.

    - + Testing

    The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index a50aba210..6bf701852 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

    - + Accuracy

    @@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

    - + Testing

    The spot tests for the double factorial use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index 25f699a59..8957a0195 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    @@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

    - + Accuracy

    @@ -166,7 +166,7 @@ will be the same as for tgamma.

    - + Testing

    @@ -175,7 +175,7 @@ function handle those cases already.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index 534bc47a5..55b8f1428 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

    - + Accuracy

    @@ -79,14 +79,14 @@ function.

    - + Testing

    The spot tests for the falling factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index ded401865..25a4850cb 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

    - + Accuracy

    @@ -83,14 +83,14 @@ function.

    - + Testing

    The spot tests for the rising factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index 01284693b..704a8211f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -85,7 +85,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index ce3627f30..3e4626ecd 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -80,7 +80,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index 0c125553e..da82d776b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index 45263021c..f5fde649f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

    - + Accuracy

    @@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index cd88923f2..c687796e3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

    - + Synopsis

    @@ -49,7 +49,7 @@ }}

    - + Rationale and Usage
    @@ -91,7 +91,7 @@ Only 3 different products were actually computed.

    - + Return Type

    @@ -112,7 +112,7 @@

    - + Policies

    @@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Error Handling
    @@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
    - + Acknowledgements

    @@ -238,7 +238,7 @@ improving the implementation.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index 21aa93aab..e6a057418 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

    - + Accuracy

    @@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index 0eaae5e2e..8061a2bdb 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index 8ed762d2b..bc04e7602 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

    - + Accuracy

    @@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index 74f5fd594..fe44b4e6c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

    - + Accuracy

    Should have approximately 2-3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index ec73f9ec4..babb59136 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

    - + Accuracy

    @@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index fde3ba018..926a17c94 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Almost identical to the incomplete beta function ibeta.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index 9f6cf69e7..0b1d65820 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

    - + Accuracy

    @@ -239,7 +239,7 @@ very small.

    - + Testing

    @@ -248,7 +248,7 @@ at 1000-bit precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index cc42b16cf..4c21d8482 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -158,7 +158,7 @@

    - + Accuracy

    @@ -865,7 +865,7 @@


    - + Testing

    @@ -883,7 +883,7 @@ have test data that is fully independent of the code.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index ce2d0b7f9..fc6b80b2a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

    - + Description

    @@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -300,7 +300,7 @@ or 1.

    - + Testing

    @@ -324,7 +324,7 @@

    - + Implementation of ibeta_inv and ibetac_inv
    @@ -492,7 +492,7 @@ rapidly converges on the true value.

    - + Implementation of inverses on the a and b parameters
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index 67f1f559a..bdb691a01 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
    - + Synopsis

    @@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -100,7 +100,7 @@
               
             

    - + Accuracy

    @@ -525,7 +525,7 @@

    - + Testing

    @@ -540,7 +540,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index 42eb726a3..86a9fc250 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

    - + Synopsis

    @@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -98,7 +98,7 @@
               
             

    - + Accuracy

    @@ -108,7 +108,7 @@ error functions.

    - + Testing

    @@ -131,7 +131,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index 0961f0483..84c124872 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -77,7 +77,7 @@ T otherwise.

    - + Accuracy

    @@ -265,7 +265,7 @@ absolute error will remain very low.

    - + Testing

    @@ -275,7 +275,7 @@ see below).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index 76f8cdb3a..16aa50534 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -75,7 +75,7 @@ otherwise the return type is simply T1.

    - + Accuracy

    @@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index 3bf189f39..1008c68e4 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

    - + Description
    template <class T1, class T2> 
    @@ -107,7 +107,7 @@
               
             

    - + Accuracy

    @@ -317,7 +317,7 @@

    - + Testing

    @@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index 37dd579c7..fb8797099 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -155,7 +155,7 @@

    - + Accuracy

    @@ -823,7 +823,7 @@

    - + Testing

    @@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

    - + Implementation

    @@ -1008,7 +1008,7 @@ by Temme (see references below).

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index 58c872f31..57818a767 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -168,7 +168,7 @@ 0.

    - + Accuracy

    @@ -182,7 +182,7 @@ functions.

    - + Testing

    @@ -206,7 +206,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index c6117f4f2..8348db0e9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description

    @@ -93,7 +93,7 @@ T otherwise.

    - + Accuracy

    @@ -344,7 +344,7 @@

    - + Testing

    @@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index 8e64398ee..aeb749142 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    template <class T>
    @@ -119,7 +119,7 @@
               it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
             

    - + Accuracy

    @@ -374,7 +374,7 @@

    - + Testing

    @@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index acc5a6e73..09a26aee9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

    - + Synopsis

    @@ -51,7 +51,7 @@ }} // namespaces

    - + Description

    @@ -131,7 +131,7 @@

    - + Accuracy

    @@ -248,7 +248,7 @@ is very close to a root.

    - + Testing

    @@ -258,7 +258,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index 39bbdf21a..6ec5a8631 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -62,7 +62,7 @@ }} // namespaces

    - + Description

    @@ -205,7 +205,7 @@

    - + Accuracy

    @@ -422,7 +422,7 @@ is very close to a root.

    - + Testing

    @@ -432,7 +432,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index 5933d3f6d..3f3829108 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -295,7 +295,7 @@
     
     
     
    - + Accuracy

    @@ -676,7 +676,7 @@ given here.

    - + Testing

    @@ -686,7 +686,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index 37f2e7c99..8189301de 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

    - + Synopsis

    @@ -60,7 +60,7 @@ }} // namespaces

    - + Description

    @@ -150,7 +150,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

    - + Testing

    @@ -281,7 +281,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index 93c30ac28..34966068a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

    - + Synopsis

    @@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -80,7 +80,7 @@
               
             

    - + Accuracy

    @@ -229,7 +229,7 @@

    - + Testing

    @@ -244,7 +244,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index 7cdc88731..29e53821c 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -27,7 +27,7 @@ History and What's New

    - + Boost-1.47
      @@ -44,7 +44,7 @@
    - + Boost-1.46.1
    • @@ -52,7 +52,7 @@ #5113.
    - + Boost-1.46.0
      @@ -67,7 +67,7 @@
    - + Boost-1.45.0
      @@ -84,7 +84,7 @@
    - + Boost-1.44.0
      @@ -98,7 +98,7 @@
    - + Boost-1.41.0
    • @@ -106,7 +106,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -143,7 +143,7 @@
    - + Boost-1.38.0
      @@ -155,14 +155,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -195,7 +195,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -227,7 +227,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -241,7 +241,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -269,7 +269,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -305,7 +305,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index 230a42e9c..b6fb06884 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

    - + tgamma
    • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
    - + Incomplete Beta
    • @@ -56,7 +56,7 @@ b (medium priority).
    - + Inverse Gamma
    • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
    - + Polynomials
    • @@ -74,7 +74,7 @@ not (Low Priority).
    - + Elliptic Integrals
      @@ -127,7 +127,7 @@
    - + Inverse Hyperbolic Functions
    @@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
    - + Statistical distributions
    @@ -146,7 +146,7 @@ for very large degrees of freedom?
    - + Feature Requests

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index 216a8f877..c333c3b7c 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -78,7 +78,7 @@ }}} // namespaces

    - + Description

    @@ -178,7 +178,7 @@ a continued fraction for convergence.

    - + Implementation

    @@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index a2c4115f2..de3709133 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

    - + Synopsis

    @@ -59,7 +59,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index 7821563b7..89e99cf13 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

    - + synopsis

    @@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

    - + Description

    @@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index d1196b32d..63400026c 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

    - + synopsis

    @@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

    - + Description

    @@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index 96f750ea1..6128628b0 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

    - + Synopsis

    @@ -62,7 +62,7 @@ }}} // namespaces

    - + Description

    @@ -206,7 +206,7 @@

    - + Newton Raphson Method
    @@ -224,7 +224,7 @@ iteration.

    - + Halley's Method
    @@ -246,7 +246,7 @@ iteration.

    - + Schroeder's Method
    @@ -270,7 +270,7 @@ iteration.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index a8646d851..03254d04d 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

    - + Synopsis

    @@ -144,7 +144,7 @@ }}} // namespaces

    - + Description

    @@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

    - + Bisection
    template <class F, class T, class Tol>
    @@ -280,7 +280,7 @@
               tol was satisfied.
             

    - + Bracket and solve
    @@ -388,7 +388,7 @@ was satisfied.

    - + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
    @@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index d04e8a200..c355df93a 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -70,7 +70,7 @@ }}} // namespaces

    - + Description

    @@ -127,7 +127,7 @@ summation in this way.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index 7765280da..849d5a516 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

    - + Synopsis

    @@ -38,7 +38,7 @@

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index 66b2ee869..485157cbd 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

    - + Synopsis

    @@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

    - + Description
    template <class T>
    @@ -157,7 +157,7 @@
               is mainly a debugging/development aid (and a good place for a breakpoint).
             

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index ea4388994..f6bda6e8c 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

    - + Synopsis

    @@ -103,7 +103,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index c26eeb677..8bf8fb467 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

    - + Synopsis
    namespace boost{ namespace math{ namespace tools{
    @@ -147,7 +147,7 @@
     }}} // namespaces
     
    - + Description

    @@ -177,7 +177,7 @@

    - + Example 1: Output Data for Graph Plotting
    @@ -211,7 +211,7 @@

    - + Example 2: Creating Test Data
    @@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

    - + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
    @@ -482,7 +482,7 @@ of a and z.

    - + reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt.html b/doc/sf_and_dist/html/math_toolkit/using_udt.html index 86e5eee6f..2d07e0a76 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt.html @@ -32,6 +32,7 @@ Floating-Point Library

    Using With MPFR / GMP - a High-Precision Floating-Point Library
    +
    e_float Support
    Conceptual Requirements for Real Number Types
    Conceptual Requirements diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index 01e42d170..ef2be9593 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@
    - + Real concept

    @@ -84,7 +84,7 @@ declaration.

    - + Testing the real concept

    @@ -130,7 +130,7 @@ double, also tests real_concept.

    - + Distribution Concept

    @@ -166,7 +166,7 @@ class for distribution types.

    - + Testing the distribution concept

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index ee94b9362..1a5e6b7f2 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -6,7 +6,7 @@ - + @@ -20,7 +20,7 @@
    -PrevUpHomeNext +PrevUpHomeNext

    @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

    - + Basic Arithmetic Requirements
    @@ -1035,7 +1035,7 @@
    - + Standard Library Support Requirements
    @@ -1361,7 +1361,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/e_float.html b/doc/sf_and_dist/html/math_toolkit/using_udt/e_float.html new file mode 100644 index 000000000..8636d9926 --- /dev/null +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/e_float.html @@ -0,0 +1,59 @@ + + + +e_float Support + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +

    + This library can be used with e_float + (TOMS Algorithm 910) 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 here. +

    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/use_mpfr.html b/doc/sf_and_dist/html/math_toolkit/using_udt/use_mpfr.html index 768ad1918..c8cd1646f 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/use_mpfr.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/use_mpfr.html @@ -7,7 +7,7 @@ - + @@ -20,7 +20,7 @@

    -PrevUpHomeNext +PrevUpHomeNext

    @@ -105,7 +105,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html index 601c64d62..e23381858 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html @@ -35,7 +35,7 @@
    Design Rationale

    - + Synopsis
    namespace boost{ namespace math
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    index efcda25ba..37fa2a8bb 100644
    --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    @@ -27,7 +27,7 @@
     Examples
     
    - + Simple example with std::stringstreams
    @@ -64,7 +64,7 @@

    - + Use with lexical_cast
    @@ -149,7 +149,7 @@ s >> input_value;
    - + Use with serialization archives
    @@ -194,7 +194,7 @@ archives do not check the stream state.

    - + Other examples
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html index 33e92352b..ae2ede51c 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html @@ -27,7 +27,7 @@ Introduction
    - + The Problem

    @@ -51,7 +51,7 @@ assert(inf == y); // Fails!

    - + The Solution

    @@ -119,7 +119,7 @@

    - + C++0X standard for output of infinity and NaN
    @@ -131,7 +131,7 @@ portable.

    - + C99 standard for output of infinity and NaN
    @@ -221,7 +221,7 @@ formats.

    - + Signaling NaNs
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html index cda0dbf68..098243180 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html @@ -27,7 +27,7 @@ Reference
    - + The Facet nonfinite_num_put
    @@ -138,7 +138,7 @@ numbers is simply delegated to the normal std::num_put.

    - + Facet nonfinite_num_get
    @@ -254,7 +254,7 @@ on a platform that lacks NaN, then the fail bit of the stream is set.

    - + Flags

    @@ -284,7 +284,7 @@ and live in the namespace boost::math.

    - + legacy

    @@ -392,7 +392,7 @@ library, and also string representations used by other programming languages.

    - + signed_zero

    @@ -412,7 +412,7 @@ as negative zero, as do most implementations of std::num_get.

    - + trap_infinity

    @@ -437,7 +437,7 @@ (See Design Rationale below for a discussion of this inconsistency.)

    - + trap_nan

    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index 763066f45..0ea2c6b00 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -28,7 +28,7 @@ Infinities and NaNs

    - + Synopsis
    #define FP_ZERO        /* implementation specific value */
    @@ -58,7 +58,7 @@
             to use these functions.
           

    - + Description

    @@ -217,7 +217,7 @@ infinite, NaN, or denormalised).

    - + Floating-point format
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index 6abcd9b20..c3122ff87 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

    - + Synopsis

    @@ -50,7 +50,7 @@ }} // namespaces

    - + Description - float_advance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index f0f5ad89c..f7aded460 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

    - + Synopsis

    @@ -52,7 +52,7 @@ }} // namespaces

    - + Description - float_distance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index 4c04175c7..b5ad0b5da 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_next
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index 8bb0f03ac..07c3179d4 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_prior
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index 57a14ad36..6c4a5f592 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - nextafter
    @@ -76,7 +76,7 @@ returns an overflow_error.

    - + Examples - nextafter
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index 474fa4a0f..2d53c21bd 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -28,7 +28,7 @@ Functions
    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description
    template<class T> 
    @@ -119,7 +119,7 @@
             may be the only portable way to ensure that the sign bit is changed.
           

    - + Sign bits

    @@ -140,7 +140,7 @@ it may be necessary to explicitly specialize then for UDT type T.

    - + Examples
    signbit(3.5) is zero (or false)
    @@ -153,7 +153,7 @@
     changesign(-1.8) is 1.8
     
    - + Portability

    From 0129f70e44f807d901e751f8c6d9a635c2bde552 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Thu, 12 May 2011 12:17:06 +0000 Subject: [PATCH 79/82] Rename to all lower case. [SVN r71887] --- test/{S_.ipp => s_.ipp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/{S_.ipp => s_.ipp} (100%) diff --git a/test/S_.ipp b/test/s_.ipp similarity index 100% rename from test/S_.ipp rename to test/s_.ipp From 06eb582db2b823e679c497932f492c111484cbab Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 16 May 2011 17:28:46 +0000 Subject: [PATCH 80/82] Update docs with new better indexes. [SVN r71987] --- doc/sf_and_dist/Jamfile.v2 | 2 + doc/sf_and_dist/html/index.html | 4 +- doc/sf_and_dist/html/index/s12.html | 1074 +++++++++++---- doc/sf_and_dist/html/index/s13.html | 38 +- doc/sf_and_dist/html/index/s14.html | 42 +- doc/sf_and_dist/html/index/s15.html | 1215 +---------------- doc/sf_and_dist/html/index/s16.html | 897 ++---------- .../backgrounders/implementation.html | 30 +- .../math_toolkit/backgrounders/lanczos.html | 10 +- .../html/math_toolkit/backgrounders/refs.html | 6 +- .../backgrounders/relative_error.html | 2 +- .../math_toolkit/backgrounders/remez.html | 16 +- .../dist/dist_ref/dist_algorithms.html | 6 +- .../dist/dist_ref/dists/bernoulli_dist.html | 10 +- .../dist/dist_ref/dists/beta_dist.html | 20 +- .../dist/dist_ref/dists/binomial_dist.html | 24 +- .../dist/dist_ref/dists/cauchy_dist.html | 10 +- .../dist/dist_ref/dists/chi_squared_dist.html | 12 +- .../dist/dist_ref/dists/exp_dist.html | 10 +- .../dist/dist_ref/dists/extreme_dist.html | 8 +- .../dist/dist_ref/dists/f_dist.html | 10 +- .../dist/dist_ref/dists/gamma_dist.html | 8 +- .../dist/dist_ref/dists/geometric_dist.html | 22 +- .../dist_ref/dists/hypergeometric_dist.html | 10 +- .../dists/inverse_chi_squared_dist.html | 10 +- .../dist_ref/dists/inverse_gamma_dist.html | 8 +- .../dist_ref/dists/inverse_gaussian_dist.html | 10 +- .../dist/dist_ref/dists/laplace_dist.html | 10 +- .../dist/dist_ref/dists/logistic_dist.html | 8 +- .../dist/dist_ref/dists/lognormal_dist.html | 8 +- .../dist/dist_ref/dists/nc_beta_dist.html | 10 +- .../dist_ref/dists/nc_chi_squared_dist.html | 12 +- .../dist/dist_ref/dists/nc_f_dist.html | 10 +- .../dist/dist_ref/dists/nc_t_dist.html | 10 +- .../dists/negative_binomial_dist.html | 22 +- .../dist/dist_ref/dists/normal_dist.html | 8 +- .../dist/dist_ref/dists/pareto.html | 12 +- .../dist/dist_ref/dists/poisson_dist.html | 8 +- .../dist/dist_ref/dists/rayleigh.html | 12 +- .../dist/dist_ref/dists/students_t_dist.html | 10 +- .../dist/dist_ref/dists/triangular_dist.html | 10 +- .../dist/dist_ref/dists/uniform_dist.html | 10 +- .../dist/dist_ref/dists/weibull_dist.html | 12 +- .../html/math_toolkit/dist/dist_ref/nmp.html | 54 +- .../html/math_toolkit/dist/future.html | 8 +- .../weg/binom_eg/binomial_quiz_example.html | 4 +- .../stat_tut/weg/cs_eg/chi_sq_intervals.html | 2 +- .../dist/stat_tut/weg/dist_construct_eg.html | 2 +- .../weg/find_eg/find_location_eg.html | 2 +- .../weg/find_eg/find_mean_and_sd_eg.html | 6 +- .../stat_tut/weg/find_eg/find_scale_eg.html | 2 +- .../dist/stat_tut/weg/geometric_eg.html | 8 +- .../weg/normal_example/normal_misc.html | 14 +- .../html/math_toolkit/extern_c/c99.html | 4 +- .../html/math_toolkit/extern_c/tr1.html | 10 +- .../html/math_toolkit/extern_c/tr1_ref.html | 6 +- .../math_toolkit/main_overview/building.html | 6 +- .../main_overview/directories.html | 4 +- .../main_overview/error_handling.html | 24 +- .../math_toolkit/main_overview/history1.html | 30 +- .../math_toolkit/main_overview/intro.html | 6 +- .../main_overview/navigation.html | 2 +- .../html/math_toolkit/main_overview/tr1.html | 10 +- .../html/math_toolkit/perf/comparisons.html | 54 +- .../policy/pol_ref/discrete_quant_ref.html | 12 +- .../pol_ref/error_handling_policies.html | 14 +- .../policy/pol_ref/internal_promotion.html | 2 +- .../policy/pol_ref/policy_defaults.html | 32 +- .../pol_tutorial/understand_dis_quant.html | 2 +- .../math_toolkit/special/bessel/bessel.html | 10 +- .../special/bessel/bessel_over.html | 6 +- .../math_toolkit/special/bessel/mbessel.html | 10 +- .../special/bessel/sph_bessel.html | 10 +- .../math_toolkit/special/ellint/ellint_1.html | 10 +- .../math_toolkit/special/ellint/ellint_2.html | 10 +- .../math_toolkit/special/ellint/ellint_3.html | 14 +- .../special/ellint/ellint_carlson.html | 10 +- .../special/ellint/ellint_intro.html | 12 +- .../math_toolkit/special/expint/expint_i.html | 14 +- .../math_toolkit/special/expint/expint_n.html | 10 +- .../special/factorials/sf_binomial.html | 6 +- .../factorials/sf_double_factorial.html | 6 +- .../special/factorials/sf_factorial.html | 10 +- .../factorials/sf_falling_factorial.html | 6 +- .../factorials/sf_rising_factorial.html | 6 +- .../math_toolkit/special/inv_hyper/acosh.html | 6 +- .../math_toolkit/special/inv_hyper/asinh.html | 6 +- .../math_toolkit/special/inv_hyper/atanh.html | 6 +- .../math_toolkit/special/powers/cbrt.html | 4 +- .../math_toolkit/special/powers/ct_pow.html | 14 +- .../math_toolkit/special/powers/expm1.html | 4 +- .../math_toolkit/special/powers/hypot.html | 2 +- .../math_toolkit/special/powers/log1p.html | 4 +- .../math_toolkit/special/powers/powm1.html | 4 +- .../math_toolkit/special/powers/sqrt1pm1.html | 4 +- .../special/sf_beta/beta_derivative.html | 8 +- .../special/sf_beta/beta_function.html | 10 +- .../special/sf_beta/ibeta_function.html | 10 +- .../special/sf_beta/ibeta_inv_function.html | 10 +- .../special/sf_erf/error_function.html | 10 +- .../special/sf_erf/error_inv.html | 10 +- .../special/sf_gamma/digamma.html | 10 +- .../special/sf_gamma/gamma_derivatives.html | 8 +- .../special/sf_gamma/gamma_ratios.html | 8 +- .../math_toolkit/special/sf_gamma/igamma.html | 12 +- .../special/sf_gamma/igamma_inv.html | 10 +- .../math_toolkit/special/sf_gamma/lgamma.html | 10 +- .../math_toolkit/special/sf_gamma/tgamma.html | 10 +- .../math_toolkit/special/sf_poly/hermite.html | 10 +- .../special/sf_poly/laguerre.html | 10 +- .../special/sf_poly/legendre.html | 10 +- .../special/sf_poly/sph_harm.html | 10 +- .../html/math_toolkit/special/zetas/zeta.html | 10 +- .../html/math_toolkit/status/history1.html | 30 +- .../html/math_toolkit/status/issues.html | 16 +- .../math_toolkit/toolkit/internals1/cf.html | 8 +- .../toolkit/internals1/constants.html | 4 +- .../toolkit/internals1/minima.html | 6 +- .../toolkit/internals1/rational.html | 6 +- .../toolkit/internals1/roots.html | 12 +- .../toolkit/internals1/roots2.html | 12 +- .../toolkit/internals1/series_evaluation.html | 6 +- .../toolkit/internals1/tuples.html | 4 +- .../toolkit/internals2/error_test.html | 6 +- .../toolkit/internals2/polynomials.html | 4 +- .../toolkit/internals2/test_data.html | 12 +- .../math_toolkit/using_udt/archetypes.html | 8 +- .../html/math_toolkit/using_udt/concepts.html | 4 +- .../html/math_toolkit/utils/fp_facets.html | 2 +- .../utils/fp_facets/examples.html | 8 +- .../math_toolkit/utils/fp_facets/intro.html | 10 +- .../utils/fp_facets/reference.html | 14 +- .../html/math_toolkit/utils/fpclass.html | 6 +- .../utils/next_float/float_advance.html | 4 +- .../utils/next_float/float_distance.html | 4 +- .../utils/next_float/float_next.html | 4 +- .../utils/next_float/float_prior.html | 4 +- .../utils/next_float/nextafter.html | 6 +- .../math_toolkit/utils/sign_functions.html | 10 +- doc/sf_and_dist/index.idx | 11 +- 140 files changed, 1599 insertions(+), 3008 deletions(-) diff --git a/doc/sf_and_dist/Jamfile.v2 b/doc/sf_and_dist/Jamfile.v2 index 3e168fc16..881b4e692 100644 --- a/doc/sf_and_dist/Jamfile.v2 +++ b/doc/sf_and_dist/Jamfile.v2 @@ -19,6 +19,7 @@ if --enable-index in [ modules.peek : ARGV ] html:on $(here)/index.idx $(here)/../../../.. + on enable_index pdf:index.on.type=1 ; } @@ -92,3 +93,4 @@ install pdf-install : standalone : . PDF math.pdf + diff --git a/doc/sf_and_dist/html/index.html b/doc/sf_and_dist/html/index.html index 56c873753..92217d718 100644 --- a/doc/sf_and_dist/html/index.html +++ b/doc/sf_and_dist/html/index.html @@ -53,7 +53,7 @@ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani and Thijs van den Berg

    -

    +

    Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    @@ -512,7 +512,7 @@

    - +

    Last revised: May 12, 2011 at 11:45:42 GMT

    Last revised: May 16, 2011 at 16:53:57 GMT


    diff --git a/doc/sf_and_dist/html/index/s12.html b/doc/sf_and_dist/html/index/s12.html index a0b6f6371..055f2c909 100644 --- a/doc/sf_and_dist/html/index/s12.html +++ b/doc/sf_and_dist/html/index/s12.html @@ -24,13 +24,19 @@

    -Function Index

    -

    A B C D E F G H I K L M N P Q R S T U V Z

    +Function Index
    +

    A B C E F H I L N R S T

    A
    +
    accuracy
    +
    + + + +

    Additional Implementation Notes

    Frequently Asked Questions FAQ

    log1p

    acosh
    @@ -38,6 +44,18 @@

    acosh

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    acoshf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    acoshl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    asinh
    @@ -45,6 +63,54 @@

    asinh

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    asinhf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    asinhl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    assoc_laguerre
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    assoc_laguerref
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    assoc_laguerrel
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    assoc_legendre
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    assoc_legendref
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    assoc_legendrel
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    atanh
    @@ -52,6 +118,18 @@

    atanh

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    atanhf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    atanhl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    B @@ -60,25 +138,27 @@
    beta
    + + + +

    Beta

    Beta Distribution

    Binomial Coefficients

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Incomplete Beta Functions

    Noncentral Beta Distribution

    The Incomplete Beta Function Inverses

    TR1 C Functions Quick Reference

    -
    betac
    -

    Incomplete Beta Functions

    betaf

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    binomial_coefficient
    -

    Binomial Coefficients

    -
    BOOST_MATH_INSTRUMENT_CODE
    -

    Configuration Macros

    -
    BOOST_MATH_INSTRUMENT_VARIABLE
    -

    Configuration Macros

    +
    betal
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    C @@ -92,55 +172,75 @@

    cbrt

    Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder

    -
    cdf
    +
    cbrtf
    - - + + +

    Extras/Future Directions

    Non-Member Properties

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    checked_narrowing_cast
    -

    Error Handling

    -
    chf
    -

    Non-Member Properties

    -
    comp_ellint_2
    +
    cbrtl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    changesign
    +

    Sign Manipulation Functions

    +
    comp_ellint_1

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_2f
    +
    comp_ellint_1f

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_2l
    +
    comp_ellint_1l

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_3
    +
    conf_hyperg

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_3f
    +
    conf_hypergf

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_3l
    +
    conf_hypergl

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    continued_fraction_a
    -

    Continued Fraction Evaluation

    -
    continued_fraction_b
    -

    Continued Fraction Evaluation

    +
    copysign
    +
    + + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Sign Manipulation Functions

    +
    copysignf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    copysignl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    cyl_bessel_i
    @@ -148,6 +248,18 @@

    C99 and C++ TR1 C-style Functions

    Modified Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    +
    cyl_bessel_if
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    cyl_bessel_il
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    cyl_bessel_j
    @@ -155,6 +267,18 @@

    Bessel Functions of the First and Second Kinds

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    cyl_bessel_jf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    cyl_bessel_jl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    cyl_bessel_k
    @@ -162,6 +286,18 @@

    C99 and C++ TR1 C-style Functions

    Modified Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    +
    cyl_bessel_kf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    cyl_bessel_kl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    cyl_neumann
    @@ -169,22 +305,23 @@

    Bessel Functions of the First and Second Kinds

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    cyl_neumannf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    cyl_neumannl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -D +E
    -
    digamma
    -

    Digamma

    -
    double_factorial
    -

    Double Factorial

    -
    -
    -E -
    -
    -
    e
    -

    Numeric Constants

    ellint_1
    @@ -192,6 +329,18 @@

    C99 and C++ TR1 C-style Functions

    Elliptic Integrals of the First Kind - Legendre Form

    TR1 C Functions Quick Reference

    +
    ellint_1f
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    ellint_1l
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    ellint_2
    @@ -199,6 +348,18 @@

    C99 and C++ TR1 C-style Functions

    Elliptic Integrals of the Second Kind - Legendre Form

    TR1 C Functions Quick Reference

    +
    ellint_2f
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    ellint_2l
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    ellint_3
    @@ -206,6 +367,18 @@

    C99 and C++ TR1 C-style Functions

    Elliptic Integrals of the Third Kind - Legendre Form

    TR1 C Functions Quick Reference

    +
    ellint_3f
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    ellint_3l
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    erf
    @@ -219,19 +392,47 @@ + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Error Functions

    Normal (Gaussian) Distribution

    +
    erfcf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    erfcl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    erff
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    erfl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    exp2
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    exp2f
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    exp2l
    +
    + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    erfc_inv
    -

    Error Function Inverses

    -
    erf_inv
    -

    Error Function Inverses

    -
    evaluate_even_polynomial
    -

    Polynomial and Rational Function Evaluation

    -
    evaluate_odd_polynomial
    -

    Polynomial and Rational Function Evaluation

    -
    evaluate_polynomial
    -

    Polynomial and Rational Function Evaluation

    -
    evaluate_rational
    -

    Polynomial and Rational Function Evaluation

    expint
    @@ -240,6 +441,18 @@

    C99 and C++ TR1 C-style Functions

    Exponential Integral En

    TR1 C Functions Quick Reference

    +
    expintf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    expintl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    expm1
    @@ -247,79 +460,96 @@

    C99 and C++ TR1 C-style Functions

    C99 C Functions

    expm1

    +
    expm1f
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    expm1l
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -F +F
    -
    factorial
    -

    Factorial

    -
    falling_factorial
    -

    Falling Factorial

    -
    find_beta
    -

    Beta Distribution

    -
    find_degrees_of_freedom
    +
    fdim
    - - - + +

    Chi Squared Distribution

    Noncentral Chi-Squared Distribution

    Students t Distribution

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    find_location
    -

    Distribution Algorithms

    -
    find_lower_bound_on_p
    +
    fdimf
    - - - + +

    Binomial Distribution

    Geometric Distribution

    Negative Binomial Distribution

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    find_non_centrality
    -

    Noncentral Chi-Squared Distribution

    -
    find_scale
    -

    Distribution Algorithms

    -
    find_upper_bound_on_p
    +
    fdiml
    - - - + +

    Binomial Distribution

    Geometric Distribution

    Negative Binomial Distribution

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    float_advance
    -

    Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance

    -
    float_distance
    -

    Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance

    -
    float_next
    -

    Finding the Next Greater Representable Value (float_next)

    -
    float_prior
    -

    Finding the Next Smaller Representable Value (float_prior)

    +
    fma
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    fmaf
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    fmal
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    fmax
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    fmaxf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    fmaxl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    fmin
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    fminf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    fminl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    fpclassify
    +

    Floating-Point Classification: Infinities and NaNs

    -G +H
    -
    -H -
    -
    -I +I
    -K -
    -
    -
    kahan_sum_series
    -

    Series Evaluation

    -
    kurtosis
    -

    Non-Member Properties

    -
    kurtosis_excess
    -

    Non-Member Properties

    -
    -
    -L +L
    -
    laguerre_next
    -

    Laguerre (and Associated) Polynomials

    -
    legendre_next
    -

    Legendre (and Associated) Polynomials

    -
    legendre_p
    -

    Legendre (and Associated) Polynomials

    -
    legendre_q
    -

    Legendre (and Associated) Polynomials

    +
    laguerref
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    laguerrel
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    legendre
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    legendref
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    legendrel
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    lgamma
    @@ -404,6 +684,33 @@

    C99 and C++ TR1 C-style Functions

    Log Gamma

    Setting Polices at Namespace Scope

    +
    lgammaf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    lgammal
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    llrint
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    llrintf
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    llrintl
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    llround
    @@ -411,8 +718,18 @@

    C99 and C++ TR1 C-style Functions

    C99 C Functions

    Rounding Functions

    -
    lltrunc
    -

    Truncation Functions

    +
    llroundf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    llroundl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    log1p
    @@ -421,6 +738,64 @@

    C99 and C++ TR1 C-style Functions

    log1p

    Series Evaluation

    +
    log1pf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    log1pl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    log2
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Compile Time Power of a Runtime Base

    +
    log2f
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    log2l
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    logb
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    logbf
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    logbl
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    lrint
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    lrintf
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    lrintl
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    lround
    @@ -428,30 +803,55 @@

    C99 and C++ TR1 C-style Functions

    C99 C Functions

    Rounding Functions

    -
    ltrunc
    -

    Truncation Functions

    +
    lroundf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    lroundl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -M +N
    -
    -N -
    -
    -P +R
    -
    pdf
    -

    Non-Member Properties

    -
    powm1
    -

    powm1

    -
    -
    -Q -
    -
    -
    quantile
    -

    Non-Member Properties

    -
    -
    -R -
    -
    -
    relative_error
    -

    Relative Error and Testing

    -
    rising_factorial
    -

    Rising Factorial

    +
    remainder
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    remainderf
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    remainderl
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    remquo
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    remquof
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    remquol
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    riemann_zeta
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    riemann_zetaf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    riemann_zetal
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    rint
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    rintf
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    rintl
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    round
    +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Conceptual Requirements for Real Number Types

    Rounding Functions

    +
    roundf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    roundl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -S +S
    -
    scale
    -

    Additional Implementation Notes

    -
    schroeder_iterate
    -

    Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder

    -
    sinc_pi
    -

    sinc_pi

    -
    sinhc_pi
    -

    sinhc_pi

    -
    skewness
    -

    Non-Member Properties

    -
    spherical_harmonic_i
    -

    Spherical Harmonics

    -
    spherical_harmonic_r
    -

    Spherical Harmonics

    +
    scalbln
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    scalblnf
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    scalblnl
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    scalbn
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    scalbnf
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    scalbnl
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    +
    sign
    +

    Sign Manipulation Functions

    +
    signbit
    +

    Sign Manipulation Functions

    sph_bessel
    @@ -519,6 +1023,36 @@

    C99 and C++ TR1 C-style Functions

    Spherical Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    +
    sph_besself
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    sph_bessell
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    sph_legendre
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    sph_legendref
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    sph_legendrel
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    sph_neumann
    @@ -526,19 +1060,23 @@

    C99 and C++ TR1 C-style Functions

    Spherical Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    -
    sqrt1pm1
    -

    sqrt1pm1

    -
    standard_deviation
    -

    Non-Member Properties

    -
    sum_series
    -

    Series Evaluation

    +
    sph_neumannf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    sph_neumannl
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -T +T
    -
    -U -
    -
    -
    -V -
    -
    -
    variance
    -

    Non-Member Properties

    -
    -
    -Z -
    -
    diff --git a/doc/sf_and_dist/html/index/s13.html b/doc/sf_and_dist/html/index/s13.html index 3d96d65ef..9daf02622 100644 --- a/doc/sf_and_dist/html/index/s13.html +++ b/doc/sf_and_dist/html/index/s13.html @@ -24,11 +24,11 @@

    -Class Index

    -

    B C D E F G H I L M N P R S T U W

    +Class Index
    +

    B C D E F G H I L M N P R S T U W

    -B +B
    bernoulli_distribution
    @@ -39,7 +39,7 @@

    Binomial Distribution

    -C +C
    cauchy_distribution
    @@ -48,14 +48,14 @@

    Chi Squared Distribution

    -D +D
    default_policy

    Policy Class Reference

    -E +E
    eps_tolerance
    @@ -72,14 +72,14 @@

    Extreme Value Distribution

    -F +F
    fisher_f_distribution

    F Distribution

    -G +G
    gamma_distribution
    @@ -88,14 +88,14 @@

    Geometric Distribution

    -H +H
    hypergeometric_distribution

    Hypergeometric Distribution

    -I +I
    inverse_chi_squared_distribution
    @@ -106,7 +106,7 @@

    Inverse Gaussian (or Inverse Normal) Distribution

    -L +L
    laplace_distribution
    @@ -119,14 +119,14 @@

    Log Normal Distribution

    -M +M
    max_factorial

    Factorial

    -N +N
    negative_binomial_distribution
    @@ -149,7 +149,7 @@

    Normal (Gaussian) Distribution

    -P +P
    pareto_distribution
    @@ -163,21 +163,21 @@
    -R +R
    rayleigh_distribution

    Rayleigh Distribution

    -S +S
    students_t_distribution

    Students t Distribution

    -T +T
    test_data
    @@ -189,7 +189,7 @@
    -U +U
    -W +W
    weibull_distribution
    diff --git a/doc/sf_and_dist/html/index/s14.html b/doc/sf_and_dist/html/index/s14.html index aa81d1740..0a5fe575a 100644 --- a/doc/sf_and_dist/html/index/s14.html +++ b/doc/sf_and_dist/html/index/s14.html @@ -24,18 +24,18 @@

    -Typedef Index

    -

    A B C D E F G H I L N O P R S T U V W

    +Typedef Index
    +

    A B C D E F G H I L N O P R S T U V W

    -A +A
    assert_undefined_type

    Policy Class Reference

    -B +B
    bernoulli
    @@ -46,7 +46,7 @@

    Binomial Distribution

    -C +C
    cauchy
    @@ -61,7 +61,7 @@

    Chi Squared Distribution

    -D +D
    denorm_error_type
    @@ -78,7 +78,7 @@
    -E +E
    evaluation_error_type
    @@ -89,7 +89,7 @@

    Extreme Value Distribution

    -F +F
    fisher_f
    @@ -105,7 +105,7 @@
    -G +G
    gamma
    @@ -118,14 +118,14 @@

    Geometric Distribution

    -H +H
    -I +I
    indeterminate_result_error_type
    @@ -136,7 +136,7 @@

    Inverse Gaussian (or Inverse Normal) Distribution

    -L +L
    laplace
    @@ -147,7 +147,7 @@

    Log Normal Distribution

    -N +N
    negative_binomial
    @@ -171,14 +171,14 @@
    -O +O
    overflow_error_type

    Policy Class Reference

    -P +P
    pareto
    @@ -224,7 +224,7 @@

    Policy Class Reference

    -R +R
    rayleigh
    @@ -233,7 +233,7 @@

    Policy Class Reference

    -S +S
    students_t
    @@ -243,14 +243,14 @@
    -T +T
    -U +U
    underflow_error_type
    @@ -259,7 +259,7 @@

    Uniform Distribution

    -V +V
    value_type
    @@ -299,7 +299,7 @@
    -W +W
    weibull
    diff --git a/doc/sf_and_dist/html/index/s15.html b/doc/sf_and_dist/html/index/s15.html index a59d1d124..93e9b9c88 100644 --- a/doc/sf_and_dist/html/index/s15.html +++ b/doc/sf_and_dist/html/index/s15.html @@ -24,160 +24,13 @@

    -Macro Index

    -

    A B C E F H I L N R S T

    +Macro Index
    +

    B F

    -A +B
    -
    acosh
    -
    - - - - -

    acosh

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    acoshf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    acoshl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    asinh
    -
    - - - - -

    asinh

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    asinhf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    asinhl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    assoc_laguerre
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    assoc_laguerref
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    assoc_laguerrel
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    assoc_legendre
    -
    - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Legendre (and Associated) Polynomials

    TR1 C Functions Quick Reference

    -
    assoc_legendref
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    assoc_legendrel
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    atanh
    -
    - - - - -

    atanh

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    atanhf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    atanhl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    -
    -B -
    -
    -
    beta
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    About the Math Toolkit

    Additional Implementation Notes

    Beta

    Beta Distribution

    Binomial Coefficients

    Binomial Distribution

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Chi Squared Distribution

    Conceptual Requirements for Real Number Types

    Credits and Acknowledgements

    Derivative of the Incomplete Beta Function

    Directory and File Structure

    Distribution Construction Example

    Distributions are Objects

    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 the Required Sample Sizes for a Chi-Square Test for the Standard Deviation

    F Distribution

    Graphing, Profiling, and Generating Test Data for Special Functions

    History and What's New

    Incomplete Beta Functions

    Negative Binomial Distribution

    Noncentral Beta Distribution

    Noncentral F Distribution

    Noncentral T Distribution

    Ratios of Gamma Functions

    Students t Distribution

    Tables of the power function of the χ 2 test.

    The Incomplete Beta Function Inverses

    The Lanczos Approximation

    TR1 C Functions Quick Reference

    Triangular Distribution

    Weibull Distribution

    -
    betaf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    betal
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    BOOST_DEFINE_MATH_CONSTANT

    Additional Implementation Notes

    BOOST_FPU_EXCEPTION_GUARD
    @@ -312,447 +165,9 @@

    Configuration Macros

    -C +F
    -
    cbrt
    -
    - - - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    cbrt

    Comparisons to Other Open Source Libraries

    Directory and File Structure

    Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder

    -
    cbrtf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    cbrtl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    comp_ellint_1
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_1f
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_1l
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_2
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_2f
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_2l
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_3
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_3f
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_3l
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    copysign
    -
    - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Sign Manipulation Functions

    -
    copysignf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    copysignl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    cyl_bessel_i
    -
    - - - - - - - - -

    Bessel Function Overview

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Comparisons to Other Open Source Libraries

    History and What's New

    Modified Bessel Functions of the First and Second Kinds

    Noncentral Chi-Squared Distribution

    TR1 C Functions Quick Reference

    -
    cyl_bessel_if
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    cyl_bessel_il
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    cyl_bessel_j
    -
    - - - - - - - - - -

    Bessel Function Overview

    Bessel Functions of the First and Second Kinds

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Calculation of the Type of the Result

    Comparisons to Other Open Source Libraries

    Modified Bessel Functions of the First and Second Kinds

    Spherical Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    -
    cyl_bessel_jf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    cyl_bessel_jl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    cyl_bessel_k
    -
    - - - - - - -

    Bessel Function Overview

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Comparisons to Other Open Source Libraries

    Modified Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    -
    cyl_bessel_kf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    cyl_bessel_kl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    cyl_neumann
    -
    - - - - - - - - -

    Bessel Function Overview

    Bessel Functions of the First and Second Kinds

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Comparisons to Other Open Source Libraries

    Modified Bessel Functions of the First and Second Kinds

    Spherical Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    -
    cyl_neumannf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    cyl_neumannl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    -
    -E -
    -
    -
    ellint_1
    -
    - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Elliptic Integrals of the First Kind - Legendre Form

    TR1 C Functions Quick Reference

    -
    ellint_1f
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    ellint_1l
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    ellint_2
    -
    - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Elliptic Integrals of the Second Kind - Legendre Form

    TR1 C Functions Quick Reference

    -
    ellint_2f
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    ellint_2l
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    ellint_3
    -
    - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Elliptic Integrals of the Third Kind - Legendre Form

    Known Issues, and TODO List

    TR1 C Functions Quick Reference

    -
    ellint_3f
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    ellint_3l
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    erf
    -
    - - - - - - - - - - - - - - - -

    About the Math Toolkit

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Calling User Defined Error Handlers

    Comparing Compilers

    Comparisons to Other Open Source Libraries

    Conceptual Requirements for Real Number Types

    Credits and Acknowledgements

    Directory and File Structure

    Error Function Inverses

    Error Functions

    Getting the Best Performance from this Library

    History and What's New

    Performance Tuning Macros

    -
    erfc
    -
    - - - - - - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Comparisons to Other Open Source Libraries

    Error Function Inverses

    Error Functions

    History and What's New

    Incomplete Gamma Functions

    Normal (Gaussian) Distribution

    The Remez Method

    -
    erfcf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    erfcl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    erff
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    erfl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    exp2
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    exp2f
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    exp2l
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    expint
    -
    - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Exponential Integral Ei

    Exponential Integral En

    TR1 C Functions Quick Reference

    -
    expintf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    expintl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    expm1
    -
    - - - - - - - - - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Comparisons to Other Open Source Libraries

    expm1

    Exponential Distribution

    Extreme Value Distribution

    Gamma

    Pareto Distribution

    powm1

    Rayleigh Distribution

    sqrt1pm1

    Weibull Distribution

    -
    expm1f
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    expm1l
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    -
    -F -
    -
    -
    -H -
    -
    -
    -I -
    -
    -
    -L -
    -
    -
    laguerre
    -
    - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Laguerre (and Associated) Polynomials

    TR1 C Functions Quick Reference

    -
    laguerref
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    laguerrel
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    legendre
    -
    - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Legendre (and Associated) Polynomials

    TR1 C Functions Quick Reference

    -
    legendref
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    legendrel
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    lgamma
    -
    - - - - - - - - - - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Comparisons to Other Open Source Libraries

    Directory and File Structure

    Gamma

    Graphing, Profiling, and Generating Test Data for Special Functions

    History and What's New

    Hypergeometric Distribution

    Log Gamma

    Negative Binomial Distribution

    Relative Error and Testing

    Setting Polices at Namespace Scope

    The Lanczos Approximation

    -
    lgammaf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    lgammal
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    llrint
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    llrintf
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    llrintl
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    llround
    -
    - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Conceptual Requirements for Real Number Types

    Rounding Functions

    -
    llroundf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    llroundl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    log1p
    -
    - - - - - - - - - - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Comparisons to Other Open Source Libraries

    Exponential Distribution

    Extreme Value Distribution

    Geometric Distribution

    Known Issues, and TODO List

    Log Gamma

    log1p

    Rayleigh Distribution

    Series Evaluation

    sqrt1pm1

    Weibull Distribution

    -
    log1pf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    log1pl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    log2
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Compile Time Power of a Runtime Base

    -
    log2f
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    log2l
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    logb
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    logbf
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    logbl
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    lrint
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    lrintf
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    lrintl
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    lround
    -
    - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Conceptual Requirements for Real Number Types

    Rounding Functions

    -
    lroundf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    lroundl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    -
    -N -
    -
    -
    -R -
    -
    -
    remainder
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    The Remez Method

    -
    remainderf
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    remainderl
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    remquo
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    remquof
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    remquol
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    riemann_zeta
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    riemann_zetaf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    riemann_zetal
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    rint
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    rintf
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    rintl
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    round
    -
    - - - - - - - - - - - - - - - - - - - - - - -

    Additional Implementation Notes

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Conceptual Requirements for Real Number Types

    Discrete Quantile Policies

    Error Function Inverses

    Error Functions

    Error Handling

    Error Handling Policies

    Examples

    Find Scale (Standard Deviation) Example

    Generic operations common to all distributions are non-member functions

    Geometric Distribution Examples

    Incomplete Gamma Function Inverses

    Root Finding Without Derivatives: Bisection, Bracket and TOMS748

    Rounding Functions

    The Incomplete Beta Function Inverses

    The Remez Method

    Truncation Functions

    Understanding Quantiles of Discrete Distributions

    Using Macros to Change the Policy Defaults

    -
    roundf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    roundl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    -
    -S -
    -
    -
    scalbln
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    scalblnf
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    scalblnl
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    scalbn
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    scalbnf
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    scalbnl
    -
    - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    sph_bessel
    -
    - - - - - - -

    Bessel Function Overview

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Calculation of the Type of the Result

    Spherical Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    -
    sph_besself
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    sph_bessell
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    sph_legendre
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    sph_legendref
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    sph_legendrel
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    sph_neumann
    -
    - - - - - -

    Bessel Function Overview

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Spherical Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    -
    sph_neumannf
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    sph_neumannl
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    -
    -T -
    -
    diff --git a/doc/sf_and_dist/html/index/s16.html b/doc/sf_and_dist/html/index/s16.html index d507f949d..dde0572d0 100644 --- a/doc/sf_and_dist/html/index/s16.html +++ b/doc/sf_and_dist/html/index/s16.html @@ -23,17 +23,18 @@

    -Index

    -

    A B C D E F G H I K L M N O P Q R S T U V W Z

    +Index
    +

    A B C D E F G H I K L M N O P R S T U V W

    -A +A
    -
    About the Math Toolkit
    +
    accuracy
    - - + + +

    beta

    erf

    Additional Implementation Notes

    Frequently Asked Questions FAQ

    log1p

    acosh
    @@ -54,8 +55,6 @@

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance
    -

    float_advance

    asinh
    @@ -99,7 +98,6 @@

    asinh

    -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Legendre (and Associated) Polynomials

    TR1 C Functions Quick Reference

    assoc_legendref
    @@ -135,7 +133,7 @@
    -B +B
    bernoulli
    @@ -149,15 +147,6 @@
    bernoulli_distribution

    Bernoulli Distribution

    -
    Bessel Function Overview
    -
    - - - - - - -

    cyl_bessel_i

    cyl_bessel_j

    cyl_bessel_k

    cyl_neumann

    sph_bessel

    sph_neumann

    Bessel Functions of the First and Second Kinds
    @@ -170,50 +159,23 @@

    cyl_bessel_j

    beta
    - - - - - - - - - - - - - - - - - - - - - - - -

    About the Math Toolkit

    Additional Implementation Notes

    Beta

    Beta Distribution

    Binomial Coefficients

    Binomial Distribution

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Chi Squared Distribution

    Conceptual Requirements for Real Number Types

    Credits and Acknowledgements

    Derivative of the Incomplete Beta Function

    Directory and File Structure

    Distribution Construction Example

    Distributions are Objects

    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 the Required Sample Sizes for a Chi-Square Test for the Standard Deviation

    F Distribution

    Graphing, Profiling, and Generating Test Data for Special Functions

    History and What's New

    Incomplete Beta Functions

    Negative Binomial Distribution

    Noncentral Beta Distribution

    Noncentral F Distribution

    Noncentral T Distribution

    Ratios of Gamma Functions

    Students t Distribution

    Tables of the power function of the χ 2 test.

    The Incomplete Beta Function Inverses

    The Lanczos Approximation

    TR1 C Functions Quick Reference

    Triangular Distribution

    Weibull Distribution

    Beta Distribution
    -

    beta

    beta_distribution

    find_beta

    policy_type

    value_type

    -
    betac
    -

    Incomplete Beta Functions

    betaf
    @@ -231,22 +193,14 @@
    binomial

    C99 and C++ TR1 C-style Functions

    Binomial Distribution

    Binomial Coefficients
    -
    - - -

    beta

    binomial_coefficient

    +

    beta

    Binomial Distribution
    - - -

    beta

    binomial

    binomial_distribution

    find_lower_bound_on_p

    find_upper_bound_on_p

    policy_type

    value_type

    -
    binomial_coefficient
    -

    Binomial Coefficients

    binomial_distribution

    Binomial Distribution

    BOOST_DEFINE_MATH_CONSTANT
    @@ -383,7 +337,7 @@

    Configuration Macros

    -C +C
    -
    Calculation of the Type of the Result
    -
    - - -

    cyl_bessel_j

    sph_bessel

    Calling User Defined Error Handlers
    - - - - - - - - - -

    BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS

    erf

    msg

    promote_args

    tgamma

    user_denorm_error

    user_domain_error

    user_evaluation_error

    user_indeterminate_result_error

    user_overflow_error

    user_pole_error

    user_rounding_error

    user_underflow_error

    cauchy
    @@ -847,8 +780,6 @@ - -

    C99 and TR1 C Functions Overview

    C99 C Functions

    cbrt

    Comparisons to Other Open Source Libraries

    Directory and File Structure

    Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder

    cbrtf
    @@ -863,11 +794,8 @@

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    cdf
    -
    - - -

    Extras/Future Directions

    Non-Member Properties

    +
    changesign
    +

    Sign Manipulation Functions

    Changing the Policy Defaults
    @@ -876,16 +804,10 @@

    BOOST_MATH_ASSERT_UNDEFINED_POLICY

    Changing the Policy on an Ad Hoc Basis for the Special Functions

    tgamma

    -
    checked_narrowing_cast
    -

    Error Handling

    -
    chf
    -

    Non-Member Properties

    Chi Squared Distribution
    - -

    beta

    chi_squared

    chi_squared_distribution

    find_degrees_of_freedom

    policy_type

    value_type

    @@ -893,27 +815,10 @@

    Chi Squared Distribution

    chi_squared_distribution

    Chi Squared Distribution

    -
    Comparing Compilers
    -

    erf

    -
    Comparisons to Other Open Source Libraries
    -
    - - - - - - - - - - - -

    cbrt

    cyl_bessel_i

    cyl_bessel_j

    cyl_bessel_k

    cyl_neumann

    erf

    erfc

    expm1

    lgamma

    log1p

    tgamma

    Compile Time Power of a Runtime Base
    -

    BOOST_MATH_OVERFLOW_ERROR_POLICY

    log2

    user_overflow_error

    Compilers

    BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS

    @@ -935,49 +840,9 @@

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_2
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_2f
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_2l
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_3
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_3f
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    comp_ellint_3l
    -
    - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    Conceptual Requirements for Real Number Types
    - - - -

    beta

    erf

    Lanczos approximation

    llround

    lround

    round

    trunc

    @@ -1005,15 +870,24 @@

    BOOST_MATH_STD_USING

    BOOST_MATH_USE_C99

    -
    Continued Fraction Evaluation
    +
    conf_hyperg
    - - + + + +

    continued_fraction_a

    continued_fraction_b

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    conf_hypergf
    +
    + + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    +
    conf_hypergl
    +
    + + +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    continued_fraction_a
    -

    Continued Fraction Evaluation

    -
    continued_fraction_b
    -

    Continued Fraction Evaluation

    copysign
    @@ -1033,20 +907,11 @@

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    Credits and Acknowledgements
    -
    - - -

    beta

    erf

    cyl_bessel_i
    - - - -

    Bessel Function Overview

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Comparisons to Other Open Source Libraries

    History and What's New

    Modified Bessel Functions of the First and Second Kinds

    Noncentral Chi-Squared Distribution

    TR1 C Functions Quick Reference

    cyl_bessel_if
    @@ -1063,14 +928,9 @@
    cyl_bessel_j
    - - - - -

    Bessel Function Overview

    Bessel Functions of the First and Second Kinds

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Calculation of the Type of the Result

    Comparisons to Other Open Source Libraries

    Modified Bessel Functions of the First and Second Kinds

    Spherical Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    cyl_bessel_jf
    @@ -1087,10 +947,8 @@
    cyl_bessel_k
    - -

    Bessel Function Overview

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Comparisons to Other Open Source Libraries

    Modified Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    @@ -1108,13 +966,9 @@
    cyl_neumann
    - - - -

    Bessel Function Overview

    Bessel Functions of the First and Second Kinds

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Comparisons to Other Open Source Libraries

    Modified Bessel Functions of the First and Second Kinds

    Spherical Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    cyl_neumannf
    @@ -1131,52 +985,19 @@
    -D +D
    default_policy

    Policy Class Reference

    denorm_error_type

    Policy Class Reference

    -
    Derivative of the Incomplete Beta Function
    -
    - - -

    beta

    ibeta_derivative

    -
    Derivative of the Incomplete Gamma Function
    -

    gamma_p_derivative

    Digamma
    -
    - - -

    digamma

    Lanczos approximation

    -
    digamma
    -

    Digamma

    -
    Directory and File Structure
    -
    - - - - - -

    beta

    cbrt

    erf

    lgamma

    tgamma

    -
    Discrete Quantile Policies
    -

    round

    +

    Lanczos approximation

    discrete_quantile_type

    Policy Class Reference

    -
    Distribution Algorithms
    -
    - - -

    find_location

    find_scale

    -
    Distributions are Objects
    -

    beta

    domain_error_type

    Policy Class Reference

    -
    Double Factorial
    -

    double_factorial

    -
    double_factorial
    -

    Double Factorial

    double_t
    @@ -1185,11 +1006,9 @@

    C99 and C++ TR1 C-style Functions

    -E +E
    -
    e
    -

    Numeric Constants

    ellint_1
    @@ -1233,7 +1052,6 @@ -

    C99 and C++ TR1 C-style Functions

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Elliptic Integrals of the Third Kind - Legendre Form

    Known Issues, and TODO List

    TR1 C Functions Quick Reference

    ellint_3f
    @@ -1264,34 +1082,18 @@

    Root Finding Without Derivatives: Bisection, Bracket and TOMS748

    erf
    - - - - - - - - - - -

    About the Math Toolkit

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Calling User Defined Error Handlers

    Comparing Compilers

    Comparisons to Other Open Source Libraries

    Conceptual Requirements for Real Number Types

    Credits and Acknowledgements

    Directory and File Structure

    Error Function Inverses

    Error Functions

    Getting the Best Performance from this Library

    History and What's New

    Performance Tuning Macros

    erfc
    - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Comparisons to Other Open Source Libraries

    Error Function Inverses

    Error Functions

    History and What's New

    Incomplete Gamma Functions

    Normal (Gaussian) Distribution

    The Remez Method

    erfcf
    @@ -1305,8 +1107,6 @@

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    erfc_inv
    -

    Error Function Inverses

    erff
    @@ -1319,63 +1119,21 @@

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    erf_inv
    -

    Error Function Inverses

    -
    Error Function Inverses
    -
    - - - - - -

    erf

    erfc

    erfc_inv

    erf_inv

    round

    Error Functions
    -

    erf

    erfc

    round

    -
    Error Handling
    -
    - - - - -

    checked_narrowing_cast

    round

    tgamma

    trunc

    -
    Error Handling Policies
    -
    - - - - - - - - - - - -

    round

    tgamma

    trunc

    user_denorm_error

    user_domain_error

    user_evaluation_error

    user_indeterminate_result_error

    user_overflow_error

    user_pole_error

    user_rounding_error

    user_underflow_error

    -
    evaluate_even_polynomial
    -

    Polynomial and Rational Function Evaluation

    -
    evaluate_odd_polynomial
    -

    Polynomial and Rational Function Evaluation

    -
    evaluate_polynomial
    -

    Polynomial and Rational Function Evaluation

    -
    evaluate_rational
    -

    Polynomial and Rational Function Evaluation

    evaluation_error_type

    Policy Class Reference

    Examples
    - -

    beta

    BOOST_MATH_DISCRETE_QUANTILE_POLICY

    BOOST_MATH_DOMAIN_ERROR_POLICY

    BOOST_MATH_OVERFLOW_ERROR_POLICY

    cauchy

    negative_binomial

    normal

    round

    exp2
    @@ -1417,16 +1175,7 @@ - - - - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Comparisons to Other Open Source Libraries

    expm1

    Exponential Distribution

    Extreme Value Distribution

    Gamma

    Pareto Distribution

    powm1

    Rayleigh Distribution

    sqrt1pm1

    Weibull Distribution

    expm1f
    @@ -1444,10 +1193,8 @@

    Exponential Distribution

    Exponential Distribution
    - -

    expm1

    exponential

    exponential_distribution

    log1p

    policy_type

    value_type

    @@ -1457,14 +1204,10 @@

    expint

    exponential_distribution

    Exponential Distribution

    -
    Extras/Future Directions
    -

    cdf

    Extreme Value Distribution
    - -

    expm1

    extreme_value

    extreme_value_distribution

    log1p

    value_type

    extreme_value
    @@ -1473,12 +1216,11 @@

    Extreme Value Distribution

    -F +F
    F Distribution
    - @@ -1489,17 +1231,7 @@

    beta

    fisher_f

    fisher_f_distribution

    value_type

    nonfinite_num_put

    Factorial
    -
    - - - -

    factorial

    max_factorial

    tgamma

    -
    factorial
    -

    Factorial

    -
    Falling Factorial
    -

    falling_factorial

    -
    falling_factorial
    -

    Falling Factorial

    +

    max_factorial

    fdim
    @@ -1515,47 +1247,8 @@

    C99 and C++ TR1 C-style Functions

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    Finding the Next Greater Representable Value (float_next)
    -
    - - -

    float_next

    nextafter

    Finding the Next Representable Value in a Specific Direction (nextafter)
    -
    - - -

    nextafter

    nexttoward

    -
    Finding the Next Smaller Representable Value (float_prior)
    -
    - - -

    float_prior

    nextafter

    -
    find_beta
    -

    Beta Distribution

    -
    find_degrees_of_freedom
    -
    - - - -

    Chi Squared Distribution

    Noncentral Chi-Squared Distribution

    Students t Distribution

    -
    find_location
    -

    Distribution Algorithms

    -
    find_lower_bound_on_p
    -
    - - - -

    Binomial Distribution

    Geometric Distribution

    Negative Binomial Distribution

    -
    find_non_centrality
    -

    Noncentral Chi-Squared Distribution

    -
    find_scale
    -

    Distribution Algorithms

    -
    find_upper_bound_on_p
    -
    - - - -

    Binomial Distribution

    Geometric Distribution

    Negative Binomial Distribution

    +

    nextafter

    fisher_f
    @@ -1565,21 +1258,17 @@

    F Distribution

    F Distribution

    Floating-Point Classification: Infinities and NaNs
    + + + +

    fpclassify

    FP_INFINITE

    FP_NAN

    FP_NORMAL

    FP_SUBNORMAL

    FP_ZERO

    isfinite

    isinf

    isnan

    isnormal

    -
    float_advance
    -

    Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance

    -
    float_distance
    -

    Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance

    -
    float_next
    -

    Finding the Next Greater Representable Value (float_next)

    -
    float_prior
    -

    Finding the Next Smaller Representable Value (float_prior)

    float_t
    @@ -1637,6 +1326,8 @@

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    +
    fpclassify
    +

    Floating-Point Classification: Infinities and NaNs

    FP_INFINITE

    Floating-Point Classification: Infinities and NaNs

    FP_NAN
    @@ -1647,18 +1338,17 @@

    Floating-Point Classification: Infinities and NaNs

    FP_ZERO

    Floating-Point Classification: Infinities and NaNs

    +
    Frequently Asked Questions FAQ
    +

    accuracy

    -G +G
    Gamma
    - - -

    expm1

    Lanczos approximation

    lgamma

    tgamma

    tgamma1pm1

    gamma
    @@ -1675,58 +1365,28 @@
    gamma_distribution

    Gamma (and Erlang) Distribution

    -
    gamma_p
    -

    Incomplete Gamma Functions

    -
    gamma_p_derivative
    -

    Derivative of the Incomplete Gamma Function

    -
    gamma_p_inv
    -

    Incomplete Gamma Function Inverses

    -
    gamma_p_inva
    -

    Incomplete Gamma Function Inverses

    -
    gamma_q
    -

    Incomplete Gamma Functions

    -
    gamma_q_inv
    -

    Incomplete Gamma Function Inverses

    -
    gamma_q_inva
    -

    Incomplete Gamma Function Inverses

    -
    Generic operations common to all distributions are non-member functions
    -

    round

    geometric

    Geometric Distribution

    Geometric Distribution
    - - -

    find_lower_bound_on_p

    find_upper_bound_on_p

    geometric

    geometric_distribution

    log1p

    policy_type

    value_type

    geometric_distribution

    Geometric Distribution

    -
    Getting the Best Performance from this Library
    -

    erf

    -
    get_user_parameter_info
    -

    Graphing, Profiling, and Generating Test Data for Special Functions

    Graphing, Profiling, and Generating Test Data for Special Functions
    - - -

    beta

    get_user_parameter_info

    lgamma

    test_data

    upper_incomplete_gamma_fract

    value_type

    -H +H
    -I +I
    -
    ibeta
    -

    Incomplete Beta Functions

    -
    ibetac
    -

    Incomplete Beta Functions

    -
    ibetac_inv
    -

    The Incomplete Beta Function Inverses

    -
    ibetac_inva
    -

    The Incomplete Beta Function Inverses

    -
    ibetac_invb
    -

    The Incomplete Beta Function Inverses

    -
    ibeta_derivative
    -

    Derivative of the Incomplete Beta Function

    -
    ibeta_inv
    -

    The Incomplete Beta Function Inverses

    -
    ibeta_inva
    -

    The Incomplete Beta Function Inverses

    -
    ibeta_invb
    -

    The Incomplete Beta Function Inverses

    ilogb
    @@ -1852,54 +1481,24 @@

    C99 and C++ TR1 C-style Functions

    Implementation Notes
    - + - -

    beta

    accuracy

    BOOST_DEFINE_MATH_CONSTANT

    BOOST_MATH_DOMAIN_ERROR_POLICY

    round

    scale

    triangular_distribution

    Incomplete Beta Function Inverses
    -
    - - - - - - - - -

    beta

    ibetac_inv

    ibetac_inva

    ibetac_invb

    ibeta_inv

    ibeta_inva

    ibeta_invb

    round

    +

    beta

    Incomplete Beta Functions
    -
    - - - - -

    beta

    betac

    ibeta

    ibetac

    -
    Incomplete Gamma Function Inverses
    -
    - - - - - -

    gamma_p_inv

    gamma_p_inva

    gamma_q_inv

    gamma_q_inva

    round

    +

    beta

    Incomplete Gamma Functions
    - - - -

    erfc

    gamma_p

    gamma_q

    Lanczos approximation

    tgamma

    tgamma_lower

    indeterminate_result_error_type

    Policy Class Reference

    -
    Internal Floating-point Promotion Policies
    -

    tgamma

    Introduction
    -

    nan

    +

    nan

    Inverse Chi Squared Distribution
    @@ -1931,38 +1530,29 @@

    inverse_chi_squared

    Inverse Gaussian (or Inverse Normal) Distribution

    inverse_gaussian_distribution

    Inverse Gaussian (or Inverse Normal) Distribution

    -
    iround
    -

    Rounding Functions

    +
    isfinite
    +

    Floating-Point Classification: Infinities and NaNs

    +
    isinf
    +

    Floating-Point Classification: Infinities and NaNs

    isnan

    Floating-Point Classification: Infinities and NaNs

    +
    isnormal
    +

    Floating-Point Classification: Infinities and NaNs

    Iteration Limits Policies

    BOOST_MATH_MAX_ROOT_ITERATION_POLICY

    BOOST_MATH_MAX_SERIES_ITERATION_POLICY

    -
    itrunc
    -

    Truncation Functions

    -K +K
    -
    kahan_sum_series
    -

    Series Evaluation

    Known Issues, and TODO List
    -
    - - - - -

    ellint_3

    Lanczos approximation

    log1p

    tgamma

    -
    kurtosis
    -

    Non-Member Properties

    -
    kurtosis_excess
    -

    Non-Member Properties

    +

    Lanczos approximation

    -L +L
    laguerre
    @@ -1973,10 +1563,7 @@

    TR1 C Functions Quick Reference

    Laguerre (and Associated) Polynomials
    -
    - - -

    laguerre

    laguerre_next

    +

    laguerre

    laguerref
    @@ -1989,8 +1576,6 @@

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    laguerre_next
    -

    Laguerre (and Associated) Polynomials

    Lanczos approximation
    @@ -2002,7 +1587,6 @@ - @@ -2026,17 +1610,8 @@

    Beta

    Incomplete Gamma Functions

    Known Issues, and TODO List

    Lanczos approximation

    lgamma

    Log Gamma

    Negative Binomial Distribution

    Performance Tuning Macros

    -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Legendre (and Associated) Polynomials

    TR1 C Functions Quick Reference

    -
    Legendre (and Associated) Polynomials
    -
    - - - - - -

    assoc_legendre

    legendre

    legendre_next

    legendre_p

    legendre_q

    legendref
    @@ -2049,28 +1624,13 @@

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    legendre_next
    -

    Legendre (and Associated) Polynomials

    -
    legendre_p
    -

    Legendre (and Associated) Polynomials

    -
    legendre_q
    -

    Legendre (and Associated) Polynomials

    lgamma
    - - - - - - - - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Comparisons to Other Open Source Libraries

    Directory and File Structure

    Gamma

    Graphing, Profiling, and Generating Test Data for Special Functions

    History and What's New

    Hypergeometric Distribution

    Log Gamma

    Negative Binomial Distribution

    Relative Error and Testing

    Setting Polices at Namespace Scope

    The Lanczos Approximation

    lgammaf
    @@ -2104,7 +1664,6 @@ -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Conceptual Requirements for Real Number Types

    Rounding Functions

    llroundf
    @@ -2119,13 +1678,10 @@

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    lltrunc
    -

    Truncation Functions

    Log Gamma
    -

    Lanczos approximation

    lgamma

    log1p

    tgamma

    Log Normal Distribution
    @@ -2137,21 +1693,13 @@
    log1p
    + - - - - - - - - -

    accuracy

    BOOST_HAS_LOG1P

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Comparisons to Other Open Source Libraries

    Exponential Distribution

    Extreme Value Distribution

    Geometric Distribution

    Known Issues, and TODO List

    Log Gamma

    log1p

    Rayleigh Distribution

    Series Evaluation

    sqrt1pm1

    Weibull Distribution

    log1pf
    @@ -2233,7 +1781,6 @@ -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Conceptual Requirements for Real Number Types

    Rounding Functions

    lroundf
    @@ -2248,37 +1795,23 @@

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    ltrunc
    -

    Truncation Functions

    -M +M
    -
    make_policy
    -

    Policy Class Reference

    Mathematically Undefined Function Policies

    BOOST_MATH_ASSERT_UNDEFINED_POLICY

    max_factorial

    Factorial

    -
    mean
    -

    Non-Member Properties

    -
    median
    -

    Non-Member Properties

    -
    mode
    -

    Non-Member Properties

    Modified Bessel Functions of the First and Second Kinds
    - -

    cyl_bessel_i

    cyl_bessel_j

    cyl_bessel_k

    cyl_neumann

    -
    msg
    -

    Calling User Defined Error Handlers

    -N +N
    Namespaces
    @@ -2287,7 +1820,7 @@
    - +

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Introduction

    Introduction

    Reference

    nanf
    @@ -2317,11 +1850,7 @@
    Negative Binomial Distribution
    - - - - @@ -2334,16 +1863,12 @@

    beta

    find_lower_bound_on_p

    find_upper_bound_on_p

    Lanczos approximation

    lgamma

    negative_binomial

    negative_binomial_distribution

    policy_type

    negative_binomial_distribution

    Negative Binomial Distribution

    -
    newton_raphson_iterate
    -

    Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder

    nextafter
    - -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Finding the Next Greater Representable Value (float_next)

    Finding the Next Representable Value in a Specific Direction (nextafter)

    Finding the Next Smaller Representable Value (float_prior)

    nextafterf
    @@ -2362,7 +1887,6 @@ -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Finding the Next Representable Value in a Specific Direction (nextafter)

    nexttowardf
    @@ -2376,22 +1900,6 @@

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    Non-Member Properties
    -
    - - - - - - - - - - - - - -

    cdf

    chf

    hazard

    kurtosis

    kurtosis_excess

    mean

    median

    mode

    pdf

    quantile

    skewness

    standard_deviation

    variance

    Noncentral Beta Distribution
    @@ -2402,9 +1910,6 @@

    beta

    Noncentral Chi-Squared Distribution
    - - - @@ -2412,7 +1917,6 @@

    cyl_bessel_i

    find_degrees_of_freedom

    find_non_centrality

    non_central_chi_squared

    non_central_chi_squared_distribution

    policy_type

    Noncentral F Distribution
    - @@ -2420,7 +1924,6 @@

    beta

    non_central_f

    non_central_f_distribution

    policy_type

    Noncentral T Distribution
    - @@ -2446,8 +1949,6 @@

    beta

    non_central_t

    non_central_t_distribution

    policy_type

    Noncentral T Distribution

    non_central_t_distribution

    Noncentral T Distribution

    -
    norm
    -

    Setting Policies at Namespace or Translation Unit Scope

    normal
    @@ -2466,33 +1967,28 @@

    Geometric Distribution Examples

    Policy Class Reference

    normal_distribution

    Normal (Gaussian) Distribution

    -
    Numeric Constants
    -

    e

    -O +O
    overflow_error_type

    Policy Class Reference

    -P +P
    -
    Polynomial and Rational Function Evaluation
    -
    - - - - - -

    evaluate_even_polynomial

    evaluate_odd_polynomial

    evaluate_polynomial

    evaluate_rational

    T

    Polynomials

    value_type

    -
    powm1
    -
    - - -

    expm1

    powm1

    -
    Precision Policies
    -

    tgamma

    precision_type

    Policy Class Reference

    promote_args
    @@ -2594,28 +2073,13 @@

    Policy Class Reference

    -Q +R
    -
    quantile
    -

    Non-Member Properties

    -
    -
    -R -
    -
    -
    Ratios of Gamma Functions
    -
    - - - -

    beta

    tgamma_delta_ratio

    tgamma_ratio

    rayleigh

    Rayleigh Distribution

    Rayleigh Distribution
    - - @@ -2627,19 +2091,10 @@

    expm1

    log1p

    policy_type

    rayleigh

    rayleigh_distribution

    nan

    References

    Lanczos approximation

    -
    Relative Error and Testing
    -
    - - - -

    lgamma

    relative_error

    tgamma

    -
    relative_error
    -

    Relative Error and Testing

    remainder
    -

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    The Remez Method

    remainderf
    @@ -2651,12 +2106,6 @@

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    Remez Method
    -
    - - - -

    erfc

    remainder

    round

    remquo
    @@ -2672,10 +2121,6 @@

    C99 and C++ TR1 C-style Functions

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    Representation Distance Between Two Floating Point Values (ULP) float_distance
    -

    float_distance

    -
    Riemann Zeta Function
    -

    zeta

    riemann_zeta
    @@ -2709,50 +2154,22 @@

    C99 and C++ TR1 C-style Functions

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    -
    Rising Factorial
    -

    rising_factorial

    -
    rising_factorial
    -

    Rising Factorial

    Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder
    -
    - - - - - -

    cbrt

    halley_iterate

    newton_raphson_iterate

    schroeder_iterate

    z

    +

    cbrt

    Root Finding Without Derivatives: Bisection, Bracket and TOMS748
    -

    eps_tolerance

    equal_ceil

    equal_floor

    equal_nearest_integer

    round

    round
    - - - - - - - - - - - - - - - - -

    Additional Implementation Notes

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    Conceptual Requirements for Real Number Types

    Discrete Quantile Policies

    Error Function Inverses

    Error Functions

    Error Handling

    Error Handling Policies

    Examples

    Find Scale (Standard Deviation) Example

    Generic operations common to all distributions are non-member functions

    Geometric Distribution Examples

    Incomplete Gamma Function Inverses

    Root Finding Without Derivatives: Bisection, Bracket and TOMS748

    Rounding Functions

    The Incomplete Beta Function Inverses

    The Remez Method

    Truncation Functions

    Understanding Quantiles of Discrete Distributions

    Using Macros to Change the Policy Defaults

    roundf
    @@ -2762,7 +2179,6 @@
    Rounding Functions
    - @@ -2777,7 +2193,7 @@

    iround

    llround

    lround

    round

    -S +S
    -
    scale
    -

    Additional Implementation Notes

    -
    schroeder_iterate
    -

    Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder

    Series Evaluation
    - -

    kahan_sum_series

    log1p

    log1p_series

    sum_series

    Setting Polices at Namespace Scope
    @@ -2835,43 +2245,32 @@ -

    BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS

    cauchy

    gamma

    norm

    normal

    promote_args

    tgamma

    Setting Policies for Distributions on an Ad Hoc Basis

    fisher_f

    +
    sign
    +

    Sign Manipulation Functions

    Sign Manipulation Functions
    -

    copysign

    -
    sinc_pi
    -

    sinc_pi

    -
    sinhc_pi
    -

    sinhc_pi

    -
    skewness
    -

    Non-Member Properties

    +
    + + + + +

    changesign

    copysign

    sign

    signbit

    +
    signbit
    +

    Sign Manipulation Functions

    Spherical Bessel Functions of the First and Second Kinds
    - -

    cyl_bessel_j

    cyl_neumann

    sph_bessel

    sph_neumann

    -
    Spherical Harmonics
    -
    - - -

    spherical_harmonic_i

    spherical_harmonic_r

    -
    spherical_harmonic_i
    -

    Spherical Harmonics

    -
    spherical_harmonic_r
    -

    Spherical Harmonics

    sph_bessel
    - -

    Bessel Function Overview

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Calculation of the Type of the Result

    Spherical Bessel Functions of the First and Second Kinds

    TR1 C Functions Quick Reference

    @@ -2907,7 +2306,6 @@
    sph_neumann
    - @@ -2925,18 +2323,8 @@

    Bessel Function Overview

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    Spherical Bessel Functions of the First and Second Kinds

    C99 and TR1 C Functions Overview

    TR1 C Functions Quick Reference

    -
    sqrt1pm1
    -
    - - - -

    expm1

    log1p

    sqrt1pm1

    -
    standard_deviation
    -

    Non-Member Properties

    Students t Distribution
    - - @@ -2949,15 +2337,11 @@

    beta

    find_degrees_of_freedom

    policy_type

    students_t

    students_t_distribution

    students_t_distribution

    Students t Distribution

    -
    sum_series
    -

    Series Evaluation

    -T +T
    -
    tgamma1pm1
    -

    Gamma

    tgammaf
    @@ -2997,12 +2369,6 @@

    C99 and C++ TR1 C-style Functions

    C99 and TR1 C Functions Overview

    C99 C Functions

    -
    tgamma_delta_ratio
    -

    Ratios of Gamma Functions

    -
    tgamma_lower
    -

    Incomplete Gamma Functions

    -
    tgamma_ratio
    -

    Ratios of Gamma Functions

    TR1 C Functions Quick Reference
    @@ -3017,12 +2383,9 @@ - - - - - - + + + @@ -3076,7 +2439,6 @@

    assoc_laguerre

    comp_ellint_1

    comp_ellint_1f

    comp_ellint_1l

    comp_ellint_2

    comp_ellint_2f

    comp_ellint_2l

    comp_ellint_3

    comp_ellint_3f

    comp_ellint_3l

    conf_hyperg

    conf_hypergf

    conf_hypergl

    cyl_bessel_i

    cyl_bessel_if

    cyl_bessel_il

    Triangular Distribution

    Triangular Distribution
    - @@ -3093,18 +2455,10 @@ - -

    beta

    policy_type

    triangular

    triangular_distribution

    C99 and TR1 C Functions Overview

    C99 C Functions

    Conceptual Requirements for Real Number Types

    Error Handling

    Error Handling Policies

    Truncation Functions

    Truncation Functions
    -
    - - - - - -

    itrunc

    lltrunc

    ltrunc

    round

    trunc

    +

    trunc

    truncf
    @@ -3119,13 +2473,11 @@

    C99 and C++ TR1 C-style Functions

    -U +U
    underflow_error_type

    Policy Class Reference

    -
    Understanding Quantiles of Discrete Distributions
    -

    round

    uniform

    Uniform Distribution

    Uniform Distribution
    @@ -3138,47 +2490,6 @@

    Uniform Distribution

    upper_incomplete_gamma_fract

    Graphing, Profiling, and Generating Test Data for Special Functions

    -
    user_denorm_error
    -
    - - -

    Calling User Defined Error Handlers

    Error Handling Policies

    -
    user_domain_error
    -
    - - -

    Calling User Defined Error Handlers

    Error Handling Policies

    -
    user_evaluation_error
    -
    - - -

    Calling User Defined Error Handlers

    Error Handling Policies

    -
    user_indeterminate_result_error
    -
    - - -

    Calling User Defined Error Handlers

    Error Handling Policies

    -
    user_overflow_error
    -
    - - - -

    Calling User Defined Error Handlers

    Compile Time Power of a Runtime Base

    Error Handling Policies

    -
    user_pole_error
    -
    - - -

    Calling User Defined Error Handlers

    Error Handling Policies

    -
    user_rounding_error
    -
    - - -

    Calling User Defined Error Handlers

    Error Handling Policies

    -
    user_underflow_error
    -
    - - -

    Calling User Defined Error Handlers

    Error Handling Policies

    Using Macros to Change the Policy Defaults
    @@ -3196,18 +2507,14 @@ -

    BOOST_MATH_ASSERT_UNDEFINED_POLICY

    BOOST_MATH_PROMOTE_FLOAT_POLICY

    BOOST_MATH_ROUNDING_ERROR_POLICY

    BOOST_MATH_UNDERFLOW_ERROR_POLICY

    round

    Using With MPFR / GMP - a High-Precision Floating-Point Library
    -
    - - -

    Lanczos approximation

    tgamma

    +

    Lanczos approximation

    Using With NTL - a High-Precision Floating-Point Library

    Lanczos approximation

    -V +V
    value_type
    @@ -3245,20 +2552,15 @@

    Uniform Distribution

    Weibull Distribution

    -
    variance
    -

    Non-Member Properties

    -W +W
    weibull

    Weibull Distribution

    Weibull Distribution
    - - - @@ -3267,15 +2569,6 @@
    weibull_distribution

    beta

    expm1

    log1p

    policy_type

    value_type

    weibull

    Weibull Distribution

    -
    -Z -
    -
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html index db15e5bd4..9503ca873 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html @@ -33,7 +33,7 @@ and reflect more the general implementation philosophy used.

    - + Implemention philosophy
    @@ -85,7 +85,7 @@ These could still provide sufficient accuracy for some speed-critical applications.

    - + Accuracy and Representation of Test Values
    @@ -130,7 +130,7 @@ binary value).

    - + Tolerance of Tests
    @@ -156,7 +156,7 @@ first that the suffix L is present, and then that the tolerance is big enough.

    - + Handling Unsuitable Arguments
    @@ -224,7 +224,7 @@

    - + Handling of Functions that are Not Mathematically defined
    @@ -258,7 +258,7 @@

    - + Median of distributions
    @@ -293,7 +293,7 @@ Basic Statistics. give more detail, in particular for discrete distributions.

    - + Handling of Floating-Point Infinity
    @@ -337,7 +337,7 @@ handling policies.

    - + Scale, Shape and Location
    @@ -364,7 +364,7 @@ functions, they can be added if required.

    - + Notes on Implementation of Specific Functions & Distributions
    @@ -376,7 +376,7 @@ lower = -1, mode = 0 and upper = 1 would be more suitable.
    - + Rational Approximations Used
    @@ -419,7 +419,7 @@ to the "true" minimax solution.

    - + Representation of Mathematical Constants
    @@ -480,7 +480,7 @@ double p = boost::math::constants::pi(); // Context does not allow for disambiguation of overloaded function
    - + Thread safety
    @@ -505,7 +505,7 @@ the right thing here at some point.

    - + Sources of Test Data
    @@ -546,7 +546,7 @@ the underlying special function is known to be difficult to implement.

    - + Creating and Managing the Equations
    @@ -731,7 +731,7 @@ done HTML: this needs further investigation.

    - + Producing Graphs
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html index 0a16ef39d..d29f2e20b 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html @@ -27,7 +27,7 @@ The Lanczos Approximation
    - + Motivation

    @@ -99,7 +99,7 @@ functions divided by large powers into single (simpler) expressions.

    - + The Approximation
    @@ -161,7 +161,7 @@

    - + Computing the Coefficients
    @@ -205,7 +205,7 @@ multiplied by F as the last step.

    - + Choosing the Right Parameters
    @@ -535,7 +535,7 @@ is exact, and so isn't used for the gamma function.

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html index 2c1fcc4bc..b74723671 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html @@ -27,7 +27,7 @@ References
    - + General references
    @@ -98,7 +98,7 @@ Library (version 2), Walter E. Brown

    - + Calculators

    @@ -120,7 +120,7 @@ Binomial Probability Distribution Calculator.

    - + Other Libraries

    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html index eb5367141..e2e2caaf7 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html @@ -78,7 +78,7 @@ of binary digits. You have been warned!

    - + The Impossibility of Zero Error
    diff --git a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html index 102c6357a..50b38fb3a 100644 --- a/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html +++ b/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html @@ -94,7 +94,7 @@ are located!

    - + The Remez Method
    @@ -174,7 +174,7 @@
    - + Remez Step 1
    @@ -205,7 +205,7 @@ to 5.6x10-4.

    - + Remez Step 2
    @@ -234,7 +234,7 @@ In our example we perform multi-point exchange.

    - + Iteration

    @@ -250,7 +250,7 @@ remez-4

    - + Rational Approximations
    @@ -299,7 +299,7 @@ number of terms overall.

    - + Practical Considerations
    @@ -407,7 +407,7 @@ desired minimax solution (5x10-4).

    - + Remez Method Checklist
    @@ -461,7 +461,7 @@
    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html index cf6b73dd5..f1b07b2fc 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html @@ -28,7 +28,7 @@ Algorithms

    - + Finding the Location and Scale for Normal and similar distributions
    @@ -50,7 +50,7 @@ using boost::math::complement; // Will be needed by users who want to use complements.
    - + find_location function
    @@ -80,7 +80,7 @@ }} // namespaces
    - + find_scale function
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html index 953c8d49c..15ac17e7d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html @@ -87,7 +87,7 @@

    - + Member Functions
    @@ -103,7 +103,7 @@ Returns the success_fraction parameter of this distribution.

    - + Non-member Accessors
    @@ -128,7 +128,7 @@ exception and make an error message available.

    - + Accuracy

    @@ -136,7 +136,7 @@ and so should have errors within an epsilon or two.

    - + Implementation

    @@ -327,7 +327,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html index 24a500deb..3485abed7 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html @@ -132,12 +132,12 @@ whose apex is away from the centre (where x = half).

      - + Member Functions
      - + Constructor
      beta_distribution(RealType alpha, RealType beta);
      @@ -164,7 +164,7 @@
                   yellow in the graph above).
                 

      - + Parameter Accessors
      @@ -188,7 +188,7 @@ assert(mybeta.beta() == 5.); // mybeta.beta() returns 5
      - + Parameter Estimators
      @@ -241,7 +241,7 @@ Returns the value of β   that gives: cdf(beta_distribution<RealType>(alpha, beta), x) == probability.

      - + Non-member Accessor Functions
      @@ -263,7 +263,7 @@ Mathworld.

      - + Applications

      @@ -276,7 +276,7 @@ statistical inference.

      - + Related distributions
      @@ -303,7 +303,7 @@ Distribution with its p parameter set to x.

      - + Accuracy

      @@ -315,7 +315,7 @@ please refer to these functions for information on accuracy.

      - + Implementation

      @@ -594,7 +594,7 @@

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html index 0a02a317e..1973c364c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html @@ -161,12 +161,12 @@

    - + Member Functions
    - + Construct
    binomial_distribution(RealType n, RealType p);
    @@ -183,7 +183,7 @@
                 otherwise calls domain_error.
               

    - + Accessors
    RealType success_fraction() const;
    @@ -199,7 +199,7 @@
                 was constructed.
               

    - + Lower Bound on the Success Fraction
    @@ -305,7 +305,7 @@ limits illustrated in the case of the binomial. Biometrika 26 404-413.

    - + Upper Bound on the Success Fraction
    @@ -383,7 +383,7 @@
    - + Estimating the Number of Trials Required for a Certain Number of Successes
    @@ -425,7 +425,7 @@ of seeing 10 events that occur with frequency one half.

    - + Estimating the Maximum Number of Trials to Ensure no more than a Certain Number of Successes @@ -473,7 +473,7 @@ Worked Example.

    - + Non-member Accessors
    @@ -622,7 +622,7 @@
    - + Examples

    @@ -630,7 +630,7 @@ examples are available illustrating the use of the binomial distribution.

    - + Accuracy

    @@ -640,7 +640,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    @@ -884,7 +884,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html index e12d26566..010654627 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -114,7 +114,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -148,7 +148,7 @@ The domain of the random variable is [-[max_value], +[min_value]].

      - + Accuracy

      @@ -157,7 +157,7 @@ have very low error rates.

      - + Implementation

      @@ -273,7 +273,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html index a3027e0ae..25e1a6c27 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html @@ -87,7 +87,7 @@ independent, normally distributed random

      - + Member Functions
      @@ -170,7 +170,7 @@ independent, normally distributed random NIST Engineering Statistics Handbook, Section 7.2.3.2.

      - + Non-member Accessors
      @@ -196,7 +196,7 @@ independent, normally distributed random The domain of the random variable is [0, +∞].

      - + Examples

      @@ -204,7 +204,7 @@ independent, normally distributed random are available illustrating the use of the Chi Squared Distribution.

      - + Accuracy

      @@ -212,7 +212,7 @@ independent, normally distributed random gamma functions: please refer to the accuracy data for those functions.

      - + Implementation

      @@ -379,7 +379,7 @@ independent, normally distributed random

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html index c7cf8fdd8..085abbf90 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html @@ -71,7 +71,7 @@

      - + Member Functions
      @@ -91,7 +91,7 @@ Accessor function returns the lambda parameter of the distribution.

      - + Non-member Accessors
      @@ -111,7 +111,7 @@ The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -122,7 +122,7 @@ should have very low error rates.

      - + Implementation

      @@ -283,7 +283,7 @@

    - + references
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html index 5cdb47367..4612ad54c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html @@ -100,7 +100,7 @@

      - + Member Functions
      @@ -125,7 +125,7 @@ Returns the scale parameter of the distribution.

      - + Non-member Accessors
      @@ -145,7 +145,7 @@ The domain of the random parameter is [-∞, +∞].

      - + Accuracy

      @@ -154,7 +154,7 @@ very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html index 92ccb64bd..17de4917e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html @@ -80,7 +80,7 @@

      - + Member Functions
      @@ -106,7 +106,7 @@ Returns the denominator degrees of freedom parameter of the distribution.

      - + Non-member Accessors
      @@ -126,7 +126,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -134,7 +134,7 @@ are available illustrating the use of the F Distribution.

      - + Accuracy

      @@ -143,7 +143,7 @@ refer to those functions for accuracy data.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html index 8c6315a17..559e95cbc 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html @@ -137,7 +137,7 @@ than a dedicated Erlang Distribution.

      - + Member Functions
      @@ -162,7 +162,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -182,7 +182,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -194,7 +194,7 @@ refer to the accuracy data for those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html index 4bc0d98f8..89fff8778 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html @@ -146,7 +146,7 @@

      - + Related Distributions
      @@ -206,12 +206,12 @@
    - + Member Functions
    - + Constructor
    geometric_distribution(RealType p);
    @@ -226,7 +226,7 @@
                 1.
               

    - + Accessors
    RealType success_fraction() const; // successes / trials (0 <= p <= 1)
    @@ -253,7 +253,7 @@
                 Binomial Distribution for more discussion.
               

    - + Lower Bound on success_fraction Parameter p
    @@ -308,7 +308,7 @@ vol. 48, no3, 605-621.

    - + Upper Bound on success_fraction Parameter p
    @@ -363,7 +363,7 @@ vol. 48, no3, 605-621.

    - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
    @@ -415,7 +415,7 @@ probability of observing k failures or fewer.

    - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
    @@ -463,7 +463,7 @@ probability of observing more than k failures.

    - + Non-member Accessors
    @@ -611,7 +611,7 @@
    - + Accuracy

    @@ -622,7 +622,7 @@ for example to 10 decimal digits (from 16).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html index 226b1dd77..0a586f7ab 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html @@ -102,7 +102,7 @@

    - + Member Functions
    @@ -131,7 +131,7 @@ from the population N.

    - + Non-member Accessors
    @@ -185,7 +185,7 @@
    - + Accuracy

    @@ -211,7 +211,7 @@ meaningless for N >= 1015.

    - + Testing

    @@ -223,7 +223,7 @@ this implementation and NTL::RR.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html index 70da8251f..dd15e5f6a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html @@ -198,7 +198,7 @@

    - + Member Functions
    @@ -225,7 +225,7 @@ Returns the scale ξ parameter of this distribution.

    - + Non-member Accessors
    @@ -255,7 +255,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ iteration is involved, as for the estimation of degrees of freedom.

    - + Implementation

    @@ -452,7 +452,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html index a745dd2d2..abaa38cf1 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html @@ -130,7 +130,7 @@

      - + Member Functions
      @@ -154,7 +154,7 @@ Returns the β scale parameter of this inverse gamma distribution.

      - + Non-member Accessors
      @@ -184,7 +184,7 @@

    - + Accuracy

    @@ -198,7 +198,7 @@ >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html index 64e1ce4ec..e8fcb2c8c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html @@ -146,7 +146,7 @@ the __wald_distrib (where mean μ is unity) is also provided.

    - + Member Functions
    @@ -171,7 +171,7 @@ Returns the scale λ parameter of this distribution.

    - + Non-member Accessors
    @@ -201,7 +201,7 @@

    - + Accuracy

    @@ -212,7 +212,7 @@ to a few epsilon, >14 decimal digits accuracy for 64-bit double.

    - + Implementation

    @@ -390,7 +390,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html index 41f2febef..c064fba5e 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html @@ -81,7 +81,7 @@

      - + Member Functions
      @@ -113,7 +113,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -133,7 +133,7 @@ The domain of the random variable is [-∞,+∞].

      - + Accuracy

      @@ -141,7 +141,7 @@ log and exp functions and as such should have very small errors.

      - + Implementation

      @@ -329,7 +329,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html index 820799801..e5f34f7b0 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html @@ -72,7 +72,7 @@

      - + Member Functions
      @@ -98,7 +98,7 @@ Returns the scale of this distribution.

      - + Non-member Accessors
      @@ -128,7 +128,7 @@ as special cases if RealType and +overflow_error respectively.

      - + Accuracy

      @@ -140,7 +140,7 @@ as special cases if RealType error can be guarenteed.

      - + Implementation
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html index 36f86fb4b..c29a89d40 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html @@ -88,7 +88,7 @@

      - + Member Functions
      @@ -121,7 +121,7 @@ Returns the scale parameter of this distribution.

      - + Non-member Accessors
      @@ -141,7 +141,7 @@ The domain of the random variable is [0,+∞].

      - + Accuracy

      @@ -150,7 +150,7 @@ function, and as such should have very low error rates.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html index a939c8900..7fd4c5e6c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html @@ -96,7 +96,7 @@ is a central χ2 random variable with

      - + Member Functions
      @@ -128,7 +128,7 @@ is a central χ2 random variable with was constructed.

      - + Non-member Accessors
      @@ -156,7 +156,7 @@ is a central χ2 random variable with The domain of the random variable is [0, 1].

      - + Accuracy

      @@ -299,7 +299,7 @@ is a central χ2 random variable with functions are broadly similar.

      - + Tests

      @@ -311,7 +311,7 @@ is a central χ2 random variable with tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html index a47f997c2..dbc6a232a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html @@ -110,7 +110,7 @@

      - + Member Functions
      @@ -183,7 +183,7 @@ == q.

      - + Non-member Accessors
      @@ -203,7 +203,7 @@ The domain of the random variable is [0, +∞].

      - + Examples

      @@ -211,7 +211,7 @@ example for the noncentral chi-squared distribution.

      - + Accuracy

      @@ -359,7 +359,7 @@ produce an accuracy greater than the square root of the machine epsilon.

      - + Tests

      @@ -373,7 +373,7 @@ to at least 50 decimal digits - and is the used for our accuracy tests.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html index 5a979eda5..681c6faa0 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html @@ -95,7 +95,7 @@ random variable with v1

      - + Member Functions
      @@ -127,7 +127,7 @@ random variable with v1 which this object was constructed.

      - + Non-member Accessors
      @@ -147,7 +147,7 @@ random variable with v1 The domain of the random variable is [0, +∞].

      - + Accuracy

      @@ -155,7 +155,7 @@ random variable with v1 Beta Distribution: refer to that distribution for accuracy data.

      - + Tests

      @@ -164,7 +164,7 @@ random variable with v1 Math library statistical package and its pbeta and dbeta functions.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html index bc56589f1..11a801743 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html @@ -85,7 +85,7 @@

      - + Member Functions
      @@ -111,7 +111,7 @@ which this object was constructed.

      - + Non-member Accessors
      @@ -131,7 +131,7 @@ The domain of the random variable is [-∞, +∞].

      - + Accuracy

      @@ -255,7 +255,7 @@ epsilon.

      - + Tests

      @@ -270,7 +270,7 @@ least 50 decimal places.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html index fb2370eed..446ac4291 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html @@ -123,7 +123,7 @@

      - + Related Distributions
      @@ -195,12 +195,12 @@
      - + Member Functions
      - + Construct
      negative_binomial_distribution(RealType r, RealType p);
      @@ -216,7 +216,7 @@
                   <= 1.
                 

      - + Accessors
      RealType success_fraction() const; // successes / trials (0 <= p <= 1)
      @@ -237,7 +237,7 @@
                   Distribution for more discussion.
                 

      - + Lower Bound on Parameter p
      @@ -298,7 +298,7 @@ vol. 48, no3, 605-621.

      - + Upper Bound on Parameter p
      @@ -358,7 +358,7 @@ vol. 48, no3, 605-621.

      - + Estimating Number of Trials to Ensure at Least a Certain Number of Failures
      @@ -409,7 +409,7 @@ probability of observing k failures or fewer.

      - + Estimating Number of Trials to Ensure a Maximum Number of Failures or Less
      @@ -457,7 +457,7 @@ probability of observing more than k failures.

      - + Non-member Accessors
      @@ -606,7 +606,7 @@

    - + Accuracy

    @@ -616,7 +616,7 @@ please refer to these functions for information on accuracy.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html index d4caadebc..9dd7fbd9d 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html @@ -79,7 +79,7 @@

    - + Member Functions
    @@ -109,7 +109,7 @@ be used generically).

    - + Non-member Accessors
    @@ -131,7 +131,7 @@ and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.

    - + Accuracy

    @@ -139,7 +139,7 @@ function, and as such should have very low error rates.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html index bb75148de..b45d1e139 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html @@ -86,12 +86,12 @@

    - + Related distributions
    - + Member Functions
    @@ -117,7 +117,7 @@ Returns the shape parameter of this distribution.

    - + Non-member Accessors
    @@ -137,7 +137,7 @@ The supported domain of the random variable is [scale, ∞].

    - + Accuracy

    @@ -150,7 +150,7 @@ zero) see also why complements?.

    - + Implementation

    @@ -318,7 +318,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html index 14a975538..85c6bfeef 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html @@ -116,7 +116,7 @@
    - + Member Functions
    @@ -131,7 +131,7 @@ Returns the mean of this distribution.

    - + Non-member Accessors
    @@ -151,7 +151,7 @@ The domain of the random variable is [0, ∞].

    - + Accuracy

    @@ -165,7 +165,7 @@ using an iterative method with a lower tolerance to avoid excessive computation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html index 18a847639..7a2633c7f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html @@ -86,7 +86,7 @@

    - + Related distributions
    @@ -102,7 +102,7 @@ distribution.

    - + Member Functions
    @@ -121,7 +121,7 @@ Returns the sigma parameter of this distribution.

    - + Non-member Accessors
    @@ -141,7 +141,7 @@ The domain of the random variable is [0, max_value].

    - + Accuracy

    @@ -151,7 +151,7 @@ using NTL RR type with 150-bit accuracy, about 50 decimal digits.

    - + Implementation

    @@ -320,7 +320,7 @@

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html index e92b51768..f8ed15f76 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html @@ -97,7 +97,7 @@

      - + Member Functions
      @@ -174,7 +174,7 @@ Engineering Statistics Handbook.

      - + Non-member Accessors
      @@ -194,7 +194,7 @@ The domain of the random variable is [-∞, +∞].

      - + Examples

      @@ -202,7 +202,7 @@ are available illustrating the use of the Student's t distribution.

      - + Accuracy

      @@ -211,7 +211,7 @@ inverses, refer to accuracy data on those functions for more information.

      - + Implementation

      diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html index d25c289f2..3a5386d1f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html @@ -128,7 +128,7 @@

      - + Member Functions
      @@ -163,7 +163,7 @@ (default+1).

      - + Non-member Accessors
      @@ -184,7 +184,7 @@ range is lower <= x <= upper.

      - + Accuracy

      @@ -193,7 +193,7 @@ with arguments nearing the extremes of zero and unity.

      - + Implementation

      @@ -378,7 +378,7 @@ Calculate and plot probability distributions

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html index b2224ff5d..cb56cd703 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html @@ -117,7 +117,7 @@

        - + Member Functions
        @@ -144,7 +144,7 @@ Returns the upper parameter of this distribution.

        - + Non-member Accessors
        @@ -165,7 +165,7 @@ range is only lower <= x <= upper.

        - + Accuracy

        @@ -173,7 +173,7 @@ and so should have errors within an epsilon or two.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html index a11ccf522..27813ce4a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html @@ -100,7 +100,7 @@

        - + Related distributions
        @@ -114,7 +114,7 @@ Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah.

        - + Member Functions
        @@ -140,7 +140,7 @@ Returns the scale parameter of this distribution.

        - + Non-member Accessors
        @@ -160,7 +160,7 @@ The domain of the random variable is [0, ∞].

        - + Accuracy

        @@ -170,7 +170,7 @@ as such should have very low error rates.

        - + Implementation

        @@ -337,7 +337,7 @@

      - + References
        diff --git a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html index 76768dc2f..c36ba88f6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html @@ -37,7 +37,7 @@ the function you want if you already know its name.

        - + Function Index
          @@ -94,7 +94,7 @@
        - + Conceptual Index
          @@ -180,7 +180,7 @@
        - + Cumulative Distribution Function
        template <class RealType, class Policy>
        @@ -203,7 +203,7 @@
                   cdf
                 

        - + Complement of the Cumulative Distribution Function
        template <class Distribution, class RealType>
        @@ -243,7 +243,7 @@
                   complement is useful and when it should be used.
                 

        - + Hazard Function
        template <class RealType, class Policy>
        @@ -271,7 +271,7 @@
                   

      - + Cumulative Hazard Function
      template <class RealType, class Policy>
      @@ -298,7 +298,7 @@
                 

    - + mean
    template<class RealType, class Policy>
    @@ -313,7 +313,7 @@
               distribution).
             

    - + median
    template<class RealType, class Policy>
    @@ -323,7 +323,7 @@
               Returns the median of the distribution dist.
             

    - + mode
    template<class RealType, Policy>
    @@ -337,7 +337,7 @@
               if the distribution does not have a defined mode.
             

    - + Probability Density Function
    template <class RealType, class Policy>
    @@ -365,7 +365,7 @@
               pdf
             

    - + Range
    template<class RealType, class Policy>
    @@ -375,7 +375,7 @@
               Returns the valid range of the random variable over distribution dist.
             

    - + Quantile
    template <class RealType, class Policy>
    @@ -405,7 +405,7 @@
               quantile
             

    - + Quantile from the complement of the probability.

    @@ -450,7 +450,7 @@ survival_inv

    - + Standard Deviation
    template <class RealType, class Policy>
    @@ -464,7 +464,7 @@
               if the distribution does not have a defined standard deviation.
             

    - + support
    template<class RealType, class Policy>
    @@ -481,7 +481,7 @@
               where the pdf is zero, and the cdf zero or unity.
             

    - + Variance
    template <class RealType, class Policy>
    @@ -495,7 +495,7 @@
               if the distribution does not have a defined variance.
             

    - + Skewness
    template <class RealType, class Policy>
    @@ -509,7 +509,7 @@
               if the distribution does not have a defined skewness.
             

    - + Kurtosis
    template <class RealType, class Policy>
    @@ -551,7 +551,7 @@
               'Proper' kurtosis can have a value from zero to + infinity.
             

    - + Kurtosis excess
    template <class RealType, Policy>
    @@ -585,7 +585,7 @@
               The kurtosis excess of a normal distribution is zero.
             

    - + P and Q

    @@ -595,7 +595,7 @@ returned by these functions.

    - + Percent Point Function or Percentile

    @@ -603,7 +603,7 @@ the Quantile.

    - + Inverse CDF Function.

    @@ -611,14 +611,14 @@ Quantile.

    - + Inverse Survival Function.

    The inverse of the survival function, is the same as computing the quantile from the complement of the probability.

    - + Probability Mass Function

    @@ -631,7 +631,7 @@ applies to continuous distributions.

    - + Lower Critical Value.

    @@ -640,7 +640,7 @@ the Quantile.

    - + Upper Critical Value.

    @@ -650,7 +650,7 @@ complement of the probability.

    - + Survival Function

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/future.html b/doc/sf_and_dist/html/math_toolkit/dist/future.html index ccd1886f5..a28dbba1c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/future.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/future.html @@ -27,7 +27,7 @@ Extras/Future Directions

    - + Adding Additional Location and Scale Parameters
    @@ -55,7 +55,7 @@ functions.

    - + An "any_distribution" class
    @@ -91,7 +91,7 @@ investigation.

    - + Higher Level Hypothesis Tests
    @@ -111,7 +111,7 @@ expected_mean.

    - + Integration With Statistical Accumulators
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html index 449e2a4aa..f01867991 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html @@ -379,7 +379,7 @@ 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
    - + Using Binomial distribution moments
    @@ -406,7 +406,7 @@ Mode (the most frequent) is 4 Skewness is 0.2887
    - + Quantiles

    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html index 94cd67dc4..a02997a1a 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html @@ -139,7 +139,7 @@ _____________________________________________ is between 0.00551 and 0.00729.

    - + Confidence intervals as a function of the number of observations
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html index da22fcbc3..f59dfdc78 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html @@ -246,7 +246,7 @@ error C3861: 'mybetad0': identifier not found
    negative_binomial_distribution<MyFPType>  mydist6(8, 1); // Integer arguments -> MyFPType.
     
    - + Default arguments to distribution constructors.
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html index 514cfdebd..10c9ec9f9 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html @@ -138,7 +138,7 @@ Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
    - + Controlling Error Handling from find_location
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html index a23de9020..f9409478c 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html @@ -57,7 +57,7 @@

    - + Using find_location and find_scale to meet dispensing and measurement specifications
    @@ -193,7 +193,7 @@

    - + Using Cauchy-Lorentz instead of normal distribution
    @@ -305,7 +305,7 @@ of estimating these intervals.

    - + Changing the scale or standard deviation
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html index d1f032683..4d98f4c52 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html @@ -137,7 +137,7 @@ Normal distribution with mean = 0 has fraction > -2, p = 0.97725 Normal distribution with mean = 0 has fraction > -2, p = 0.999
    - + Controlling how Errors from find_scale are handled
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html index ae68c4b1f..b198d32f6 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html @@ -94,7 +94,7 @@ error message instead of an abrupt (and silent) program abort.

    - + Throwing a dice
    @@ -288,7 +288,7 @@ replicated in C++ if desired.

    - + Surveying customers to find one with a faulty product
    @@ -333,7 +333,7 @@

    - + Basket Ball Shooters
    @@ -393,7 +393,7 @@ the best shooters, compared to the 0.03 of the mediocre.

    - + Estimating failures
    diff --git a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html index 949d442ba..892118f4f 100644 --- a/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html +++ b/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html @@ -32,7 +32,7 @@ illustrates their use.

    - + Traditional Tables
    @@ -230,7 +230,7 @@ the two tails is 0.025 + 0.025 = 0.05,

    - + Standard deviations either side of the Mean
    @@ -280,12 +280,12 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 estimated the standard deviation from only a few measurements.

    - + Some simple examples
    - + Life of light bulbs
    @@ -351,7 +351,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + How many onions?
    @@ -396,7 +396,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740

    - + Packing beef
    @@ -565,7 +565,7 @@ Fraction 3 standard deviations within either side of mean is 0.997300203936740 a few measurements.

    - + Length of bolts
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html index 0cc3573e1..6072d64d0 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html @@ -27,7 +27,7 @@ C99 C Functions
    - + Supported C99 Functions
    @@ -138,7 +138,7 @@ acosh(2); // integer argument is treated as a double, returns double.
    - + Quick Reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html index 547ac4864..ad4d28d23 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html @@ -258,7 +258,7 @@

    - + Usage Recomendations

    @@ -295,7 +295,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -391,7 +391,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -520,7 +520,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -585,7 +585,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html index a238c52a7..082d33d05 100644 --- a/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html @@ -28,7 +28,7 @@ Reference
    - + Supported TR1 Functions
    @@ -163,7 +163,7 @@ expint(2); // integer argument is treated as a double, returns double.
    - + Quick Reference
    // [5.2.1.1] associated Laguerre polynomials:
    @@ -494,7 +494,7 @@
             for the full template (header only) version of this function.
           

    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html index c5fba4b42..65bbc9128 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/building.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/building.html @@ -28,7 +28,7 @@ a Boost.Math Library, and its Examples and Tests
    - + Building a Library (shared, dynamic .dll or static .lib)
    @@ -100,7 +100,7 @@ building the sources. Boost.Build will do this automatically when appropriate.

    - + Building the Examples
    @@ -111,7 +111,7 @@ the Boost headers are in your compilers #include search path.

    - + Building the Tests
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html index fa18acdff..630721b58 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html @@ -28,7 +28,7 @@ File Structure
    - + boost/math
    @@ -73,7 +73,7 @@
    - + boost/libs
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html index b7d5e09f0..a485221c2 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html @@ -27,7 +27,7 @@ Error Handling
    - + Quick Reference
    @@ -747,7 +747,7 @@ boost::math::policies::overflow_error;.

    - + Rationale

    @@ -766,7 +766,7 @@

    - + Finding More Information
    @@ -788,7 +788,7 @@ The various kind of errors are described in more detail below.

    - + Domain Errors

    @@ -859,7 +859,7 @@ for more details.

    - + Evaluation at a pole

    @@ -897,7 +897,7 @@ for more details.

    - + Numeric Overflow

    @@ -921,7 +921,7 @@ doesn't support infinities, the maximum value for the type is returned.

    - + Numeric Underflow

    @@ -943,7 +943,7 @@ an std::underflow_error C++ exception.

    - + Denormalisation Errors

    @@ -965,7 +965,7 @@ throws an std::underflow_error C++ exception.

    - + Evaluation Errors

    @@ -1001,7 +1001,7 @@ for more details.

    - + Indeterminate Result Errors

    @@ -1029,7 +1029,7 @@ the result of 00 is 1, even though the result is actually mathematically indeterminate.

    - + Rounding Errors

    @@ -1068,7 +1068,7 @@ for more details.

    - + Errors from typecasts

    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html index 44f9dfed3..ffe28cb3b 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html @@ -28,7 +28,7 @@ New

    - + Boost-1.47
      @@ -45,7 +45,7 @@
    - + Boost-1.46.1
    • @@ -53,7 +53,7 @@ #5113.
    - + Boost-1.46.0
      @@ -68,7 +68,7 @@
    - + Boost-1.45.0
      @@ -85,7 +85,7 @@
    - + Boost-1.44.0
      @@ -99,7 +99,7 @@
    - + Boost-1.41.0
    • @@ -107,7 +107,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -144,7 +144,7 @@
    - + Boost-1.38.0
      @@ -156,14 +156,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -196,7 +196,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -228,7 +228,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -242,7 +242,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -270,7 +270,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -306,7 +306,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html index 99744343b..50a7380fc 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html @@ -30,7 +30,7 @@ This library is divided into three interconnected parts:

    - + Statistical Distributions
    @@ -56,7 +56,7 @@ tests.

    - + Mathematical Special Functions
    @@ -83,7 +83,7 @@ double.

    - + Implementation Toolkit
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html index 876ac7f6b..aa624f307 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html @@ -31,7 +31,7 @@ as handy shortcuts for common navigation tasks.

    - + Shortcuts
    diff --git a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html index e2e608d7b..5c66f0974 100644 --- a/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html +++ b/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html @@ -259,7 +259,7 @@

    - + Usage Recomendations
    @@ -297,7 +297,7 @@ this can be a big win.

    - + Supported C99 Functions
    @@ -393,7 +393,7 @@ }}}} // namespaces
    - + Supported TR1 Functions
    @@ -522,7 +522,7 @@ type calculation rules
    .

    - + Currently Unsupported C99 Functions
    @@ -587,7 +587,7 @@ long double scalbnl(long double x, int ex);
    - + Currently Unsupported TR1 Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html index b2b39c28f..e262f0b1a 100644 --- a/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html +++ b/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -46,7 +46,7 @@

    - + Comparison to GSL-1.13 and Cephes
    @@ -344,7 +344,7 @@

    - +INF [1] + +INF [1]

    @@ -423,7 +423,7 @@

    -

    17.89[2]

    +

    17.89[2]

    (4.248e-005s)

    @@ -548,11 +548,11 @@ -

    [1] +

    [1] Cephes gets stuck in an infinite loop while trying to execute our test cases.

    -

    [2] +

    [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 @@ -563,7 +563,7 @@

    - + Comparison to the R and DCDFLIB Statistical Libraries on Windows
    @@ -659,7 +659,7 @@

    -

    67.66[1]

    +

    67.66[1]

    (3.366e-004s)

    @@ -1088,7 +1088,7 @@

    -

    3.60[2]

    +

    3.60[2]

    (5.987e-007s)

    @@ -1317,7 +1317,7 @@

    -

    43.43[3]

    +

    43.43[3]

    (3.732e-004s)

    @@ -1387,7 +1387,7 @@

    -

    393.90[4]

    +

    393.90[4]

    (2.673e-002s)

    @@ -1523,7 +1523,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (4.411e-004s)

    @@ -1809,28 +1809,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. @@ -1839,7 +1839,7 @@


    - + Comparison to the R Statistical Library on Linux
    @@ -1934,7 +1934,7 @@

    -

    30.51[1]

    +

    30.51[1]

    (3.616e-004s)

    @@ -2363,7 +2363,7 @@

    -

    2.20[2]

    +

    2.20[2]

    (3.522e-007s)

    @@ -2592,7 +2592,7 @@

    -

    25.92[3]

    +

    25.92[3]

    (4.407e-004s)

    @@ -2662,7 +2662,7 @@

    -

    144.91[4]

    +

    144.91[4]

    (3.214e-002s)

    @@ -2798,7 +2798,7 @@

    -

    1.00[5]

    +

    1.00[5]

    (5.916e-004s)

    @@ -3084,28 +3084,28 @@ -

    [1] +

    [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.

    -

    [2] +

    [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 much slower, albeit with much improved precision.

    -

    [3] +

    [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

    -

    [4] +

    [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.

    -

    [5] +

    [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. diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html index 1dcc9dc83..8e79f575b 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html @@ -55,7 +55,7 @@ can take have the following meanings:

    - + real

    @@ -89,7 +89,7 @@ = 68.1584.

    - + integer_round_outwards

    @@ -143,7 +143,7 @@ in each tail.

    - + integer_round_inwards

    @@ -202,7 +202,7 @@ in each tail.

    - + integer_round_down

    @@ -210,7 +210,7 @@ or a lower quantile.

    - + integer_round_up

    @@ -218,7 +218,7 @@ a lower quantile.

    - + integer_round_nearest

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html index 89ee6795e..6329048d1 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html @@ -39,7 +39,7 @@

    - + Available Actions When an Error is Raised
    @@ -62,7 +62,7 @@ The various enumerated values have the following meanings:

    - + throw_on_error

    @@ -174,7 +174,7 @@

    - + errno_on_error

    @@ -289,7 +289,7 @@

    - + ignore_error

    @@ -402,7 +402,7 @@

    - + user_error

    @@ -451,7 +451,7 @@ here.

    - + Kinds of Error Raised
    @@ -691,7 +691,7 @@
    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html index c957f5a5d..d58b526bf 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html @@ -85,7 +85,7 @@

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html index a4482e864..daf615c1c 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html @@ -61,7 +61,7 @@ then you can do so by defining various macros in boost/math/tools/user.hpp.

    - + BOOST_MATH_DOMAIN_ERROR_POLICY

    @@ -71,7 +71,7 @@ ignore_error or user_error.

    - + BOOST_MATH_POLE_ERROR_POLICY

    @@ -81,7 +81,7 @@ ignore_error or user_error.

    - + BOOST_MATH_OVERFLOW_ERROR_POLICY

    @@ -91,7 +91,7 @@ ignore_error or user_error.

    - + BOOST_MATH_ROUNDING_ERROR_POLICY

    @@ -101,7 +101,7 @@ ignore_error or user_error.

    - + BOOST_MATH_EVALUATION_ERROR_POLICY

    @@ -111,7 +111,7 @@ ignore_error or user_error.

    - + BOOST_MATH_UNDERFLOW_ERROR_POLICY

    @@ -121,7 +121,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DENORM_ERROR_POLICY

    @@ -131,7 +131,7 @@ ignore_error or user_error.

    - + BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY

    @@ -142,7 +142,7 @@ ignore_error or user_error.

    - + BOOST_MATH_DIGITS10_POLICY

    @@ -153,7 +153,7 @@ recommended that you change this from the default.

    - + BOOST_MATH_PROMOTE_FLOAT_POLICY

    @@ -165,7 +165,7 @@ off.

    - + BOOST_MATH_PROMOTE_DOUBLE_POLICY

    @@ -177,7 +177,7 @@ off.

    - + BOOST_MATH_DISCRETE_QUANTILE_POLICY

    @@ -188,7 +188,7 @@ Defaults to integer_round_outwards.

    - + BOOST_MATH_ASSERT_UNDEFINED_POLICY

    @@ -201,7 +201,7 @@ whether or not a particular property is well defined.

    - + BOOST_MATH_MAX_SERIES_ITERATION_POLICY

    @@ -210,7 +210,7 @@ Defaults to 1000000.

    - + BOOST_MATH_MAX_ROOT_ITERATION_POLICY

    @@ -219,7 +219,7 @@ Defaults to 200.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html index f94a4e00b..f37e5ed9a 100644 --- a/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html +++ b/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html @@ -177,7 +177,7 @@ base your comparisons on CDF's instead.

    - + Other Rounding Policies are Available
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html index c1966679b..74089b1f3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html @@ -28,7 +28,7 @@ of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_neumann(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -105,7 +105,7 @@

    - + Testing

    @@ -114,7 +114,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -489,7 +489,7 @@ were found.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html index ae67e9cb3..dca8bf811 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html @@ -28,7 +28,7 @@ Overview

    - + Ordinary Bessel Functions
    @@ -103,7 +103,7 @@ and is known as either a Bessel

    - + Modified Bessel Functions
    @@ -167,7 +167,7 @@ respectively:

    - + Spherical Bessel Functions
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html index 03fc8a466..dc9a60d2a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds
    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type cyl_bessel_k(T1 v, T2 x, const Policy&);
     
    - + Description

    @@ -104,7 +104,7 @@

    - + Testing

    @@ -113,7 +113,7 @@ (with all the special case handling removed).

    - + Accuracy

    @@ -321,7 +321,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html index 3c9f87bb1..7fab8e00b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html +++ b/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html @@ -28,7 +28,7 @@ Functions of the First and Second Kinds

    - + Synopsis
    template <class T1, class T2>
    @@ -44,7 +44,7 @@
     calculated-result-type sph_neumann(unsigned v, T2 x, const Policy&);
     
    - + Description

    @@ -92,7 +92,7 @@ for small x:

    - + Testing

    @@ -101,7 +101,7 @@ for small x: implementation (with all the special case handling removed).

    - + Accuracy

    @@ -111,7 +111,7 @@ for small x: refer to these functions for accuracy data.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html index 233ff9470..0fb5f999c 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html @@ -28,7 +28,7 @@ of the First Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html index 750b3f812..8556335ce 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html @@ -28,7 +28,7 @@ of the Second Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -113,7 +113,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -225,7 +225,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ this implementation.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html index 949ea1e3c..9443957a0 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html @@ -28,7 +28,7 @@ of the Third Kind - Legendre Form

    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description

    @@ -119,7 +119,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -231,7 +231,7 @@

    - + Testing

    @@ -241,7 +241,7 @@ this implementation.

    - + Implementation

    @@ -278,7 +278,7 @@ Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1

    - Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1] + Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1 [1]

    are used to move φ   to the range [0, π/2]. @@ -298,7 +298,7 @@



    -

    [1] +

    [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 2 * m * Π(n, k) terms cancel out as the diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html index 1422ce1f0..df29c09fc 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html @@ -28,7 +28,7 @@ Integrals - Carlson Form

    - + Synopsis

    @@ -100,7 +100,7 @@ }} // namespaces

    - + Description

    @@ -216,7 +216,7 @@

    - + Testing

    @@ -239,7 +239,7 @@ to verify their correctness: see the above Carlson paper for details.

    - + Accuracy

    @@ -393,7 +393,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html index 1c08ad064..679dc5920 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html +++ b/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html @@ -49,14 +49,14 @@ Elliptic integral.

    - + Notation

    All variables are real numbers unless otherwise noted.

    - + Definition

    @@ -245,7 +245,7 @@

    - + Duplication Theorem

    @@ -256,7 +256,7 @@

    - + Carlson's Formulas

    @@ -273,7 +273,7 @@

    - + Numerical Algorithms
    @@ -287,7 +287,7 @@ integrals with satisfactory precisions.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html index 5db8a12c9..d6b10b3c9 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html @@ -28,7 +28,7 @@ Ei

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -202,7 +202,7 @@ slightly over the range [4,6].

    - + Testing

    @@ -217,7 +217,7 @@ check.

    - + Implementation

    @@ -247,7 +247,7 @@ 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 [2] experienced the same issue and converted the polynomials into + Cody and Thacher [2] 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, provided they are computed over the interval [-1,1]. @@ -277,7 +277,7 @@



    -

    [2] +

    [2] W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for the exponential integral E1(x), Math. Comp. 22 (1968), 641-649, and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential diff --git a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html index 6b1069f11..d5e95bd57 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html +++ b/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html @@ -28,7 +28,7 @@ En

    - + Synopsis

    @@ -58,7 +58,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -78,7 +78,7 @@
               
             

    - + Accuracy

    @@ -220,7 +220,7 @@

    - + Testing

    @@ -235,7 +235,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html index 14fbc865c..9b1894226 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html @@ -90,7 +90,7 @@

    - + Accuracy

    @@ -99,14 +99,14 @@ function for larger arguments.

    - + Testing

    The spot tests for the binomial coefficients use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html index 6bf701852..430453322 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html @@ -106,7 +106,7 @@

    - + Accuracy

    @@ -114,14 +114,14 @@ so error rates should be no more than a couple of epsilon higher.

    - + Testing

    The spot tests for the double factorial use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html index 8957a0195..809b8aebf 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html @@ -27,7 +27,7 @@ Factorial

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    @@ -157,7 +157,7 @@ the size of further tables that depend on the factorials.

    - + Accuracy

    @@ -166,7 +166,7 @@ will be the same as for tgamma.

    - + Testing

    @@ -175,7 +175,7 @@ function handle those cases already.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html index 55b8f1428..09003cae1 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html @@ -71,7 +71,7 @@ the type of the result is T.

    - + Accuracy

    @@ -79,14 +79,14 @@ function.

    - + Testing

    The spot tests for the falling factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html index 25a4850cb..e44054eda 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html +++ b/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html @@ -75,7 +75,7 @@ the type of the result is T.

    - + Accuracy

    @@ -83,14 +83,14 @@ function.

    - + Testing

    The spot tests for the rising factorials use data generated by functions.wolfram.com.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html index 704a8211f..777ff9015 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html @@ -62,14 +62,14 @@

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -85,7 +85,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html index 3e4626ecd..c9d9822c6 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html @@ -57,14 +57,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -80,7 +80,7 @@ to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html index da82d776b..b64906065 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html +++ b/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html @@ -71,14 +71,14 @@ denoting

    - + Accuracy

    Generally accuracy is to within 1 or 2 epsilon across all supported platforms.

    - + Testing

    @@ -94,7 +94,7 @@ denoting to at least 50 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html index f5fde649f..3143cc57e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html @@ -66,7 +66,7 @@

    - + Accuracy

    @@ -74,7 +74,7 @@ should have approximately 2 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html index c687796e3..9f4cd83be 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html @@ -32,7 +32,7 @@ computes the compile-time integral power of a run-time base.

    - + Synopsis

    @@ -49,7 +49,7 @@ }}

    - + Rationale and Usage
    @@ -91,7 +91,7 @@ Only 3 different products were actually computed.

    - + Return Type

    @@ -112,7 +112,7 @@

    - + Policies

    @@ -121,7 +121,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Error Handling
    @@ -227,7 +227,7 @@ doubleresult=pow<-5>(base);
    - + Acknowledgements

    @@ -238,7 +238,7 @@ improving the implementation.

    - + References

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html index e6a057418..ed79aaf0a 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html @@ -75,7 +75,7 @@

    - + Accuracy

    @@ -83,7 +83,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html index 8061a2bdb..367f7c1a3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html @@ -53,7 +53,7 @@ in such a representable.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html index bc04e7602..0afff0f73 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html @@ -88,7 +88,7 @@

    - + Accuracy

    @@ -96,7 +96,7 @@ should have approximately 1 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html index fe44b4e6c..c0eefc58e 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html @@ -69,14 +69,14 @@

    - + Accuracy

    Should have approximately 2-3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html index babb59136..8467942a5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html +++ b/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html @@ -71,7 +71,7 @@

    - + Accuracy

    @@ -79,7 +79,7 @@ should have approximately 3 epsilon accuracy.

    - + Testing

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html index 926a17c94..43d5c103b 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html @@ -28,7 +28,7 @@ of the Incomplete Beta Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -71,14 +71,14 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    Almost identical to the incomplete beta function ibeta.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html index 0b1d65820..8e2aba032 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html @@ -27,7 +27,7 @@ Beta

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -81,7 +81,7 @@ type calculation rules when T1 and T2 are different types.

    - + Accuracy

    @@ -239,7 +239,7 @@ very small.

    - + Testing

    @@ -248,7 +248,7 @@ at 1000-bit precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html index 4c21d8482..593057935 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html @@ -28,7 +28,7 @@ Beta Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -158,7 +158,7 @@

    - + Accuracy

    @@ -865,7 +865,7 @@


    - + Testing

    @@ -883,7 +883,7 @@ have test data that is fully independent of the code.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html index fc6b80b2a..6851231e5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html @@ -87,7 +87,7 @@ }} // namespaces

    - + Description

    @@ -288,7 +288,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Accuracy

    @@ -300,7 +300,7 @@ or 1.

    - + Testing

    @@ -324,7 +324,7 @@

    - + Implementation of ibeta_inv and ibetac_inv
    @@ -492,7 +492,7 @@ rapidly converges on the true value.

    - + Implementation of inverses on the a and b parameters
    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html index bdb691a01..1fce31d5f 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html @@ -27,7 +27,7 @@ Error Functions
    - + Synopsis

    @@ -63,7 +63,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -100,7 +100,7 @@
               
             

    - + Accuracy

    @@ -525,7 +525,7 @@

    - + Testing

    @@ -540,7 +540,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html index 86a9fc250..ec5d4f253 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html @@ -28,7 +28,7 @@ Inverses

    - + Synopsis

    @@ -64,7 +64,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -98,7 +98,7 @@
               
             

    - + Accuracy

    @@ -108,7 +108,7 @@ error functions.

    - + Testing

    @@ -131,7 +131,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html index 84c124872..254cc7020 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html @@ -27,7 +27,7 @@ Digamma

    - + Synopsis

    @@ -48,7 +48,7 @@ }} // namespaces

    - + Description

    @@ -77,7 +77,7 @@ T otherwise.

    - + Accuracy

    @@ -265,7 +265,7 @@ absolute error will remain very low.

    - + Testing

    @@ -275,7 +275,7 @@ see below).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html index 16aa50534..e434934e3 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html @@ -28,7 +28,7 @@ of the Incomplete Gamma Function

    - + Synopsis

    @@ -49,7 +49,7 @@ }} // namespaces

    - + Description

    @@ -75,7 +75,7 @@ otherwise the return type is simply T1.

    - + Accuracy

    @@ -83,7 +83,7 @@ refer to the documentation for that function for more information.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html index 1008c68e4..7dcd835d2 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html @@ -51,7 +51,7 @@ }} // namespaces

    - + Description
    template <class T1, class T2> 
    @@ -107,7 +107,7 @@
               
             

    - + Accuracy

    @@ -317,7 +317,7 @@

    - + Testing

    @@ -326,7 +326,7 @@ a deliberately naive calculation of Γ(x)/Γ(y).

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html index fb8797099..d58856306 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html @@ -28,7 +28,7 @@ Functions

    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -155,7 +155,7 @@

    - + Accuracy

    @@ -823,7 +823,7 @@

    - + Testing

    @@ -839,7 +839,7 @@ fraction (see below) is unstable for small a and z.

    - + Implementation

    @@ -1008,7 +1008,7 @@ by Temme (see references below).

    - + References
      diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html index 57818a767..2710e61f5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html @@ -28,7 +28,7 @@ Gamma Function Inverses
    - + Synopsis

    @@ -67,7 +67,7 @@ }} // namespaces

    - + Description

    @@ -168,7 +168,7 @@ 0.

    - + Accuracy

    @@ -182,7 +182,7 @@ functions.

    - + Testing

    @@ -206,7 +206,7 @@

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html index 8348db0e9..4e6381d58 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html @@ -27,7 +27,7 @@ Log Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description

    @@ -93,7 +93,7 @@ T otherwise.

    - + Accuracy

    @@ -344,7 +344,7 @@

    - + Testing

    @@ -355,7 +355,7 @@ Random tests in key problem areas are also used.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html index aeb749142..c74c873ae 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html @@ -27,7 +27,7 @@ Gamma

    - + Synopsis

    @@ -54,7 +54,7 @@ }} // namespaces

    - + Description
    template <class T>
    @@ -119,7 +119,7 @@
               it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.
             

    - + Accuracy

    @@ -374,7 +374,7 @@

    - + Testing

    @@ -389,7 +389,7 @@ a lanczos approximation accurate to around 100 decimal digits.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html index 09a26aee9..42e0ac8c6 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html @@ -27,7 +27,7 @@ Hermite Polynomials

    - + Synopsis

    @@ -51,7 +51,7 @@ }} // namespaces

    - + Description

    @@ -131,7 +131,7 @@

    - + Accuracy

    @@ -248,7 +248,7 @@ is very close to a root.

    - + Testing

    @@ -258,7 +258,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html index 6ec5a8631..8d6d2ad97 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -62,7 +62,7 @@ }} // namespaces

    - + Description

    @@ -205,7 +205,7 @@

    - + Accuracy

    @@ -422,7 +422,7 @@ is very close to a root.

    - + Testing

    @@ -432,7 +432,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html index 3f3829108..945034f81 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html @@ -28,7 +28,7 @@ Associated) Polynomials

    - + Synopsis

    @@ -79,7 +79,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -295,7 +295,7 @@
     
     
     
    - + Accuracy

    @@ -676,7 +676,7 @@ given here.

    - + Testing

    @@ -686,7 +686,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html index 8189301de..96d5e5ed5 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html +++ b/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html @@ -27,7 +27,7 @@ Spherical Harmonics

    - + Synopsis

    @@ -60,7 +60,7 @@ }} // namespaces

    - + Description

    @@ -150,7 +150,7 @@

    - + Accuracy

    @@ -271,7 +271,7 @@ arbitrarily large when the function is very close to a root.

    - + Testing

    @@ -281,7 +281,7 @@ precision.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html index 34966068a..4ef7f3eee 100644 --- a/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html +++ b/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html @@ -27,7 +27,7 @@ Riemann Zeta Function

    - + Synopsis

    @@ -57,7 +57,7 @@ it handles errors, what level of precision to use etc. Refer to the policy documentation for more details.

    - + Description
    template <class T>
    @@ -80,7 +80,7 @@
               
             

    - + Accuracy

    @@ -229,7 +229,7 @@

    - + Testing

    @@ -244,7 +244,7 @@ check.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/status/history1.html b/doc/sf_and_dist/html/math_toolkit/status/history1.html index 29e53821c..7bef6de00 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/history1.html +++ b/doc/sf_and_dist/html/math_toolkit/status/history1.html @@ -27,7 +27,7 @@ History and What's New

    - + Boost-1.47
      @@ -44,7 +44,7 @@
    - + Boost-1.46.1
    • @@ -52,7 +52,7 @@ #5113.
    - + Boost-1.46.0
      @@ -67,7 +67,7 @@
    - + Boost-1.45.0
      @@ -84,7 +84,7 @@
    - + Boost-1.44.0
      @@ -98,7 +98,7 @@
    - + Boost-1.41.0
    • @@ -106,7 +106,7 @@ and its inverse.
    - + Boost-1.40.0
      @@ -143,7 +143,7 @@
    - + Boost-1.38.0
      @@ -155,14 +155,14 @@
    - + Boost-1.37.0
    • Improved accuracy and testing of the inverse hypergeometric functions.
    - + Boost-1.36.0
      @@ -195,7 +195,7 @@
    - + Boost-1.35.0: Post Review First Official Release
    @@ -227,7 +227,7 @@
    - + Milestone 4: Second Review Candidate (1st March 2007)
    @@ -241,7 +241,7 @@
    - + Milestone 3: First Review Candidate (31st Dec 2006)
    @@ -269,7 +269,7 @@
    - + Milestone 2: Released September 10th 2006
    @@ -305,7 +305,7 @@
    - + Milestone 1: Released March 31st 2006
    diff --git a/doc/sf_and_dist/html/math_toolkit/status/issues.html b/doc/sf_and_dist/html/math_toolkit/status/issues.html index b6fb06884..eddfc5f79 100644 --- a/doc/sf_and_dist/html/math_toolkit/status/issues.html +++ b/doc/sf_and_dist/html/math_toolkit/status/issues.html @@ -40,7 +40,7 @@ with it.

    - + tgamma
    • @@ -48,7 +48,7 @@ be optimized any further? (low priority)
    - + Incomplete Beta
    • @@ -56,7 +56,7 @@ b (medium priority).
    - + Inverse Gamma
    • @@ -64,7 +64,7 @@ is good enough (Medium Priority).
    - + Polynomials
    • @@ -74,7 +74,7 @@ not (Low Priority).
    - + Elliptic Integrals
      @@ -127,7 +127,7 @@
    - + Inverse Hyperbolic Functions
    @@ -137,7 +137,7 @@ This is probably only an issue for very high precision types (Low Priority).
    - + Statistical distributions
    @@ -146,7 +146,7 @@ for very large degrees of freedom?
    - + Feature Requests

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html index c333c3b7c..b802d9b02 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -78,7 +78,7 @@ }}} // namespaces

    - + Description

    @@ -178,7 +178,7 @@ a continued fraction for convergence.

    - + Implementation

    @@ -188,7 +188,7 @@ Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.

    - + Examples

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html index de3709133..ab38823bf 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html @@ -28,7 +28,7 @@ Constants

    - + Synopsis

    @@ -59,7 +59,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html index 89e99cf13..d2e323f95 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html @@ -28,7 +28,7 @@ Minima: Brent's algorithm

    - + synopsis

    @@ -45,7 +45,7 @@ std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);

    - + Description

    @@ -90,7 +90,7 @@ the abscissa at the minima and the value of f(x) at the minima.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html index 63400026c..6df6d86f9 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html @@ -28,7 +28,7 @@ and Rational Function Evaluation

    - + synopsis

    @@ -79,7 +79,7 @@ V evaluate_rational(const T* num, const U* denom, V z, unsigned count);

    - + Description

    @@ -193,7 +193,7 @@ evaluation with compile-time array sizes may offer slightly better performance.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html index 6128628b0..883d4a2b0 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html @@ -28,7 +28,7 @@ With Derivatives: Newton-Raphson, Halley & Schroeder

    - + Synopsis

    @@ -62,7 +62,7 @@ }}} // namespaces

    - + Description

    @@ -206,7 +206,7 @@

    - + Newton Raphson Method
    @@ -224,7 +224,7 @@ iteration.

    - + Halley's Method
    @@ -246,7 +246,7 @@ iteration.

    - + Schroeder's Method
    @@ -270,7 +270,7 @@ iteration.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html index 03254d04d..aad0827f5 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html @@ -28,7 +28,7 @@ Without Derivatives: Bisection, Bracket and TOMS748

    - + Synopsis

    @@ -144,7 +144,7 @@ }}} // namespaces

    - + Description

    @@ -181,7 +181,7 @@ to be used only rarely, but may be useful in some specific circumstances.

    - + Bisection
    template <class F, class T, class Tol>
    @@ -280,7 +280,7 @@
               tol was satisfied.
             

    - + Bracket and solve
    @@ -388,7 +388,7 @@ was satisfied.

    - + Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions
    @@ -554,7 +554,7 @@ as soon as both ends of the interval round to the same nearest integer.

    - + Implementation

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html index c355df93a..415dcc2d2 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html @@ -28,7 +28,7 @@ Evaluation

    - + Synopsis

    @@ -70,7 +70,7 @@ }}} // namespaces

    - + Description

    @@ -127,7 +127,7 @@ summation in this way.

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html index 849d5a516..aed7a2ec3 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html @@ -27,7 +27,7 @@ Tuples

    - + Synopsis

    @@ -38,7 +38,7 @@

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html index 485157cbd..86b8665b0 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html @@ -28,7 +28,7 @@ Error and Testing

    - + Synopsis

    @@ -45,7 +45,7 @@ test_result<see-below> test(const A& a, F1 test_func, F2 expect_func);

    - + Description
    template <class T>
    @@ -157,7 +157,7 @@
               is mainly a debugging/development aid (and a good place for a breakpoint).
             

    - + Example

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html index f6bda6e8c..f897078de 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html @@ -27,7 +27,7 @@ Polynomials

    - + Synopsis

    @@ -103,7 +103,7 @@ }}} // namespaces

    - + Description

    diff --git a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html index 8bf8fb467..70783476f 100644 --- a/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html +++ b/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html @@ -46,7 +46,7 @@

    - + Synopsis
    namespace boost{ namespace math{ namespace tools{
    @@ -147,7 +147,7 @@
     }}} // namespaces
     
    - + Description

    @@ -177,7 +177,7 @@

    - + Example 1: Output Data for Graph Plotting
    @@ -211,7 +211,7 @@

    - + Example 2: Creating Test Data
    @@ -376,7 +376,7 @@ used by default as it's rather hard on the compiler when the table is large.

    - + Example 3: Profiling a Continued Fraction for Convergence and Accuracy
    @@ -482,7 +482,7 @@ of a and z.

    - + reference

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html index ef2be9593..d32535cbe 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html @@ -39,7 +39,7 @@

    - + Real concept

    @@ -84,7 +84,7 @@ declaration.

    - + Testing the real concept

    @@ -130,7 +130,7 @@ double, also tests real_concept.

    - + Distribution Concept

    @@ -166,7 +166,7 @@ class for distribution types.

    - + Testing the distribution concept

    diff --git a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html index 1a5e6b7f2..241b7a445 100644 --- a/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html +++ b/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html @@ -42,7 +42,7 @@ behaves just like a built in floating point type.

    - + Basic Arithmetic Requirements
    @@ -1035,7 +1035,7 @@
    - + Standard Library Support Requirements
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html index e23381858..fe3650621 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html @@ -35,7 +35,7 @@
    Design Rationale
    - + Synopsis
    namespace boost{ namespace math
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    index 37fa2a8bb..8f1a438d6 100644
    --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
    @@ -27,7 +27,7 @@
     Examples
     
     
    - + Simple example with std::stringstreams
    @@ -64,7 +64,7 @@

    - + Use with lexical_cast
    @@ -149,7 +149,7 @@ s >> input_value;
    - + Use with serialization archives
    @@ -194,7 +194,7 @@ archives do not check the stream state.

    - + Other examples
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html index ae2ede51c..10ec552e3 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html @@ -27,7 +27,7 @@ Introduction
    - + The Problem

    @@ -51,7 +51,7 @@ assert(inf == y); // Fails!

    - + The Solution

    @@ -119,7 +119,7 @@

    - + C++0X standard for output of infinity and NaN
    @@ -131,7 +131,7 @@ portable.

    - + C99 standard for output of infinity and NaN
    @@ -221,7 +221,7 @@ formats.

    - + Signaling NaNs
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html index 098243180..06fa98c59 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html @@ -27,7 +27,7 @@ Reference
    - + The Facet nonfinite_num_put
    @@ -138,7 +138,7 @@ numbers is simply delegated to the normal std::num_put.

    - + Facet nonfinite_num_get
    @@ -254,7 +254,7 @@ on a platform that lacks NaN, then the fail bit of the stream is set.

    - + Flags

    @@ -284,7 +284,7 @@ and live in the namespace boost::math.

    - + legacy

    @@ -392,7 +392,7 @@ library, and also string representations used by other programming languages.

    - + signed_zero

    @@ -412,7 +412,7 @@ as negative zero, as do most implementations of std::num_get.

    - + trap_infinity

    @@ -437,7 +437,7 @@ (See Design Rationale below for a discussion of this inconsistency.)

    - + trap_nan

    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html index 0ea2c6b00..5b51753cd 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html @@ -28,7 +28,7 @@ Infinities and NaNs

    - + Synopsis
    #define FP_ZERO        /* implementation specific value */
    @@ -58,7 +58,7 @@
             to use these functions.
           

    - + Description

    @@ -217,7 +217,7 @@ infinite, NaN, or denormalised).

    - + Floating-point format
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html index c3122ff87..f40ff20a7 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html @@ -32,7 +32,7 @@ number of ULP.

    - + Synopsis

    @@ -50,7 +50,7 @@ }} // namespaces

    - + Description - float_advance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html index f7aded460..9c1ec2233 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html @@ -34,7 +34,7 @@ different.

    - + Synopsis

    @@ -52,7 +52,7 @@ }} // namespaces

    - + Description - float_distance
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html index b5ad0b5da..6992535df 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html @@ -28,7 +28,7 @@ Next Greater Representable Value (float_next)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_next
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html index 07c3179d4..3131f114f 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html @@ -28,7 +28,7 @@ the Next Smaller Representable Value (float_prior)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - float_prior
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html index 6c4a5f592..e05e05b5d 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html @@ -28,7 +28,7 @@ Next Representable Value in a Specific Direction (nextafter)
    - + Synopsis

    @@ -46,7 +46,7 @@ }} // namespaces

    - + Description - nextafter
    @@ -76,7 +76,7 @@ returns an overflow_error.

    - + Examples - nextafter
    diff --git a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html index 2d53c21bd..e292a8bdc 100644 --- a/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html +++ b/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html @@ -28,7 +28,7 @@ Functions
    - + Synopsis

    @@ -55,7 +55,7 @@ }} // namespaces

    - + Description
    template<class T> 
    @@ -119,7 +119,7 @@
             may be the only portable way to ensure that the sign bit is changed.
           

    - + Sign bits

    @@ -140,7 +140,7 @@ it may be necessary to explicitly specialize then for UDT type T.

    - + Examples
    signbit(3.5) is zero (or false)
    @@ -153,7 +153,7 @@
     changesign(-1.8) is 1.8
     
    - + Portability

    diff --git a/doc/sf_and_dist/index.idx b/doc/sf_and_dist/index.idx index 410f19c6f..a6c3a37d7 100644 --- a/doc/sf_and_dist/index.idx +++ b/doc/sf_and_dist/index.idx @@ -10,7 +10,14 @@ !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 +!exclude modf pow real result sin sinh sqrt swap tan tanh s f z +# +# 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" @@ -21,3 +28,5 @@ + + From 74d540d59a3f6f717d52e3fefa17b32b53a5b3b8 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 16 May 2011 17:28:48 +0000 Subject: [PATCH 81/82] Move TR1 C-compatible macros to separate file so they don't get indexed by the docs. [SVN r71988] --- include/boost/math/tr1.hpp | 802 +-------------------------- include/boost/math/tr1_c_macros.ipp | 810 ++++++++++++++++++++++++++++ 2 files changed, 812 insertions(+), 800 deletions(-) create mode 100644 include/boost/math/tr1_c_macros.ipp diff --git a/include/boost/math/tr1.hpp b/include/boost/math/tr1.hpp index c711b5243..773d2257b 100644 --- a/include/boost/math/tr1.hpp +++ b/include/boost/math/tr1.hpp @@ -831,7 +831,7 @@ template inline typename tools::promote_args::type comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(T k) { return boost::math::tr1::comp_ellint_1 BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast::type>(k)); } -// [5.2.1.5] BOOST_PREVENT_MACRO_SUBSTITUTION(complete) elliptic integral of the second kind: +// [5.2.1.5] (complete) elliptic integral of the second kind: inline float comp_ellint_2f(float k) { return boost::math::tr1::boost_comp_ellint_2f(k); } inline double comp_ellint_2(double k) @@ -1107,805 +1107,7 @@ inline typename tools::promote_args::type sph_neumann BOOST_PREVENT_MACRO_SUB #else // __cplusplus -// C99 Functions: -#ifdef acosh -#undef acosh -#endif -#define acosh boost_acosh -#ifdef acoshf -#undef acoshf -#endif -#define acoshf boost_acoshf -#ifdef acoshl -#undef acoshl -#endif -#define acoshl boost_acoshl - -#ifdef asinh -#undef asinh -#endif -#define asinh boost_asinh -#ifdef asinhf -#undef asinhf -#endif -#define asinhf boost_asinhf -#ifdef asinhl -#undef asinhl -#endif -#define asinhl boost_asinhl - -#ifdef atanh -#undef atanh -#endif -#define atanh boost_atanh -#ifdef atanhf -#undef atanhf -#endif -#define atanhf boost_atanhf -#ifdef atanhl -#undef atanhl -#endif -#define atanhl boost_atanhl - -#ifdef cbrt -#undef cbrt -#endif -#define cbrt boost_cbrt -#ifdef cbrtf -#undef cbrtf -#endif -#define cbrtf boost_cbrtf -#ifdef cbrtl -#undef cbrtl -#endif -#define cbrtl boost_cbrtl - -#ifdef copysign -#undef copysign -#endif -#define copysign boost_copysign -#ifdef copysignf -#undef copysignf -#endif -#define copysignf boost_copysignf -#ifdef copysignl -#undef copysignl -#endif -#define copysignl boost_copysignl - -#ifdef erf -#undef erf -#endif -#define erf boost_erf -#ifdef erff -#undef erff -#endif -#define erff boost_erff -#ifdef erfl -#undef erfl -#endif -#define erfl boost_erfl - -#ifdef erfc -#undef erfc -#endif -#define erfc boost_erfc -#ifdef erfcf -#undef erfcf -#endif -#define erfcf boost_erfcf -#ifdef erfcl -#undef erfcl -#endif -#define erfcl boost_erfcl - -#if 0 -#ifdef exp2 -#undef exp2 -#endif -#define exp2 boost_exp2 -#ifdef exp2f -#undef exp2f -#endif -#define exp2f boost_exp2f -#ifdef exp2l -#undef exp2l -#endif -#define exp2l boost_exp2l -#endif - -#ifdef expm1 -#undef expm1 -#endif -#define expm1 boost_expm1 -#ifdef expm1f -#undef expm1f -#endif -#define expm1f boost_expm1f -#ifdef expm1l -#undef expm1l -#endif -#define expm1l boost_expm1l - -#if 0 -#ifdef fdim -#undef fdim -#endif -#define fdim boost_fdim -#ifdef fdimf -#undef fdimf -#endif -#define fdimf boost_fdimf -#ifdef fdiml -#undef fdiml -#endif -#define fdiml boost_fdiml -#ifdef acosh -#undef acosh -#endif -#define fma boost_fma -#ifdef fmaf -#undef fmaf -#endif -#define fmaf boost_fmaf -#ifdef fmal -#undef fmal -#endif -#define fmal boost_fmal -#endif - -#ifdef fmax -#undef fmax -#endif -#define fmax boost_fmax -#ifdef fmaxf -#undef fmaxf -#endif -#define fmaxf boost_fmaxf -#ifdef fmaxl -#undef fmaxl -#endif -#define fmaxl boost_fmaxl - -#ifdef fmin -#undef fmin -#endif -#define fmin boost_fmin -#ifdef fminf -#undef fminf -#endif -#define fminf boost_fminf -#ifdef fminl -#undef fminl -#endif -#define fminl boost_fminl - -#ifdef hypot -#undef hypot -#endif -#define hypot boost_hypot -#ifdef hypotf -#undef hypotf -#endif -#define hypotf boost_hypotf -#ifdef hypotl -#undef hypotl -#endif -#define hypotl boost_hypotl - -#if 0 -#ifdef ilogb -#undef ilogb -#endif -#define ilogb boost_ilogb -#ifdef ilogbf -#undef ilogbf -#endif -#define ilogbf boost_ilogbf -#ifdef ilogbl -#undef ilogbl -#endif -#define ilogbl boost_ilogbl -#endif - -#ifdef lgamma -#undef lgamma -#endif -#define lgamma boost_lgamma -#ifdef lgammaf -#undef lgammaf -#endif -#define lgammaf boost_lgammaf -#ifdef lgammal -#undef lgammal -#endif -#define lgammal boost_lgammal - -#ifdef BOOST_HAS_LONG_LONG -#if 0 -#ifdef llrint -#undef llrint -#endif -#define llrint boost_llrint -#ifdef llrintf -#undef llrintf -#endif -#define llrintf boost_llrintf -#ifdef llrintl -#undef llrintl -#endif -#define llrintl boost_llrintl -#endif -#ifdef llround -#undef llround -#endif -#define llround boost_llround -#ifdef llroundf -#undef llroundf -#endif -#define llroundf boost_llroundf -#ifdef llroundl -#undef llroundl -#endif -#define llroundl boost_llroundl -#endif - -#ifdef log1p -#undef log1p -#endif -#define log1p boost_log1p -#ifdef log1pf -#undef log1pf -#endif -#define log1pf boost_log1pf -#ifdef log1pl -#undef log1pl -#endif -#define log1pl boost_log1pl - -#if 0 -#ifdef log2 -#undef log2 -#endif -#define log2 boost_log2 -#ifdef log2f -#undef log2f -#endif -#define log2f boost_log2f -#ifdef log2l -#undef log2l -#endif -#define log2l boost_log2l - -#ifdef logb -#undef logb -#endif -#define logb boost_logb -#ifdef logbf -#undef logbf -#endif -#define logbf boost_logbf -#ifdef logbl -#undef logbl -#endif -#define logbl boost_logbl - -#ifdef lrint -#undef lrint -#endif -#define lrint boost_lrint -#ifdef lrintf -#undef lrintf -#endif -#define lrintf boost_lrintf -#ifdef lrintl -#undef lrintl -#endif -#define lrintl boost_lrintl -#endif - -#ifdef lround -#undef lround -#endif -#define lround boost_lround -#ifdef lroundf -#undef lroundf -#endif -#define lroundf boost_lroundf -#ifdef lroundl -#undef lroundl -#endif -#define lroundl boost_lroundl - -#if 0 -#ifdef nan -#undef nan -#endif -#define nan boost_nan -#ifdef nanf -#undef nanf -#endif -#define nanf boost_nanf -#ifdef nanl -#undef nanl -#endif -#define nanl boost_nanl - -#ifdef nearbyint -#undef nearbyint -#endif -#define nearbyint boost_nearbyint -#ifdef nearbyintf -#undef nearbyintf -#endif -#define nearbyintf boost_nearbyintf -#ifdef nearbyintl -#undef nearbyintl -#endif -#define nearbyintl boost_nearbyintl -#endif - -#ifdef nextafter -#undef nextafter -#endif -#define nextafter boost_nextafter -#ifdef nextafterf -#undef nextafterf -#endif -#define nextafterf boost_nextafterf -#ifdef nextafterl -#undef nextafterl -#endif -#define nextafterl boost_nextafterl - -#ifdef nexttoward -#undef nexttoward -#endif -#define nexttoward boost_nexttoward -#ifdef nexttowardf -#undef nexttowardf -#endif -#define nexttowardf boost_nexttowardf -#ifdef nexttowardl -#undef nexttowardl -#endif -#define nexttowardl boost_nexttowardl - -#if 0 -#ifdef remainder -#undef remainder -#endif -#define remainder boost_remainder -#ifdef remainderf -#undef remainderf -#endif -#define remainderf boost_remainderf -#ifdef remainderl -#undef remainderl -#endif -#define remainderl boost_remainderl - -#ifdef remquo -#undef remquo -#endif -#define remquo boost_remquo -#ifdef remquof -#undef remquof -#endif -#define remquof boost_remquof -#ifdef remquol -#undef remquol -#endif -#define remquol boost_remquol - -#ifdef rint -#undef rint -#endif -#define rint boost_rint -#ifdef rintf -#undef rintf -#endif -#define rintf boost_rintf -#ifdef rintl -#undef rintl -#endif -#define rintl boost_rintl -#endif - -#ifdef round -#undef round -#endif -#define round boost_round -#ifdef roundf -#undef roundf -#endif -#define roundf boost_roundf -#ifdef roundl -#undef roundl -#endif -#define roundl boost_roundl - -#if 0 -#ifdef scalbln -#undef scalbln -#endif -#define scalbln boost_scalbln -#ifdef scalblnf -#undef scalblnf -#endif -#define scalblnf boost_scalblnf -#ifdef scalblnl -#undef scalblnl -#endif -#define scalblnl boost_scalblnl - -#ifdef scalbn -#undef scalbn -#endif -#define scalbn boost_scalbn -#ifdef scalbnf -#undef scalbnf -#endif -#define scalbnf boost_scalbnf -#ifdef scalbnl -#undef scalbnl -#endif -#define scalbnl boost_scalbnl -#endif - -#ifdef tgamma -#undef tgamma -#endif -#define tgamma boost_tgamma -#ifdef tgammaf -#undef tgammaf -#endif -#define tgammaf boost_tgammaf -#ifdef tgammal -#undef tgammal -#endif -#define tgammal boost_tgammal - -#ifdef trunc -#undef trunc -#endif -#define trunc boost_trunc -#ifdef truncf -#undef truncf -#endif -#define truncf boost_truncf -#ifdef truncl -#undef truncl -#endif -#define truncl boost_truncl - -// [5.2.1.1] associated Laguerre polynomials: -#ifdef assoc_laguerre -#undef assoc_laguerre -#endif -#define assoc_laguerre boost_assoc_laguerre -#ifdef assoc_laguerref -#undef assoc_laguerref -#endif -#define assoc_laguerref boost_assoc_laguerref -#ifdef assoc_laguerrel -#undef assoc_laguerrel -#endif -#define assoc_laguerrel boost_assoc_laguerrel - -// [5.2.1.2] associated Legendre functions: -#ifdef assoc_legendre -#undef assoc_legendre -#endif -#define assoc_legendre boost_assoc_legendre -#ifdef assoc_legendref -#undef assoc_legendref -#endif -#define assoc_legendref boost_assoc_legendref -#ifdef assoc_legendrel -#undef assoc_legendrel -#endif -#define assoc_legendrel boost_assoc_legendrel - -// [5.2.1.3] beta function: -#ifdef beta -#undef beta -#endif -#define beta boost_beta -#ifdef betaf -#undef betaf -#endif -#define betaf boost_betaf -#ifdef betal -#undef betal -#endif -#define betal boost_betal - -// [5.2.1.4] (complete) elliptic integral of the first kind: -#ifdef comp_ellint_1 -#undef comp_ellint_1 -#endif -#define comp_ellint_1 boost_comp_ellint_1 -#ifdef comp_ellint_1f -#undef comp_ellint_1f -#endif -#define comp_ellint_1f boost_comp_ellint_1f -#ifdef comp_ellint_1l -#undef comp_ellint_1l -#endif -#define comp_ellint_1l boost_comp_ellint_1l - -// [5.2.1.5] (complete) elliptic integral of the second kind: -#ifdef comp_ellint_2 -#undef comp_ellint_2 -#endif -#define comp_ellint_2 boost_comp_ellint_2 -#ifdef comp_ellint_2f -#undef comp_ellint_2f -#endif -#define comp_ellint_2f boost_comp_ellint_2f -#ifdef comp_ellint_2l -#undef comp_ellint_2l -#endif -#define comp_ellint_2l boost_comp_ellint_2l - -// [5.2.1.6] (complete) elliptic integral of the third kind: -#ifdef comp_ellint_3 -#undef comp_ellint_3 -#endif -#define comp_ellint_3 boost_comp_ellint_3 -#ifdef comp_ellint_3f -#undef comp_ellint_3f -#endif -#define comp_ellint_3f boost_comp_ellint_3f -#ifdef comp_ellint_3l -#undef comp_ellint_3l -#endif -#define comp_ellint_3l boost_comp_ellint_3l - -#if 0 -// [5.2.1.7] confluent hypergeometric functions: -#ifdef conf_hyper -#undef conf_hyper -#endif -#define conf_hyper boost_conf_hyper -#ifdef conf_hyperf -#undef conf_hyperf -#endif -#define conf_hyperf boost_conf_hyperf -#ifdef conf_hyperl -#undef conf_hyperl -#endif -#define conf_hyperl boost_conf_hyperl -#endif - -// [5.2.1.8] regular modified cylindrical Bessel functions: -#ifdef cyl_bessel_i -#undef cyl_bessel_i -#endif -#define cyl_bessel_i boost_cyl_bessel_i -#ifdef cyl_bessel_if -#undef cyl_bessel_if -#endif -#define cyl_bessel_if boost_cyl_bessel_if -#ifdef cyl_bessel_il -#undef cyl_bessel_il -#endif -#define cyl_bessel_il boost_cyl_bessel_il - -// [5.2.1.9] cylindrical Bessel functions (of the first kind): -#ifdef cyl_bessel_j -#undef cyl_bessel_j -#endif -#define cyl_bessel_j boost_cyl_bessel_j -#ifdef cyl_bessel_jf -#undef cyl_bessel_jf -#endif -#define cyl_bessel_jf boost_cyl_bessel_jf -#ifdef cyl_bessel_jl -#undef cyl_bessel_jl -#endif -#define cyl_bessel_jl boost_cyl_bessel_jl - -// [5.2.1.10] irregular modified cylindrical Bessel functions: -#ifdef cyl_bessel_k -#undef cyl_bessel_k -#endif -#define cyl_bessel_k boost_cyl_bessel_k -#ifdef cyl_bessel_kf -#undef cyl_bessel_kf -#endif -#define cyl_bessel_kf boost_cyl_bessel_kf -#ifdef cyl_bessel_kl -#undef cyl_bessel_kl -#endif -#define cyl_bessel_kl boost_cyl_bessel_kl - -// [5.2.1.11] cylindrical Neumann functions BOOST_MATH_C99_THROW_SPEC; -// cylindrical Bessel functions (of the second kind): -#ifdef cyl_neumann -#undef cyl_neumann -#endif -#define cyl_neumann boost_cyl_neumann -#ifdef cyl_neumannf -#undef cyl_neumannf -#endif -#define cyl_neumannf boost_cyl_neumannf -#ifdef cyl_neumannl -#undef cyl_neumannl -#endif -#define cyl_neumannl boost_cyl_neumannl - -// [5.2.1.12] (incomplete) elliptic integral of the first kind: -#ifdef ellint_1 -#undef ellint_1 -#endif -#define ellint_1 boost_ellint_1 -#ifdef ellint_1f -#undef ellint_1f -#endif -#define ellint_1f boost_ellint_1f -#ifdef ellint_1l -#undef ellint_1l -#endif -#define ellint_1l boost_ellint_1l - -// [5.2.1.13] (incomplete) elliptic integral of the second kind: -#ifdef ellint_2 -#undef ellint_2 -#endif -#define ellint_2 boost_ellint_2 -#ifdef ellint_2f -#undef ellint_2f -#endif -#define ellint_2f boost_ellint_2f -#ifdef ellint_2l -#undef ellint_2l -#endif -#define ellint_2l boost_ellint_2l - -// [5.2.1.14] (incomplete) elliptic integral of the third kind: -#ifdef ellint_3 -#undef ellint_3 -#endif -#define ellint_3 boost_ellint_3 -#ifdef ellint_3f -#undef ellint_3f -#endif -#define ellint_3f boost_ellint_3f -#ifdef ellint_3l -#undef ellint_3l -#endif -#define ellint_3l boost_ellint_3l - -// [5.2.1.15] exponential integral: -#ifdef expint -#undef expint -#endif -#define expint boost_expint -#ifdef expintf -#undef expintf -#endif -#define expintf boost_expintf -#ifdef expintl -#undef expintl -#endif -#define expintl boost_expintl - -// [5.2.1.16] Hermite polynomials: -#ifdef hermite -#undef hermite -#endif -#define hermite boost_hermite -#ifdef hermitef -#undef hermitef -#endif -#define hermitef boost_hermitef -#ifdef hermitel -#undef hermitel -#endif -#define hermitel boost_hermitel - -#if 0 -// [5.2.1.17] hypergeometric functions: -#ifdef hyperg -#undef hyperg -#endif -#define hyperg boost_hyperg -#ifdef hypergf -#undef hypergf -#endif -#define hypergf boost_hypergf -#ifdef hypergl -#undef hypergl -#endif -#define hypergl boost_hypergl -#endif - -// [5.2.1.18] Laguerre polynomials: -#ifdef laguerre -#undef laguerre -#endif -#define laguerre boost_laguerre -#ifdef laguerref -#undef laguerref -#endif -#define laguerref boost_laguerref -#ifdef laguerrel -#undef laguerrel -#endif -#define laguerrel boost_laguerrel - -// [5.2.1.19] Legendre polynomials: -#ifdef legendre -#undef legendre -#endif -#define legendre boost_legendre -#ifdef legendref -#undef legendref -#endif -#define legendref boost_legendref -#ifdef legendrel -#undef legendrel -#endif -#define legendrel boost_legendrel - -// [5.2.1.20] Riemann zeta function: -#ifdef riemann_zeta -#undef riemann_zeta -#endif -#define riemann_zeta boost_riemann_zeta -#ifdef riemann_zetaf -#undef riemann_zetaf -#endif -#define riemann_zetaf boost_riemann_zetaf -#ifdef riemann_zetal -#undef riemann_zetal -#endif -#define riemann_zetal boost_riemann_zetal - -// [5.2.1.21] spherical Bessel functions (of the first kind): -#ifdef sph_bessel -#undef sph_bessel -#endif -#define sph_bessel boost_sph_bessel -#ifdef sph_besself -#undef sph_besself -#endif -#define sph_besself boost_sph_besself -#ifdef sph_bessell -#undef sph_bessell -#endif -#define sph_bessell boost_sph_bessell - -// [5.2.1.22] spherical associated Legendre functions: -#ifdef sph_legendre -#undef sph_legendre -#endif -#define sph_legendre boost_sph_legendre -#ifdef sph_legendref -#undef sph_legendref -#endif -#define sph_legendref boost_sph_legendref -#ifdef sph_legendrel -#undef sph_legendrel -#endif -#define sph_legendrel boost_sph_legendrel - -// [5.2.1.23] spherical Neumann functions BOOST_MATH_C99_THROW_SPEC; -// spherical Bessel functions (of the second kind): -#ifdef sph_neumann -#undef sph_neumann -#endif -#define sph_neumann boost_sph_neumann -#ifdef sph_neumannf -#undef sph_neumannf -#endif -#define sph_neumannf boost_sph_neumannf -#ifdef sph_neumannl -#undef sph_neumannl -#endif -#define sph_neumannl boost_sph_neumannl +#include #endif // __cplusplus diff --git a/include/boost/math/tr1_c_macros.ipp b/include/boost/math/tr1_c_macros.ipp new file mode 100644 index 000000000..c173639af --- /dev/null +++ b/include/boost/math/tr1_c_macros.ipp @@ -0,0 +1,810 @@ +// Copyright John Maddock 2008-11. +// 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) + +#ifndef BOOST_MATH_C_MACROS_IPP +#define BOOST_MATH_C_MACROS_IPP + +// C99 Functions: +#ifdef acosh +#undef acosh +#endif +#define acosh boost_acosh +#ifdef acoshf +#undef acoshf +#endif +#define acoshf boost_acoshf +#ifdef acoshl +#undef acoshl +#endif +#define acoshl boost_acoshl + +#ifdef asinh +#undef asinh +#endif +#define asinh boost_asinh +#ifdef asinhf +#undef asinhf +#endif +#define asinhf boost_asinhf +#ifdef asinhl +#undef asinhl +#endif +#define asinhl boost_asinhl + +#ifdef atanh +#undef atanh +#endif +#define atanh boost_atanh +#ifdef atanhf +#undef atanhf +#endif +#define atanhf boost_atanhf +#ifdef atanhl +#undef atanhl +#endif +#define atanhl boost_atanhl + +#ifdef cbrt +#undef cbrt +#endif +#define cbrt boost_cbrt +#ifdef cbrtf +#undef cbrtf +#endif +#define cbrtf boost_cbrtf +#ifdef cbrtl +#undef cbrtl +#endif +#define cbrtl boost_cbrtl + +#ifdef copysign +#undef copysign +#endif +#define copysign boost_copysign +#ifdef copysignf +#undef copysignf +#endif +#define copysignf boost_copysignf +#ifdef copysignl +#undef copysignl +#endif +#define copysignl boost_copysignl + +#ifdef erf +#undef erf +#endif +#define erf boost_erf +#ifdef erff +#undef erff +#endif +#define erff boost_erff +#ifdef erfl +#undef erfl +#endif +#define erfl boost_erfl + +#ifdef erfc +#undef erfc +#endif +#define erfc boost_erfc +#ifdef erfcf +#undef erfcf +#endif +#define erfcf boost_erfcf +#ifdef erfcl +#undef erfcl +#endif +#define erfcl boost_erfcl + +#if 0 +#ifdef exp2 +#undef exp2 +#endif +#define exp2 boost_exp2 +#ifdef exp2f +#undef exp2f +#endif +#define exp2f boost_exp2f +#ifdef exp2l +#undef exp2l +#endif +#define exp2l boost_exp2l +#endif + +#ifdef expm1 +#undef expm1 +#endif +#define expm1 boost_expm1 +#ifdef expm1f +#undef expm1f +#endif +#define expm1f boost_expm1f +#ifdef expm1l +#undef expm1l +#endif +#define expm1l boost_expm1l + +#if 0 +#ifdef fdim +#undef fdim +#endif +#define fdim boost_fdim +#ifdef fdimf +#undef fdimf +#endif +#define fdimf boost_fdimf +#ifdef fdiml +#undef fdiml +#endif +#define fdiml boost_fdiml +#ifdef acosh +#undef acosh +#endif +#define fma boost_fma +#ifdef fmaf +#undef fmaf +#endif +#define fmaf boost_fmaf +#ifdef fmal +#undef fmal +#endif +#define fmal boost_fmal +#endif + +#ifdef fmax +#undef fmax +#endif +#define fmax boost_fmax +#ifdef fmaxf +#undef fmaxf +#endif +#define fmaxf boost_fmaxf +#ifdef fmaxl +#undef fmaxl +#endif +#define fmaxl boost_fmaxl + +#ifdef fmin +#undef fmin +#endif +#define fmin boost_fmin +#ifdef fminf +#undef fminf +#endif +#define fminf boost_fminf +#ifdef fminl +#undef fminl +#endif +#define fminl boost_fminl + +#ifdef hypot +#undef hypot +#endif +#define hypot boost_hypot +#ifdef hypotf +#undef hypotf +#endif +#define hypotf boost_hypotf +#ifdef hypotl +#undef hypotl +#endif +#define hypotl boost_hypotl + +#if 0 +#ifdef ilogb +#undef ilogb +#endif +#define ilogb boost_ilogb +#ifdef ilogbf +#undef ilogbf +#endif +#define ilogbf boost_ilogbf +#ifdef ilogbl +#undef ilogbl +#endif +#define ilogbl boost_ilogbl +#endif + +#ifdef lgamma +#undef lgamma +#endif +#define lgamma boost_lgamma +#ifdef lgammaf +#undef lgammaf +#endif +#define lgammaf boost_lgammaf +#ifdef lgammal +#undef lgammal +#endif +#define lgammal boost_lgammal + +#ifdef BOOST_HAS_LONG_LONG +#if 0 +#ifdef llrint +#undef llrint +#endif +#define llrint boost_llrint +#ifdef llrintf +#undef llrintf +#endif +#define llrintf boost_llrintf +#ifdef llrintl +#undef llrintl +#endif +#define llrintl boost_llrintl +#endif +#ifdef llround +#undef llround +#endif +#define llround boost_llround +#ifdef llroundf +#undef llroundf +#endif +#define llroundf boost_llroundf +#ifdef llroundl +#undef llroundl +#endif +#define llroundl boost_llroundl +#endif + +#ifdef log1p +#undef log1p +#endif +#define log1p boost_log1p +#ifdef log1pf +#undef log1pf +#endif +#define log1pf boost_log1pf +#ifdef log1pl +#undef log1pl +#endif +#define log1pl boost_log1pl + +#if 0 +#ifdef log2 +#undef log2 +#endif +#define log2 boost_log2 +#ifdef log2f +#undef log2f +#endif +#define log2f boost_log2f +#ifdef log2l +#undef log2l +#endif +#define log2l boost_log2l + +#ifdef logb +#undef logb +#endif +#define logb boost_logb +#ifdef logbf +#undef logbf +#endif +#define logbf boost_logbf +#ifdef logbl +#undef logbl +#endif +#define logbl boost_logbl + +#ifdef lrint +#undef lrint +#endif +#define lrint boost_lrint +#ifdef lrintf +#undef lrintf +#endif +#define lrintf boost_lrintf +#ifdef lrintl +#undef lrintl +#endif +#define lrintl boost_lrintl +#endif + +#ifdef lround +#undef lround +#endif +#define lround boost_lround +#ifdef lroundf +#undef lroundf +#endif +#define lroundf boost_lroundf +#ifdef lroundl +#undef lroundl +#endif +#define lroundl boost_lroundl + +#if 0 +#ifdef nan +#undef nan +#endif +#define nan boost_nan +#ifdef nanf +#undef nanf +#endif +#define nanf boost_nanf +#ifdef nanl +#undef nanl +#endif +#define nanl boost_nanl + +#ifdef nearbyint +#undef nearbyint +#endif +#define nearbyint boost_nearbyint +#ifdef nearbyintf +#undef nearbyintf +#endif +#define nearbyintf boost_nearbyintf +#ifdef nearbyintl +#undef nearbyintl +#endif +#define nearbyintl boost_nearbyintl +#endif + +#ifdef nextafter +#undef nextafter +#endif +#define nextafter boost_nextafter +#ifdef nextafterf +#undef nextafterf +#endif +#define nextafterf boost_nextafterf +#ifdef nextafterl +#undef nextafterl +#endif +#define nextafterl boost_nextafterl + +#ifdef nexttoward +#undef nexttoward +#endif +#define nexttoward boost_nexttoward +#ifdef nexttowardf +#undef nexttowardf +#endif +#define nexttowardf boost_nexttowardf +#ifdef nexttowardl +#undef nexttowardl +#endif +#define nexttowardl boost_nexttowardl + +#if 0 +#ifdef remainder +#undef remainder +#endif +#define remainder boost_remainder +#ifdef remainderf +#undef remainderf +#endif +#define remainderf boost_remainderf +#ifdef remainderl +#undef remainderl +#endif +#define remainderl boost_remainderl + +#ifdef remquo +#undef remquo +#endif +#define remquo boost_remquo +#ifdef remquof +#undef remquof +#endif +#define remquof boost_remquof +#ifdef remquol +#undef remquol +#endif +#define remquol boost_remquol + +#ifdef rint +#undef rint +#endif +#define rint boost_rint +#ifdef rintf +#undef rintf +#endif +#define rintf boost_rintf +#ifdef rintl +#undef rintl +#endif +#define rintl boost_rintl +#endif + +#ifdef round +#undef round +#endif +#define round boost_round +#ifdef roundf +#undef roundf +#endif +#define roundf boost_roundf +#ifdef roundl +#undef roundl +#endif +#define roundl boost_roundl + +#if 0 +#ifdef scalbln +#undef scalbln +#endif +#define scalbln boost_scalbln +#ifdef scalblnf +#undef scalblnf +#endif +#define scalblnf boost_scalblnf +#ifdef scalblnl +#undef scalblnl +#endif +#define scalblnl boost_scalblnl + +#ifdef scalbn +#undef scalbn +#endif +#define scalbn boost_scalbn +#ifdef scalbnf +#undef scalbnf +#endif +#define scalbnf boost_scalbnf +#ifdef scalbnl +#undef scalbnl +#endif +#define scalbnl boost_scalbnl +#endif + +#ifdef tgamma +#undef tgamma +#endif +#define tgamma boost_tgamma +#ifdef tgammaf +#undef tgammaf +#endif +#define tgammaf boost_tgammaf +#ifdef tgammal +#undef tgammal +#endif +#define tgammal boost_tgammal + +#ifdef trunc +#undef trunc +#endif +#define trunc boost_trunc +#ifdef truncf +#undef truncf +#endif +#define truncf boost_truncf +#ifdef truncl +#undef truncl +#endif +#define truncl boost_truncl + +// [5.2.1.1] associated Laguerre polynomials: +#ifdef assoc_laguerre +#undef assoc_laguerre +#endif +#define assoc_laguerre boost_assoc_laguerre +#ifdef assoc_laguerref +#undef assoc_laguerref +#endif +#define assoc_laguerref boost_assoc_laguerref +#ifdef assoc_laguerrel +#undef assoc_laguerrel +#endif +#define assoc_laguerrel boost_assoc_laguerrel + +// [5.2.1.2] associated Legendre functions: +#ifdef assoc_legendre +#undef assoc_legendre +#endif +#define assoc_legendre boost_assoc_legendre +#ifdef assoc_legendref +#undef assoc_legendref +#endif +#define assoc_legendref boost_assoc_legendref +#ifdef assoc_legendrel +#undef assoc_legendrel +#endif +#define assoc_legendrel boost_assoc_legendrel + +// [5.2.1.3] beta function: +#ifdef beta +#undef beta +#endif +#define beta boost_beta +#ifdef betaf +#undef betaf +#endif +#define betaf boost_betaf +#ifdef betal +#undef betal +#endif +#define betal boost_betal + +// [5.2.1.4] (complete) elliptic integral of the first kind: +#ifdef comp_ellint_1 +#undef comp_ellint_1 +#endif +#define comp_ellint_1 boost_comp_ellint_1 +#ifdef comp_ellint_1f +#undef comp_ellint_1f +#endif +#define comp_ellint_1f boost_comp_ellint_1f +#ifdef comp_ellint_1l +#undef comp_ellint_1l +#endif +#define comp_ellint_1l boost_comp_ellint_1l + +// [5.2.1.5] (complete) elliptic integral of the second kind: +#ifdef comp_ellint_2 +#undef comp_ellint_2 +#endif +#define comp_ellint_2 boost_comp_ellint_2 +#ifdef comp_ellint_2f +#undef comp_ellint_2f +#endif +#define comp_ellint_2f boost_comp_ellint_2f +#ifdef comp_ellint_2l +#undef comp_ellint_2l +#endif +#define comp_ellint_2l boost_comp_ellint_2l + +// [5.2.1.6] (complete) elliptic integral of the third kind: +#ifdef comp_ellint_3 +#undef comp_ellint_3 +#endif +#define comp_ellint_3 boost_comp_ellint_3 +#ifdef comp_ellint_3f +#undef comp_ellint_3f +#endif +#define comp_ellint_3f boost_comp_ellint_3f +#ifdef comp_ellint_3l +#undef comp_ellint_3l +#endif +#define comp_ellint_3l boost_comp_ellint_3l + +#if 0 +// [5.2.1.7] confluent hypergeometric functions: +#ifdef conf_hyper +#undef conf_hyper +#endif +#define conf_hyper boost_conf_hyper +#ifdef conf_hyperf +#undef conf_hyperf +#endif +#define conf_hyperf boost_conf_hyperf +#ifdef conf_hyperl +#undef conf_hyperl +#endif +#define conf_hyperl boost_conf_hyperl +#endif + +// [5.2.1.8] regular modified cylindrical Bessel functions: +#ifdef cyl_bessel_i +#undef cyl_bessel_i +#endif +#define cyl_bessel_i boost_cyl_bessel_i +#ifdef cyl_bessel_if +#undef cyl_bessel_if +#endif +#define cyl_bessel_if boost_cyl_bessel_if +#ifdef cyl_bessel_il +#undef cyl_bessel_il +#endif +#define cyl_bessel_il boost_cyl_bessel_il + +// [5.2.1.9] cylindrical Bessel functions (of the first kind): +#ifdef cyl_bessel_j +#undef cyl_bessel_j +#endif +#define cyl_bessel_j boost_cyl_bessel_j +#ifdef cyl_bessel_jf +#undef cyl_bessel_jf +#endif +#define cyl_bessel_jf boost_cyl_bessel_jf +#ifdef cyl_bessel_jl +#undef cyl_bessel_jl +#endif +#define cyl_bessel_jl boost_cyl_bessel_jl + +// [5.2.1.10] irregular modified cylindrical Bessel functions: +#ifdef cyl_bessel_k +#undef cyl_bessel_k +#endif +#define cyl_bessel_k boost_cyl_bessel_k +#ifdef cyl_bessel_kf +#undef cyl_bessel_kf +#endif +#define cyl_bessel_kf boost_cyl_bessel_kf +#ifdef cyl_bessel_kl +#undef cyl_bessel_kl +#endif +#define cyl_bessel_kl boost_cyl_bessel_kl + +// [5.2.1.11] cylindrical Neumann functions BOOST_MATH_C99_THROW_SPEC; +// cylindrical Bessel functions (of the second kind): +#ifdef cyl_neumann +#undef cyl_neumann +#endif +#define cyl_neumann boost_cyl_neumann +#ifdef cyl_neumannf +#undef cyl_neumannf +#endif +#define cyl_neumannf boost_cyl_neumannf +#ifdef cyl_neumannl +#undef cyl_neumannl +#endif +#define cyl_neumannl boost_cyl_neumannl + +// [5.2.1.12] (incomplete) elliptic integral of the first kind: +#ifdef ellint_1 +#undef ellint_1 +#endif +#define ellint_1 boost_ellint_1 +#ifdef ellint_1f +#undef ellint_1f +#endif +#define ellint_1f boost_ellint_1f +#ifdef ellint_1l +#undef ellint_1l +#endif +#define ellint_1l boost_ellint_1l + +// [5.2.1.13] (incomplete) elliptic integral of the second kind: +#ifdef ellint_2 +#undef ellint_2 +#endif +#define ellint_2 boost_ellint_2 +#ifdef ellint_2f +#undef ellint_2f +#endif +#define ellint_2f boost_ellint_2f +#ifdef ellint_2l +#undef ellint_2l +#endif +#define ellint_2l boost_ellint_2l + +// [5.2.1.14] (incomplete) elliptic integral of the third kind: +#ifdef ellint_3 +#undef ellint_3 +#endif +#define ellint_3 boost_ellint_3 +#ifdef ellint_3f +#undef ellint_3f +#endif +#define ellint_3f boost_ellint_3f +#ifdef ellint_3l +#undef ellint_3l +#endif +#define ellint_3l boost_ellint_3l + +// [5.2.1.15] exponential integral: +#ifdef expint +#undef expint +#endif +#define expint boost_expint +#ifdef expintf +#undef expintf +#endif +#define expintf boost_expintf +#ifdef expintl +#undef expintl +#endif +#define expintl boost_expintl + +// [5.2.1.16] Hermite polynomials: +#ifdef hermite +#undef hermite +#endif +#define hermite boost_hermite +#ifdef hermitef +#undef hermitef +#endif +#define hermitef boost_hermitef +#ifdef hermitel +#undef hermitel +#endif +#define hermitel boost_hermitel + +#if 0 +// [5.2.1.17] hypergeometric functions: +#ifdef hyperg +#undef hyperg +#endif +#define hyperg boost_hyperg +#ifdef hypergf +#undef hypergf +#endif +#define hypergf boost_hypergf +#ifdef hypergl +#undef hypergl +#endif +#define hypergl boost_hypergl +#endif + +// [5.2.1.18] Laguerre polynomials: +#ifdef laguerre +#undef laguerre +#endif +#define laguerre boost_laguerre +#ifdef laguerref +#undef laguerref +#endif +#define laguerref boost_laguerref +#ifdef laguerrel +#undef laguerrel +#endif +#define laguerrel boost_laguerrel + +// [5.2.1.19] Legendre polynomials: +#ifdef legendre +#undef legendre +#endif +#define legendre boost_legendre +#ifdef legendref +#undef legendref +#endif +#define legendref boost_legendref +#ifdef legendrel +#undef legendrel +#endif +#define legendrel boost_legendrel + +// [5.2.1.20] Riemann zeta function: +#ifdef riemann_zeta +#undef riemann_zeta +#endif +#define riemann_zeta boost_riemann_zeta +#ifdef riemann_zetaf +#undef riemann_zetaf +#endif +#define riemann_zetaf boost_riemann_zetaf +#ifdef riemann_zetal +#undef riemann_zetal +#endif +#define riemann_zetal boost_riemann_zetal + +// [5.2.1.21] spherical Bessel functions (of the first kind): +#ifdef sph_bessel +#undef sph_bessel +#endif +#define sph_bessel boost_sph_bessel +#ifdef sph_besself +#undef sph_besself +#endif +#define sph_besself boost_sph_besself +#ifdef sph_bessell +#undef sph_bessell +#endif +#define sph_bessell boost_sph_bessell + +// [5.2.1.22] spherical associated Legendre functions: +#ifdef sph_legendre +#undef sph_legendre +#endif +#define sph_legendre boost_sph_legendre +#ifdef sph_legendref +#undef sph_legendref +#endif +#define sph_legendref boost_sph_legendref +#ifdef sph_legendrel +#undef sph_legendrel +#endif +#define sph_legendrel boost_sph_legendrel + +// [5.2.1.23] spherical Neumann functions BOOST_MATH_C99_THROW_SPEC; +// spherical Bessel functions (of the second kind): +#ifdef sph_neumann +#undef sph_neumann +#endif +#define sph_neumann boost_sph_neumann +#ifdef sph_neumannf +#undef sph_neumannf +#endif +#define sph_neumannf boost_sph_neumannf +#ifdef sph_neumannl +#undef sph_neumannl +#endif +#define sph_neumannl boost_sph_neumannl + +#endif // BOOST_MATH_C_MACROS_IPP \ No newline at end of file From ef7f0bb940ca119e96d133595b9a346aafb695d8 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 16 May 2011 17:30:52 +0000 Subject: [PATCH 82/82] Remove unnecessary macros. [SVN r71989] --- include/boost/math/tr1.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/math/tr1.hpp b/include/boost/math/tr1.hpp index 773d2257b..e057c3403 100644 --- a/include/boost/math/tr1.hpp +++ b/include/boost/math/tr1.hpp @@ -846,7 +846,7 @@ template inline typename tools::promote_args::type comp_ellint_2(T k) { return boost::math::tr1::comp_ellint_2(static_cast::type> BOOST_PREVENT_MACRO_SUBSTITUTION(k)); } -// [5.2.1.6] BOOST_PREVENT_MACRO_SUBSTITUTION(complete) elliptic integral of the third kind: +// [5.2.1.6] (complete) elliptic integral of the third kind: inline float comp_ellint_3f(float k, float nu) { return boost::math::tr1::boost_comp_ellint_3f(k, nu); } inline double comp_ellint_3(double k, double nu)