![]() |
Boost-Commit : |
From: daniel_james_at_[hidden]
Date: 2007-10-21 03:29:05
Author: danieljames
Date: 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
New Revision: 40260
URL: http://svn.boost.org/trac/boost/changeset/40260
Log:
Merge from trunk.
Added:
branches/hash/boost/thread/condition_variable.hpp
- copied unchanged from r40256, /trunk/boost/thread/condition_variable.hpp
branches/hash/boost/thread/pthread/condition_variable.hpp
- copied unchanged from r40256, /trunk/boost/thread/pthread/condition_variable.hpp
branches/hash/boost/thread/pthread/pthread_mutex_scoped_lock.hpp
- copied unchanged from r40256, /trunk/boost/thread/pthread/pthread_mutex_scoped_lock.hpp
branches/hash/boost/thread/win32/condition_variable.hpp
- copied unchanged from r40256, /trunk/boost/thread/win32/condition_variable.hpp
branches/hash/libs/math/doc/sf_and_dist/svgmath.xml
- copied unchanged from r40256, /trunk/libs/math/doc/sf_and_dist/svgmath.xml
branches/hash/libs/math/doc/sf_and_dist/xep.xml
- copied unchanged from r40256, /trunk/libs/math/doc/sf_and_dist/xep.xml
branches/hash/tools/regression/src/detail/
- copied from r40256, /trunk/tools/regression/src/detail/
branches/hash/tools/regression/src/smoke.py
- copied unchanged from r40256, /trunk/tools/regression/src/smoke.py
Removed:
branches/hash/boost/thread/detail/lock.hpp
branches/hash/boost/thread/detail/read_write_lock.hpp
branches/hash/libs/thread/src/barrier.cpp
branches/hash/libs/thread/src/condition.cpp
branches/hash/tools/regression/boost_svn_export_archive.sh
branches/hash/tools/regression/build/Jamfile.v2
branches/hash/tools/regression/compiler_status.cpp
branches/hash/tools/regression/detail/
branches/hash/tools/regression/library_status.cpp
branches/hash/tools/regression/library_test.bat
branches/hash/tools/regression/library_test.sh
branches/hash/tools/regression/library_test_all.sh
branches/hash/tools/regression/process_jam_log.cpp
branches/hash/tools/regression/regression-logs.pl
branches/hash/tools/regression/run_tests.sh
branches/hash/tools/release/user-config.jam
Properties modified:
branches/hash/ (props changed)
Text files modified:
branches/hash/boost/asio/basic_io_object.hpp | 18
branches/hash/boost/asio/basic_socket.hpp | 3
branches/hash/boost/asio/buffered_read_stream.hpp | 17
branches/hash/boost/asio/buffered_stream.hpp | 11
branches/hash/boost/asio/buffered_write_stream.hpp | 17
branches/hash/boost/asio/detail/deadline_timer_service.hpp | 2
branches/hash/boost/asio/detail/pipe_select_interrupter.hpp | 9
branches/hash/boost/asio/detail/reactive_socket_service.hpp | 50
branches/hash/boost/asio/detail/resolver_service.hpp | 4
branches/hash/boost/asio/detail/socket_ops.hpp | 14
branches/hash/boost/asio/detail/socket_types.hpp | 6
branches/hash/boost/asio/detail/strand_service.hpp | 6
branches/hash/boost/asio/detail/task_io_service.hpp | 2
branches/hash/boost/asio/detail/win_iocp_socket_service.hpp | 51
branches/hash/boost/asio/error.hpp | 34
branches/hash/boost/asio/impl/io_service.ipp | 10
branches/hash/boost/asio/impl/read.ipp | 20
branches/hash/boost/asio/impl/write.ipp | 18
branches/hash/boost/asio/io_service.hpp | 15
branches/hash/boost/asio/ssl/detail/openssl_stream_service.hpp | 16
branches/hash/boost/asio/ssl/stream.hpp | 20
branches/hash/boost/asio/strand.hpp | 18
branches/hash/boost/config/compiler/hp_acc.hpp | 4
branches/hash/boost/detail/lcast_precision.hpp | 12
branches/hash/boost/functional/hash/deque.hpp | 6
branches/hash/boost/functional/hash/hash.hpp | 10
branches/hash/boost/functional/hash/list.hpp | 6
branches/hash/boost/functional/hash/map.hpp | 6
branches/hash/boost/functional/hash/pair.hpp | 6
branches/hash/boost/functional/hash/set.hpp | 6
branches/hash/boost/functional/hash/vector.hpp | 6
branches/hash/boost/interprocess/detail/atomic.hpp | 78 ++
branches/hash/boost/intrusive/detail/hashtable_node.hpp | 1
branches/hash/boost/intrusive/detail/parent_from_member.hpp | 2
branches/hash/boost/intrusive/rbtree.hpp | 3
branches/hash/boost/intrusive/slist.hpp | 3
branches/hash/boost/lexical_cast.hpp | 4
branches/hash/boost/math/bindings/rr.hpp | 10
branches/hash/boost/math/concepts/real_concept.hpp | 16
branches/hash/boost/math/concepts/std_real_concept.hpp | 6
branches/hash/boost/math/distributions/binomial.hpp | 14
branches/hash/boost/math/distributions/cauchy.hpp | 8
branches/hash/boost/math/distributions/chi_squared.hpp | 6
branches/hash/boost/math/distributions/detail/inv_discrete_quantile.hpp | 6
branches/hash/boost/math/distributions/exponential.hpp | 10
branches/hash/boost/math/distributions/extreme_value.hpp | 10
branches/hash/boost/math/distributions/fisher_f.hpp | 10
branches/hash/boost/math/distributions/gamma.hpp | 10
branches/hash/boost/math/distributions/lognormal.hpp | 10
branches/hash/boost/math/distributions/negative_binomial.hpp | 12
branches/hash/boost/math/distributions/normal.hpp | 10
branches/hash/boost/math/distributions/poisson.hpp | 24
branches/hash/boost/math/distributions/rayleigh.hpp | 10
branches/hash/boost/math/distributions/students_t.hpp | 12
branches/hash/boost/math/distributions/uniform.hpp | 10
branches/hash/boost/math/distributions/weibull.hpp | 10
branches/hash/boost/math/policies/error_handling.hpp | 8
branches/hash/boost/math/special_functions/cbrt.hpp | 24
branches/hash/boost/math/special_functions/math_fwd.hpp | 6
branches/hash/boost/math/special_functions/sign.hpp | 11
branches/hash/boost/math/tools/config.hpp | 51
branches/hash/boost/math/tools/fraction.hpp | 88 +-
branches/hash/boost/math/tools/toms748_solve.hpp | 4
branches/hash/boost/multi_index/hashed_index.hpp | 1
branches/hash/boost/multi_index/ordered_index.hpp | 1
branches/hash/boost/range/as_literal.hpp | 15
branches/hash/boost/strong_typedef.hpp | 4
branches/hash/boost/test/detail/log_level.hpp | 2
branches/hash/boost/test/detail/unit_test_parameters.hpp | 21
branches/hash/boost/test/exception_safety.hpp | 2
branches/hash/boost/test/execution_monitor.hpp | 56 +
branches/hash/boost/test/framework.hpp | 24
branches/hash/boost/test/impl/compiler_log_formatter.ipp | 2
branches/hash/boost/test/impl/cpp_main.ipp | 11
branches/hash/boost/test/impl/exception_safety.ipp | 4
branches/hash/boost/test/impl/execution_monitor.ipp | 1225 ++++++++++++++++++++++++++-------------
branches/hash/boost/test/impl/framework.ipp | 107 +--
branches/hash/boost/test/impl/logged_expectations.ipp | 2
branches/hash/boost/test/impl/results_reporter.ipp | 12
branches/hash/boost/test/impl/test_tools.ipp | 60 -
branches/hash/boost/test/impl/unit_test_log.ipp | 17
branches/hash/boost/test/impl/unit_test_main.ipp | 43
branches/hash/boost/test/impl/unit_test_monitor.ipp | 10
branches/hash/boost/test/impl/unit_test_parameters.ipp | 94 +-
branches/hash/boost/test/impl/unit_test_suite.ipp | 136 +++-
branches/hash/boost/test/included/unit_test.hpp | 5
branches/hash/boost/test/interaction_based.hpp | 4
branches/hash/boost/test/logged_expectations.hpp | 2
branches/hash/boost/test/results_reporter.hpp | 2
branches/hash/boost/test/test_tools.hpp | 81 --
branches/hash/boost/test/unit_test.hpp | 10
branches/hash/boost/test/unit_test_suite.hpp | 21
branches/hash/boost/test/unit_test_suite_impl.hpp | 75 +-
branches/hash/boost/test/utils/fixed_mapping.hpp | 2
branches/hash/boost/test/utils/named_params.hpp | 16
branches/hash/boost/thread/barrier.hpp | 65 +
branches/hash/boost/thread/condition.hpp | 199 ------
branches/hash/boost/thread/exceptions.hpp | 12
branches/hash/boost/thread/pthread/mutex.hpp | 35
branches/hash/boost/thread/pthread/recursive_mutex.hpp | 28
branches/hash/boost/thread/pthread/shared_mutex.hpp | 7
branches/hash/boost/thread/thread.hpp | 1
branches/hash/boost/thread/thread_time.hpp | 6
branches/hash/boost/thread/win32/basic_timed_mutex.hpp | 3
branches/hash/boost/thread/win32/interlocked_read.hpp | 19
branches/hash/boost/thread/xtime.hpp | 17
branches/hash/boost/utility/value_init.hpp | 15
branches/hash/boost/xpressive/detail/core/matcher/attr_matcher.hpp | 2
branches/hash/boost/xpressive/detail/detail_fwd.hpp | 9
branches/hash/boost/xpressive/detail/utility/symbols.hpp | 3
branches/hash/boost/xpressive/proto/context/default.hpp | 2
branches/hash/boost/xpressive/proto/traits.hpp | 2
branches/hash/boost/xpressive/sub_match.hpp | 8
branches/hash/boost/xpressive/xpressive_typeof.hpp | 6
branches/hash/doc/src/boost.xml | 23
branches/hash/libs/asio/example/allocation/Jamfile.v2 | 2
branches/hash/libs/asio/example/buffers/Jamfile.v2 | 2
branches/hash/libs/asio/example/chat/Jamfile.v2 | 2
branches/hash/libs/asio/example/echo/Jamfile.v2 | 2
branches/hash/libs/asio/example/http/client/Jamfile.v2 | 2
branches/hash/libs/asio/example/http/server/Jamfile.v2 | 2
branches/hash/libs/asio/example/http/server2/Jamfile.v2 | 2
branches/hash/libs/asio/example/http/server3/Jamfile.v2 | 2
branches/hash/libs/asio/example/invocation/Jamfile.v2 | 2
branches/hash/libs/asio/example/iostreams/Jamfile.v2 | 2
branches/hash/libs/asio/example/multicast/Jamfile.v2 | 2
branches/hash/libs/asio/example/serialization/Jamfile.v2 | 2
branches/hash/libs/asio/example/services/Jamfile.v2 | 2
branches/hash/libs/asio/example/services/basic_logger.hpp | 4
branches/hash/libs/asio/example/socks4/Jamfile.v2 | 2
branches/hash/libs/asio/example/ssl/Jamfile.v2 | 2
branches/hash/libs/asio/example/timeouts/Jamfile.v2 | 2
branches/hash/libs/asio/example/timers/Jamfile.v2 | 2
branches/hash/libs/asio/example/tutorial/Jamfile.v2 | 2
branches/hash/libs/asio/test/Jamfile.v2 | 1
branches/hash/libs/asio/test/ssl/Jamfile.v2 | 2
branches/hash/libs/config/test/Jamfile.v2 | 4
branches/hash/libs/config/test/config_info.cpp | 6
branches/hash/libs/config/test/config_test.cpp | 9
branches/hash/libs/config/test/math_info.cpp | 6
branches/hash/libs/config/tools/generate.cpp | 7
branches/hash/libs/filesystem/build/Jamfile.v2 | 3
branches/hash/libs/filesystem/test/operations_test.cpp | 15
branches/hash/libs/functional/hash/doc/portability.qbk | 2
branches/hash/libs/functional/hash/doc/ref.xml | 7
branches/hash/libs/functional/hash/test/hash_number_test.cpp | 1
branches/hash/libs/graph/example/matching_example.cpp | 6
branches/hash/libs/interprocess/doc/Jamfile.v2 | 4
branches/hash/libs/interprocess/doc/interprocess.qbk | 6
branches/hash/libs/intrusive/test/itestvalue.hpp | 1
branches/hash/libs/maintainers.txt | 4
branches/hash/libs/math/doc/complex/Jamfile.v2 | 2
branches/hash/libs/math/doc/gcd/Jamfile.v2 | 2
branches/hash/libs/math/doc/html/index.html | 11
branches/hash/libs/math/doc/math.qbk | 7
branches/hash/libs/math/doc/octonion/Jamfile.v2 | 2
branches/hash/libs/math/doc/quaternion/Jamfile.v2 | 2
branches/hash/libs/math/doc/sf_and_dist/Jamfile.v2 | 2
branches/hash/libs/math/doc/sf_and_dist/background.qbk | 6
branches/hash/libs/math/doc/sf_and_dist/bessel_ik.qbk | 6
branches/hash/libs/math/doc/sf_and_dist/bessel_introduction.qbk | 6
branches/hash/libs/math/doc/sf_and_dist/bessel_jy.qbk | 10
branches/hash/libs/math/doc/sf_and_dist/bessel_spherical.qbk | 6
branches/hash/libs/math/doc/sf_and_dist/concepts.qbk | 10
branches/hash/libs/math/doc/sf_and_dist/contact_info.qbk | 8
branches/hash/libs/math/doc/sf_and_dist/distributions/bernoulli.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/distributions/binomial_example.qbk | 8
branches/hash/libs/math/doc/sf_and_dist/distributions/chi_squared_examples.qbk | 12
branches/hash/libs/math/doc/sf_and_dist/distributions/distribution_construction.qbk | 8
branches/hash/libs/math/doc/sf_and_dist/distributions/f_dist_example.qbk | 10
branches/hash/libs/math/doc/sf_and_dist/distributions/find_location_and_scale.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/distributions/gamma.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/distributions/lognormal.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/distributions/nag_library.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/distributions/negative_binomial_example.qbk | 8
branches/hash/libs/math/doc/sf_and_dist/distributions/normal_example.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/distributions/pareto.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/distributions/rayleigh.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/distributions/students_t_examples.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/distributions/triangular.qbk | 8
branches/hash/libs/math/doc/sf_and_dist/distributions/uniform.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/distributions/weibull.qbk | 6
branches/hash/libs/math/doc/sf_and_dist/ellint_legendre.qbk | 4
branches/hash/libs/math/doc/sf_and_dist/error_handling.qbk | 4
branches/hash/libs/math/doc/sf_and_dist/html/index.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html | 367 +----------
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html | 14
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html | 16
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html | 20
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html | 26
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html | 24
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html | 18
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html | 54
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html | 26
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html | 46
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html | 30
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html | 14
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html | 28
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html | 18
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html | 14
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html | 18
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html | 14
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/fpclass.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html | 18
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html | 14
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html | 20
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html | 10
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/status/compilers.html | 2
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/status/issues.html | 14
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html | 6
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html | 12
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html | 4
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html | 8
branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_ntl.html | 2
branches/hash/libs/math/doc/sf_and_dist/implementation.qbk | 337 +---------
branches/hash/libs/math/doc/sf_and_dist/overview.qbk | 7
branches/hash/libs/math/doc/sf_and_dist/performance.qbk | 17
branches/hash/libs/math/doc/sf_and_dist/references.qbk | 2
branches/hash/libs/math/doc/sf_and_dist/remez.qbk | 6
branches/hash/libs/math/doc/sf_and_dist/result_type_calc.qbk | 6
branches/hash/libs/math/doc/sf_and_dist/roadmap.qbk | 4
branches/hash/libs/math/doc/sf_and_dist/thread_safety.qbk | 7
branches/hash/libs/math/example/c_error_policy_example.cpp | 4
branches/hash/libs/math/example/error_handling_example.cpp | 8
branches/hash/libs/math/example/error_policies_example.cpp | 8
branches/hash/libs/math/example/error_policy_example.cpp | 10
branches/hash/libs/math/example/neg_binomial_sample_sizes.cpp | 12
branches/hash/libs/math/example/negative_binomial_example1.cpp | 2
branches/hash/libs/math/example/normal_misc_examples.cpp | 2
branches/hash/libs/math/example/students_t_example1.cpp | 48
branches/hash/libs/math/example/students_t_example2.cpp | 64 +-
branches/hash/libs/math/example/students_t_example3.cpp | 68 +-
branches/hash/libs/math/test/Jamfile.v2 | 6
branches/hash/libs/math/test/assoc_legendre_p.ipp | 5
branches/hash/libs/math/test/bessel_k_data.ipp | 120 +-
branches/hash/libs/math/test/bessel_k_int_data.ipp | 186 +++---
branches/hash/libs/math/test/binomial_data.ipp | 5
branches/hash/libs/math/test/binomial_large_data.ipp | 5
branches/hash/libs/math/test/binomial_quantile.ipp | 5
branches/hash/libs/math/test/cbrt_data.ipp | 5
branches/hash/libs/math/test/compile_test/sf_fpclassify_incl_test.cpp | 2
branches/hash/libs/math/test/compile_test/sf_sph_harm_incl_test.cpp | 5
branches/hash/libs/math/test/compile_test/test_compile_result.hpp | 9
branches/hash/libs/math/test/compile_test/tools_roots_inc_test.cpp | 4
branches/hash/libs/math/test/compile_test/tools_test_inc_test.cpp | 3
branches/hash/libs/math/test/digamma_data.ipp | 5
branches/hash/libs/math/test/digamma_neg_data.ipp | 5
branches/hash/libs/math/test/digamma_root_data.ipp | 5
branches/hash/libs/math/test/digamma_small_data.ipp | 5
branches/hash/libs/math/test/ellint_k_data.ipp | 5
branches/hash/libs/math/test/erf_data.ipp | 5
branches/hash/libs/math/test/erf_inv_data.ipp | 5
branches/hash/libs/math/test/erf_large_data.ipp | 5
branches/hash/libs/math/test/erfc_inv_big_data.ipp | 5
branches/hash/libs/math/test/erfc_inv_data.ipp | 5
branches/hash/libs/math/test/functor.hpp | 5
branches/hash/libs/math/test/gamma_inv_big_data.ipp | 5
branches/hash/libs/math/test/gamma_inv_data.ipp | 5
branches/hash/libs/math/test/gamma_inv_small_data.ipp | 153 ++--
branches/hash/libs/math/test/handle_test_result.hpp | 9
branches/hash/libs/math/test/hermite.ipp | 5
branches/hash/libs/math/test/ibeta_int_data.ipp | 5
branches/hash/libs/math/test/ibeta_inv_data.ipp | 249 ++++---
branches/hash/libs/math/test/ibeta_inva_data.ipp | 5
branches/hash/libs/math/test/ibeta_large_data.ipp | 660 ++++++++++----------
branches/hash/libs/math/test/igamma_big_data.ipp | 70 +-
branches/hash/libs/math/test/igamma_int_data.ipp | 5
branches/hash/libs/math/test/igamma_inva_data.ipp | 5
branches/hash/libs/math/test/laguerre2.ipp | 5
branches/hash/libs/math/test/laguerre3.ipp | 5
branches/hash/libs/math/test/legendre_p.ipp | 5
branches/hash/libs/math/test/legendre_p_large.ipp | 5
branches/hash/libs/math/test/log1p_expm1_data.ipp | 5
branches/hash/libs/math/test/negative_binomial_quantile.ipp | 5
branches/hash/libs/math/test/poisson_quantile.ipp | 5
branches/hash/libs/math/test/spherical_harmonic.ipp | 5
branches/hash/libs/math/test/test_bernoulli.cpp | 6
branches/hash/libs/math/test/test_bessel_y.cpp | 22
branches/hash/libs/math/test/test_beta_dist.cpp | 2
branches/hash/libs/math/test/test_binomial.cpp | 50
branches/hash/libs/math/test/test_cauchy.cpp | 210 +++---
branches/hash/libs/math/test/test_chi_squared.cpp | 4
branches/hash/libs/math/test/test_constants.cpp | 6
branches/hash/libs/math/test/test_dist_overloads.cpp | 14
branches/hash/libs/math/test/test_error_handling.cpp | 12
branches/hash/libs/math/test/test_exponential_dist.cpp | 48
branches/hash/libs/math/test/test_extreme_value.cpp | 46
branches/hash/libs/math/test/test_find_location.cpp | 2
branches/hash/libs/math/test/test_find_scale.cpp | 2
branches/hash/libs/math/test/test_fisher_f.cpp | 56
branches/hash/libs/math/test/test_gamma_dist.cpp | 28
branches/hash/libs/math/test/test_ibeta.cpp | 23
branches/hash/libs/math/test/test_ibeta_inv.cpp | 8
branches/hash/libs/math/test/test_ibeta_inv_ab.cpp | 2
branches/hash/libs/math/test/test_igamma_inv.cpp | 8
branches/hash/libs/math/test/test_lognormal.cpp | 36
branches/hash/libs/math/test/test_negative_binomial.cpp | 4
branches/hash/libs/math/test/test_normal.cpp | 38
branches/hash/libs/math/test/test_pareto.cpp | 30
branches/hash/libs/math/test/test_poisson.cpp | 120 +-
branches/hash/libs/math/test/test_policy.cpp | 2
branches/hash/libs/math/test/test_rational_instances/test_rational.hpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_double1.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_double2.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_double3.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_double4.cpp | 4
branches/hash/libs/math/test/test_rational_instances/test_rational_double5.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_float1.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_float2.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_float3.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_float4.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_ldouble1.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_ldouble2.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_ldouble3.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_ldouble4.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_ldouble5.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_real_concept1.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_real_concept2.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_real_concept3.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_real_concept4.cpp | 5
branches/hash/libs/math/test/test_rational_instances/test_rational_real_concept5.cpp | 5
branches/hash/libs/math/test/test_rayleigh.cpp | 70 +-
branches/hash/libs/math/test/test_students_t.cpp | 92 +-
branches/hash/libs/math/test/test_tgamma_ratio.cpp | 18
branches/hash/libs/math/test/test_uniform.cpp | 30
branches/hash/libs/math/test/test_weibull.cpp | 28
branches/hash/libs/math/test/tgamma_delta_ratio_data.ipp | 5
branches/hash/libs/math/test/tgamma_delta_ratio_int.ipp | 5
branches/hash/libs/math/test/tgamma_delta_ratio_int2.ipp | 5
branches/hash/libs/math/test/tgamma_ratio_data.ipp | 5
branches/hash/libs/math/tools/ellint_e_data.cpp | 5
branches/hash/libs/math/tools/ellint_f_data.cpp | 5
branches/hash/libs/math/tools/ellint_k_data.cpp | 5
branches/hash/libs/math/tools/factorial_tables.cpp | 4
branches/hash/libs/math/tools/generate_rational_test.cpp | 4
branches/hash/libs/math/tools/hermite_data.cpp | 4
branches/hash/libs/math/tools/laguerre_data.cpp | 4
branches/hash/libs/math/tools/legendre_data.cpp | 4
branches/hash/libs/math/tools/rational_tests.cpp | 4
branches/hash/libs/math/tools/spherical_harmonic_data.cpp | 4
branches/hash/libs/multi_index/doc/tutorial/indices.html | 4
branches/hash/libs/numeric/ublas/doc/operations_overview.htm | 34 +
branches/hash/libs/python/build/Jamfile.v2 | 10
branches/hash/libs/python/test/Jamfile.v2 | 14
branches/hash/libs/regex/build/Jamfile.v2 | 34
branches/hash/libs/regex/example/Jamfile.v2 | 8
branches/hash/libs/regex/test/Jamfile.v2 | 24
branches/hash/libs/regex/test/regress/test_anchors.cpp | 58
branches/hash/libs/regex/test/regress/test_escapes.cpp | 8
branches/hash/libs/regex/test/regress/test_replace.cpp | 2
branches/hash/libs/regex/test/regress/test_sets.cpp | 278 ++++----
branches/hash/libs/regex/test/regress/test_simple_repeats.cpp | 32
branches/hash/libs/regex/test/regress/test_tricky_cases.cpp | 176 ++--
branches/hash/libs/test/build/Jamfile.v2 | 13
branches/hash/libs/thread/build/Jamfile.v2 | 4
branches/hash/libs/utility/value_init_test.cpp | 18
branches/hash/libs/xpressive/test/test_assert.cpp | 20
branches/hash/status/explicit-failures-markup.xml | 50 +
branches/hash/tools/boostbook/setup_boostbook.py | 35
branches/hash/tools/boostbook/setup_boostbook.sh | 27
branches/hash/tools/boostbook/xsl/caramel/concept2docbook.xsl | 424 ++++++------
branches/hash/tools/boostbook/xsl/fo.xsl | 2
branches/hash/tools/boostbook/xsl/library.xsl | 2
branches/hash/tools/boostbook/xsl/type.xsl | 125 ++--
branches/hash/tools/build/v2/build/targets.jam | 23
branches/hash/tools/build/v2/doc/src/reference.xml | 3
branches/hash/tools/build/v2/doc/src/standalone.xml | 2
branches/hash/tools/build/v2/doc/src/tasks.xml | 8
branches/hash/tools/build/v2/tools/common.jam | 11
branches/hash/tools/build/v2/tools/python.jam | 6
branches/hash/tools/inspect/inspect.cpp | 2
branches/hash/tools/jam/src/build.bat | 4
branches/hash/tools/jam/src/build.jam | 4
branches/hash/tools/jam/src/builtins.c | 4
branches/hash/tools/quickbook/detail/actions.cpp | 30
branches/hash/tools/regression/src/regression.py | 394 ++++++++++--
branches/hash/tools/regression/src/run.py | 2
branches/hash/tools/regression/xsl_reports/build_results.sh | 16
branches/hash/tools/regression/xsl_reports/runner/regression.py | 3
461 files changed, 5745 insertions(+), 4819 deletions(-)
Modified: branches/hash/boost/asio/basic_io_object.hpp
==============================================================================
--- branches/hash/boost/asio/basic_io_object.hpp (original)
+++ branches/hash/boost/asio/basic_io_object.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -35,7 +35,8 @@
/// The underlying implementation type of I/O object.
typedef typename service_type::implementation_type implementation_type;
- /// Get the io_service associated with the object.
+ /// (Deprecated: use get_io_service().) Get the io_service associated with
+ /// the object.
/**
* This function may be used to obtain the io_service object that the I/O
* object uses to dispatch handlers for asynchronous operations.
@@ -45,7 +46,20 @@
*/
boost::asio::io_service& io_service()
{
- return service.io_service();
+ return service.get_io_service();
+ }
+
+ /// Get the io_service associated with the object.
+ /**
+ * This function may be used to obtain the io_service object that the I/O
+ * object uses to dispatch handlers for asynchronous operations.
+ *
+ * @return A reference to the io_service object that the I/O object will use
+ * to dispatch handlers. Ownership is not transferred to the caller.
+ */
+ boost::asio::io_service& get_io_service()
+ {
+ return service.get_io_service();
}
protected:
Modified: branches/hash/boost/asio/basic_socket.hpp
==============================================================================
--- branches/hash/boost/asio/basic_socket.hpp (original)
+++ branches/hash/boost/asio/basic_socket.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -565,7 +565,8 @@
if (this->service.open(this->implementation,
peer_endpoint.protocol(), ec))
{
- this->io_service().post(boost::asio::detail::bind_handler(handler, ec));
+ this->get_io_service().post(
+ boost::asio::detail::bind_handler(handler, ec));
return;
}
}
Modified: branches/hash/boost/asio/buffered_read_stream.hpp
==============================================================================
--- branches/hash/boost/asio/buffered_read_stream.hpp (original)
+++ branches/hash/boost/asio/buffered_read_stream.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -94,10 +94,17 @@
return next_layer_.lowest_layer();
}
- /// Get the io_service associated with the object.
+ /// (Deprecated: use get_io_service().) Get the io_service associated with
+ /// the object.
boost::asio::io_service& io_service()
{
- return next_layer_.io_service();
+ return next_layer_.get_io_service();
+ }
+
+ /// Get the io_service associated with the object.
+ boost::asio::io_service& get_io_service()
+ {
+ return next_layer_.get_io_service();
}
/// Close the stream.
@@ -208,7 +215,7 @@
buffer(
storage_.data() + previous_size,
storage_.size() - previous_size),
- fill_handler<ReadHandler>(io_service(),
+ fill_handler<ReadHandler>(get_io_service(),
storage_, previous_size, handler));
}
@@ -296,12 +303,12 @@
if (storage_.empty())
{
async_fill(read_some_handler<MutableBufferSequence, ReadHandler>(
- io_service(), storage_, buffers, handler));
+ get_io_service(), storage_, buffers, handler));
}
else
{
std::size_t length = copy(buffers);
- io_service().post(detail::bind_handler(
+ get_io_service().post(detail::bind_handler(
handler, boost::system::error_code(), length));
}
}
Modified: branches/hash/boost/asio/buffered_stream.hpp
==============================================================================
--- branches/hash/boost/asio/buffered_stream.hpp (original)
+++ branches/hash/boost/asio/buffered_stream.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -84,10 +84,17 @@
return stream_impl_.lowest_layer();
}
- /// Get the io_service associated with the object.
+ /// (Deprecated: use get_io_service().) Get the io_service associated with
+ /// the object.
boost::asio::io_service& io_service()
{
- return stream_impl_.io_service();
+ return stream_impl_.get_io_service();
+ }
+
+ /// Get the io_service associated with the object.
+ boost::asio::io_service& get_io_service()
+ {
+ return stream_impl_.get_io_service();
}
/// Close the stream.
Modified: branches/hash/boost/asio/buffered_write_stream.hpp
==============================================================================
--- branches/hash/boost/asio/buffered_write_stream.hpp (original)
+++ branches/hash/boost/asio/buffered_write_stream.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -95,10 +95,17 @@
return next_layer_.lowest_layer();
}
- /// Get the io_service associated with the object.
+ /// (Deprecated: use get_io_service().) Get the io_service associated with
+ /// the object.
boost::asio::io_service& io_service()
{
- return next_layer_.io_service();
+ return next_layer_.get_io_service();
+ }
+
+ /// Get the io_service associated with the object.
+ boost::asio::io_service& get_io_service()
+ {
+ return next_layer_.get_io_service();
}
/// Close the stream.
@@ -166,7 +173,7 @@
void async_flush(WriteHandler handler)
{
async_write(next_layer_, buffer(storage_.data(), storage_.size()),
- flush_handler<WriteHandler>(io_service(), storage_, handler));
+ flush_handler<WriteHandler>(get_io_service(), storage_, handler));
}
/// Write the given data to the stream. Returns the number of bytes written.
@@ -254,12 +261,12 @@
if (storage_.size() == storage_.capacity())
{
async_flush(write_some_handler<ConstBufferSequence, WriteHandler>(
- io_service(), storage_, buffers, handler));
+ get_io_service(), storage_, buffers, handler));
}
else
{
std::size_t bytes_copied = copy(buffers);
- io_service().post(detail::bind_handler(
+ get_io_service().post(detail::bind_handler(
handler, boost::system::error_code(), bytes_copied));
}
}
Modified: branches/hash/boost/asio/detail/deadline_timer_service.hpp
==============================================================================
--- branches/hash/boost/asio/detail/deadline_timer_service.hpp (original)
+++ branches/hash/boost/asio/detail/deadline_timer_service.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -181,7 +181,7 @@
{
impl.might_have_pending_waits = true;
scheduler_.schedule_timer(timer_queue_, impl.expiry,
- wait_handler<Handler>(this->io_service(), handler), &impl);
+ wait_handler<Handler>(this->get_io_service(), handler), &impl);
}
private:
Modified: branches/hash/boost/asio/detail/pipe_select_interrupter.hpp
==============================================================================
--- branches/hash/boost/asio/detail/pipe_select_interrupter.hpp (original)
+++ branches/hash/boost/asio/detail/pipe_select_interrupter.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -19,6 +19,8 @@
#include <boost/asio/detail/push_options.hpp>
#include <boost/config.hpp>
+#include <boost/throw_exception.hpp>
+#include <boost/system/system_error.hpp>
#include <boost/asio/detail/pop_options.hpp>
#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__)
@@ -27,6 +29,7 @@
#include <fcntl.h>
#include <boost/asio/detail/pop_options.hpp>
+#include <boost/asio/error.hpp>
#include <boost/asio/detail/socket_types.hpp>
namespace boost {
@@ -47,6 +50,12 @@
write_descriptor_ = pipe_fds[1];
::fcntl(write_descriptor_, F_SETFL, O_NONBLOCK);
}
+ else
+ {
+ boost::system::error_code ec(errno, boost::asio::error::system_category);
+ boost::system::system_error e(ec, "pipe_select_interrupter");
+ boost::throw_exception(e);
+ }
}
// Destructor.
Modified: branches/hash/boost/asio/detail/reactive_socket_service.hpp
==============================================================================
--- branches/hash/boost/asio/detail/reactive_socket_service.hpp (original)
+++ branches/hash/boost/asio/detail/reactive_socket_service.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -625,7 +625,7 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor, 0));
}
else
@@ -646,7 +646,7 @@
// A request to receive 0 bytes on a stream socket is a no-op.
if (total_buffer_size == 0)
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::system::error_code(), 0));
return;
}
@@ -659,7 +659,7 @@
boost::system::error_code ec;
if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec))
{
- this->io_service().post(bind_handler(handler, ec, 0));
+ this->get_io_service().post(bind_handler(handler, ec, 0));
return;
}
impl.flags_ |= implementation_type::internal_non_blocking;
@@ -667,7 +667,7 @@
reactor_.start_write_op(impl.socket_,
send_handler<ConstBufferSequence, Handler>(
- impl.socket_, this->io_service(), buffers, flags, handler));
+ impl.socket_, this->get_io_service(), buffers, flags, handler));
}
}
@@ -805,7 +805,7 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor, 0));
}
else
@@ -817,7 +817,7 @@
boost::system::error_code ec;
if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec))
{
- this->io_service().post(bind_handler(handler, ec, 0));
+ this->get_io_service().post(bind_handler(handler, ec, 0));
return;
}
impl.flags_ |= implementation_type::internal_non_blocking;
@@ -825,7 +825,7 @@
reactor_.start_write_op(impl.socket_,
send_to_handler<ConstBufferSequence, Handler>(
- impl.socket_, this->io_service(), buffers,
+ impl.socket_, this->get_io_service(), buffers,
destination, flags, handler));
}
}
@@ -976,7 +976,7 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor, 0));
}
else
@@ -997,7 +997,7 @@
// A request to receive 0 bytes on a stream socket is a no-op.
if (total_buffer_size == 0)
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::system::error_code(), 0));
return;
}
@@ -1010,7 +1010,7 @@
boost::system::error_code ec;
if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec))
{
- this->io_service().post(bind_handler(handler, ec, 0));
+ this->get_io_service().post(bind_handler(handler, ec, 0));
return;
}
impl.flags_ |= implementation_type::internal_non_blocking;
@@ -1020,13 +1020,13 @@
{
reactor_.start_except_op(impl.socket_,
receive_handler<MutableBufferSequence, Handler>(
- impl.socket_, this->io_service(), buffers, flags, handler));
+ impl.socket_, this->get_io_service(), buffers, flags, handler));
}
else
{
reactor_.start_read_op(impl.socket_,
receive_handler<MutableBufferSequence, Handler>(
- impl.socket_, this->io_service(), buffers, flags, handler));
+ impl.socket_, this->get_io_service(), buffers, flags, handler));
}
}
}
@@ -1182,7 +1182,7 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor, 0));
}
else
@@ -1194,7 +1194,7 @@
boost::system::error_code ec;
if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec))
{
- this->io_service().post(bind_handler(handler, ec, 0));
+ this->get_io_service().post(bind_handler(handler, ec, 0));
return;
}
impl.flags_ |= implementation_type::internal_non_blocking;
@@ -1202,7 +1202,7 @@
reactor_.start_read_op(impl.socket_,
receive_from_handler<MutableBufferSequence, Handler>(
- impl.socket_, this->io_service(), buffers,
+ impl.socket_, this->get_io_service(), buffers,
sender_endpoint, flags, handler));
}
}
@@ -1385,12 +1385,12 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor));
}
else if (peer.is_open())
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::already_open));
}
else
@@ -1402,7 +1402,7 @@
boost::system::error_code ec;
if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec))
{
- this->io_service().post(bind_handler(handler, ec));
+ this->get_io_service().post(bind_handler(handler, ec));
return;
}
impl.flags_ |= implementation_type::internal_non_blocking;
@@ -1410,7 +1410,7 @@
reactor_.start_read_op(impl.socket_,
accept_handler<Socket, Handler>(
- impl.socket_, this->io_service(),
+ impl.socket_, this->get_io_service(),
peer, impl.protocol_, peer_endpoint,
(impl.flags_ & implementation_type::enable_connection_aborted) != 0,
handler));
@@ -1516,7 +1516,7 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor));
return;
}
@@ -1528,7 +1528,7 @@
boost::system::error_code ec;
if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec))
{
- this->io_service().post(bind_handler(handler, ec));
+ this->get_io_service().post(bind_handler(handler, ec));
return;
}
impl.flags_ |= implementation_type::internal_non_blocking;
@@ -1542,7 +1542,7 @@
{
// The connect operation has finished successfully so we need to post the
// handler immediately.
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::system::error_code()));
}
else if (ec == boost::asio::error::in_progress
@@ -1552,13 +1552,13 @@
// until the socket becomes writeable.
boost::shared_ptr<bool> completed(new bool(false));
reactor_.start_write_and_except_ops(impl.socket_,
- connect_handler<Handler>(
- impl.socket_, completed, this->io_service(), reactor_, handler));
+ connect_handler<Handler>(impl.socket_, completed,
+ this->get_io_service(), reactor_, handler));
}
else
{
// The connect operation has failed, so post the handler immediately.
- this->io_service().post(bind_handler(handler, ec));
+ this->get_io_service().post(bind_handler(handler, ec));
}
}
Modified: branches/hash/boost/asio/detail/resolver_service.hpp
==============================================================================
--- branches/hash/boost/asio/detail/resolver_service.hpp (original)
+++ branches/hash/boost/asio/detail/resolver_service.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -214,7 +214,7 @@
start_work_thread();
work_io_service_->post(
resolve_query_handler<Handler>(
- impl, query, this->io_service(), handler));
+ impl, query, this->get_io_service(), handler));
}
}
@@ -310,7 +310,7 @@
start_work_thread();
work_io_service_->post(
resolve_endpoint_handler<Handler>(
- impl, endpoint, this->io_service(), handler));
+ impl, endpoint, this->get_io_service(), handler));
}
}
Modified: branches/hash/boost/asio/detail/socket_ops.hpp
==============================================================================
--- branches/hash/boost/asio/detail/socket_ops.hpp (original)
+++ branches/hash/boost/asio/detail/socket_ops.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -40,6 +40,13 @@
struct msghdr { int msg_namelen; };
#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+#if defined(__hpux)
+// HP-UX doesn't declare these functions extern "C", so they are declared again
+// here to avoid linker errors about undefined symbols.
+extern "C" char* if_indextoname(unsigned int, char*);
+extern "C" unsigned int if_nametoindex(const char*);
+#endif // defined(__hpux)
+
inline void clear_error(boost::system::error_code& ec)
{
errno = 0;
@@ -542,15 +549,8 @@
&& timeout->tv_usec > 0 && timeout->tv_usec < 1000)
timeout->tv_usec = 1000;
#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
-
-#if defined(__hpux) && defined(__HP_aCC) && !defined(_XOPEN_SOURCE_EXTENDED)
- return error_wrapper(::select(nfds,
- reinterpret_cast<int*>(readfds), reinterpret_cast<int*>(writefds),
- reinterpret_cast<int*>(exceptfds), timeout), ec);
-#else
return error_wrapper(::select(nfds, readfds,
writefds, exceptfds, timeout), ec);
-#endif
}
inline int poll_read(socket_type s, boost::system::error_code& ec)
Modified: branches/hash/boost/asio/detail/socket_types.hpp
==============================================================================
--- branches/hash/boost/asio/detail/socket_types.hpp (original)
+++ branches/hash/boost/asio/detail/socket_types.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -29,12 +29,12 @@
# if !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS)
# if defined(_MSC_VER) || defined(__BORLANDC__)
# pragma message("Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately")
-# pragma message("Assuming _WIN32_WINNT=0x0500 (i.e. Windows 2000 target)")
+# pragma message("Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target)")
# else // defined(_MSC_VER) || defined(__BORLANDC__)
# warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately
-# warning Assuming _WIN32_WINNT=0x0500 (i.e. Windows 2000 target)
+# warning Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target)
# endif // defined(_MSC_VER) || defined(__BORLANDC__)
-# define _WIN32_WINNT 0x0500
+# define _WIN32_WINNT 0x0501
# endif // !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS)
# if defined(_MSC_VER)
# if defined(_WIN32) && !defined(WIN32)
Modified: branches/hash/boost/asio/detail/strand_service.hpp
==============================================================================
--- branches/hash/boost/asio/detail/strand_service.hpp (original)
+++ branches/hash/boost/asio/detail/strand_service.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -277,7 +277,7 @@
if (impl_->first_waiter_ == 0)
impl_->last_waiter_ = 0;
lock.unlock();
- service_impl_.io_service().post(
+ service_impl_.get_io_service().post(
invoke_current_handler(service_impl_, impl_));
}
}
@@ -430,7 +430,7 @@
// This handler now has the lock, so can be dispatched immediately.
impl->current_handler_ = ptr.get();
lock.unlock();
- this->io_service().dispatch(invoke_current_handler(*this, impl));
+ this->get_io_service().dispatch(invoke_current_handler(*this, impl));
ptr.release();
}
else
@@ -470,7 +470,7 @@
// This handler now has the lock, so can be dispatched immediately.
impl->current_handler_ = ptr.get();
lock.unlock();
- this->io_service().post(invoke_current_handler(*this, impl));
+ this->get_io_service().post(invoke_current_handler(*this, impl));
ptr.release();
}
else
Modified: branches/hash/boost/asio/detail/task_io_service.hpp
==============================================================================
--- branches/hash/boost/asio/detail/task_io_service.hpp (original)
+++ branches/hash/boost/asio/detail/task_io_service.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -316,6 +316,8 @@
}
// Helper class to perform task-related operations on block exit.
+ class task_cleanup;
+ friend class task_cleanup;
class task_cleanup
{
public:
Modified: branches/hash/boost/asio/detail/win_iocp_socket_service.hpp
==============================================================================
--- branches/hash/boost/asio/detail/win_iocp_socket_service.hpp (original)
+++ branches/hash/boost/asio/detail/win_iocp_socket_service.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -768,7 +768,7 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor, 0));
return;
}
@@ -784,7 +784,7 @@
typedef handler_alloc_traits<Handler, value_type> alloc_traits;
raw_handler_ptr<alloc_traits> raw_ptr(handler);
handler_ptr<alloc_traits> ptr(raw_ptr,
- this->io_service(), impl.cancel_token_, buffers, handler);
+ this->get_io_service(), impl.cancel_token_, buffers, handler);
// Copy buffers into WSABUF array.
::WSABUF bufs[max_buffers];
@@ -804,7 +804,7 @@
// A request to receive 0 bytes on a stream socket is a no-op.
if (impl.protocol_.type() == SOCK_STREAM && total_buffer_size == 0)
{
- boost::asio::io_service::work work(this->io_service());
+ boost::asio::io_service::work work(this->get_io_service());
ptr.reset();
boost::system::error_code error;
iocp_service_.post(bind_handler(handler, error, 0));
@@ -820,7 +820,7 @@
// Check if the operation completed immediately.
if (result != 0 && last_error != WSA_IO_PENDING)
{
- boost::asio::io_service::work work(this->io_service());
+ boost::asio::io_service::work work(this->get_io_service());
ptr.reset();
boost::system::error_code ec(last_error,
boost::asio::error::system_category);
@@ -959,7 +959,7 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor, 0));
return;
}
@@ -975,7 +975,7 @@
typedef handler_alloc_traits<Handler, value_type> alloc_traits;
raw_handler_ptr<alloc_traits> raw_ptr(handler);
handler_ptr<alloc_traits> ptr(raw_ptr,
- this->io_service(), buffers, handler);
+ this->get_io_service(), buffers, handler);
// Copy buffers into WSABUF array.
::WSABUF bufs[max_buffers];
@@ -999,7 +999,7 @@
// Check if the operation completed immediately.
if (result != 0 && last_error != WSA_IO_PENDING)
{
- boost::asio::io_service::work work(this->io_service());
+ boost::asio::io_service::work work(this->get_io_service());
ptr.reset();
boost::system::error_code ec(last_error,
boost::asio::error::system_category);
@@ -1171,7 +1171,7 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor, 0));
return;
}
@@ -1187,7 +1187,7 @@
typedef handler_alloc_traits<Handler, value_type> alloc_traits;
raw_handler_ptr<alloc_traits> raw_ptr(handler);
handler_ptr<alloc_traits> ptr(raw_ptr,
- this->io_service(), impl.cancel_token_, buffers, handler);
+ this->get_io_service(), impl.cancel_token_, buffers, handler);
// Copy buffers into WSABUF array.
::WSABUF bufs[max_buffers];
@@ -1206,7 +1206,7 @@
// A request to receive 0 bytes on a stream socket is a no-op.
if (impl.protocol_.type() == SOCK_STREAM && total_buffer_size == 0)
{
- boost::asio::io_service::work work(this->io_service());
+ boost::asio::io_service::work work(this->get_io_service());
ptr.reset();
boost::system::error_code error;
iocp_service_.post(bind_handler(handler, error, 0));
@@ -1221,7 +1221,7 @@
DWORD last_error = ::WSAGetLastError();
if (result != 0 && last_error != WSA_IO_PENDING)
{
- boost::asio::io_service::work work(this->io_service());
+ boost::asio::io_service::work work(this->get_io_service());
ptr.reset();
boost::system::error_code ec(last_error,
boost::asio::error::system_category);
@@ -1391,7 +1391,7 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor, 0));
return;
}
@@ -1407,7 +1407,7 @@
typedef handler_alloc_traits<Handler, value_type> alloc_traits;
raw_handler_ptr<alloc_traits> raw_ptr(handler);
handler_ptr<alloc_traits> ptr(raw_ptr,
- this->io_service(), sender_endp, buffers, handler);
+ this->get_io_service(), sender_endp, buffers, handler);
// Copy buffers into WSABUF array.
::WSABUF bufs[max_buffers];
@@ -1430,7 +1430,7 @@
DWORD last_error = ::WSAGetLastError();
if (result != 0 && last_error != WSA_IO_PENDING)
{
- boost::asio::io_service::work work(this->io_service());
+ boost::asio::io_service::work work(this->get_io_service());
ptr.reset();
boost::system::error_code ec(last_error,
boost::asio::error::system_category);
@@ -1518,7 +1518,7 @@
peer_(peer),
protocol_(protocol),
peer_endpoint_(peer_endpoint),
- work_(io_service.io_service()),
+ work_(io_service.get_io_service()),
enable_connection_aborted_(enable_connection_aborted),
handler_(handler)
{
@@ -1707,7 +1707,7 @@
// Check whether acceptor has been initialised.
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor));
return;
}
@@ -1715,7 +1715,7 @@
// Check that peer socket has not already been opened.
if (peer.is_open())
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::already_open));
return;
}
@@ -1732,7 +1732,7 @@
impl.protocol_.type(), impl.protocol_.protocol(), ec));
if (sock.get() == invalid_socket)
{
- this->io_service().post(bind_handler(handler, ec));
+ this->get_io_service().post(bind_handler(handler, ec));
return;
}
@@ -1770,7 +1770,7 @@
}
else
{
- boost::asio::io_service::work work(this->io_service());
+ boost::asio::io_service::work work(this->get_io_service());
ptr.reset();
boost::system::error_code ec(last_error,
boost::asio::error::system_category);
@@ -1889,7 +1889,7 @@
{
if (!is_open(impl))
{
- this->io_service().post(bind_handler(handler,
+ this->get_io_service().post(bind_handler(handler,
boost::asio::error::bad_descriptor));
return;
}
@@ -1906,7 +1906,8 @@
reinterpret_cast<void**>(&reactor_), 0, 0));
if (!reactor)
{
- reactor = &(boost::asio::use_service<reactor_type>(this->io_service()));
+ reactor = &(boost::asio::use_service<reactor_type>(
+ this->get_io_service()));
interlocked_exchange_pointer(
reinterpret_cast<void**>(&reactor_), reactor);
}
@@ -1917,7 +1918,7 @@
boost::system::error_code ec;
if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec))
{
- this->io_service().post(bind_handler(handler, ec));
+ this->get_io_service().post(bind_handler(handler, ec));
return;
}
@@ -1934,7 +1935,7 @@
// The connect operation has finished successfully so we need to post the
// handler immediately.
- this->io_service().post(bind_handler(handler, ec));
+ this->get_io_service().post(bind_handler(handler, ec));
}
else if (ec == boost::asio::error::in_progress
|| ec == boost::asio::error::would_block)
@@ -1946,7 +1947,7 @@
connect_handler<Handler>(
impl.socket_,
(impl.flags_ & implementation_type::user_set_non_blocking) != 0,
- completed, this->io_service(), *reactor, handler));
+ completed, this->get_io_service(), *reactor, handler));
}
else
{
@@ -1959,7 +1960,7 @@
}
// The connect operation has failed, so post the handler immediately.
- this->io_service().post(bind_handler(handler, ec));
+ this->get_io_service().post(bind_handler(handler, ec));
}
}
Modified: branches/hash/boost/asio/error.hpp
==============================================================================
--- branches/hash/boost/asio/error.hpp (original)
+++ branches/hash/boost/asio/error.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -198,6 +198,10 @@
not_found
};
+enum ssl_errors
+{
+};
+
namespace detail {
inline const boost::system::error_category& get_system_category()
@@ -321,8 +325,6 @@
} // namespace detail
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
-
static const boost::system::error_category& system_category
= boost::asio::error::detail::get_system_category();
static const boost::system::error_category& netdb_category
@@ -334,24 +336,6 @@
static const boost::system::error_category& ssl_category
= boost::asio::error::detail::get_ssl_category();
-#else
-
-namespace
-{
- const boost::system::error_category& system_category
- = boost::asio::error::detail::get_system_category();
- const boost::system::error_category& netdb_category
- = boost::asio::error::detail::get_netdb_category();
- const boost::system::error_category& addrinfo_category
- = boost::asio::error::detail::get_addrinfo_category();
- const boost::system::error_category& misc_category
- = boost::asio::error::detail::get_misc_category();
- const boost::system::error_category& ssl_category
- = boost::asio::error::detail::get_ssl_category();
-} // namespace
-
-#endif
-
} // namespace error
} // namespace asio
@@ -377,6 +361,11 @@
static const bool value = true;
};
+template<> struct is_error_code_enum<boost::asio::error::ssl_errors>
+{
+ static const bool value = true;
+};
+
} // namespace system
namespace asio {
@@ -402,6 +391,11 @@
return boost::system::error_code(static_cast<int>(e), misc_category);
}
+inline boost::system::error_code make_error_code(ssl_errors e)
+{
+ return boost::system::error_code(static_cast<int>(e), ssl_category);
+}
+
} // namespace error
} // namespace asio
} // namespace boost
Modified: branches/hash/boost/asio/impl/io_service.ipp
==============================================================================
--- branches/hash/boost/asio/impl/io_service.ipp (original)
+++ branches/hash/boost/asio/impl/io_service.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -159,6 +159,11 @@
return io_service_;
}
+inline boost::asio::io_service& io_service::work::get_io_service()
+{
+ return io_service_;
+}
+
inline io_service::service::service(boost::asio::io_service& owner)
: owner_(owner),
type_info_(0),
@@ -175,6 +180,11 @@
return owner_;
}
+inline boost::asio::io_service& io_service::service::get_io_service()
+{
+ return owner_;
+}
+
template <typename Service>
inline Service& use_service(io_service& ios)
{
Modified: branches/hash/boost/asio/impl/read.ipp
==============================================================================
--- branches/hash/boost/asio/impl/read.ipp (original)
+++ branches/hash/boost/asio/impl/read.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -19,6 +19,7 @@
#include <boost/asio/detail/push_options.hpp>
#include <algorithm>
+#include <boost/optional.hpp>
#include <boost/asio/detail/pop_options.hpp>
#include <boost/asio/buffer.hpp>
@@ -139,23 +140,25 @@
std::size_t bytes_transferred)
{
total_transferred_ += bytes_transferred;
- buffers_.consume(bytes_transferred);
- if (completion_condition_(ec, total_transferred_)
- || buffers_.begin() == buffers_.end())
+ buffers_->consume(bytes_transferred);
+ if ((*completion_condition_)(ec, total_transferred_)
+ || buffers_->begin() == buffers_->end())
{
+ buffers_.reset();
+ completion_condition_.reset();
handler_(ec, total_transferred_);
}
else
{
- stream_.async_read_some(buffers_, *this);
+ stream_.async_read_some(*buffers_, *this);
}
}
//private:
AsyncReadStream& stream_;
- buffers_type buffers_;
+ boost::optional<buffers_type> buffers_;
std::size_t total_transferred_;
- CompletionCondition completion_condition_;
+ boost::optional<CompletionCondition> completion_condition_;
ReadHandler handler_;
};
@@ -236,8 +239,9 @@
total_transferred_ += bytes_transferred;
streambuf_.commit(bytes_transferred);
if (streambuf_.size() == streambuf_.max_size()
- || completion_condition_(ec, total_transferred_))
+ || (*completion_condition_)(ec, total_transferred_))
{
+ completion_condition_.reset();
handler_(ec, total_transferred_);
}
else
@@ -252,7 +256,7 @@
AsyncReadStream& stream_;
boost::asio::basic_streambuf<Allocator>& streambuf_;
std::size_t total_transferred_;
- CompletionCondition completion_condition_;
+ boost::optional<CompletionCondition> completion_condition_;
ReadHandler handler_;
};
Modified: branches/hash/boost/asio/impl/write.ipp
==============================================================================
--- branches/hash/boost/asio/impl/write.ipp (original)
+++ branches/hash/boost/asio/impl/write.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -17,6 +17,10 @@
#include <boost/asio/detail/push_options.hpp>
+#include <boost/asio/detail/push_options.hpp>
+#include <boost/optional.hpp>
+#include <boost/asio/detail/pop_options.hpp>
+
#include <boost/asio/buffer.hpp>
#include <boost/asio/completion_condition.hpp>
#include <boost/asio/detail/bind_handler.hpp>
@@ -125,23 +129,25 @@
std::size_t bytes_transferred)
{
total_transferred_ += bytes_transferred;
- buffers_.consume(bytes_transferred);
- if (completion_condition_(ec, total_transferred_)
- || buffers_.begin() == buffers_.end())
+ buffers_->consume(bytes_transferred);
+ if ((*completion_condition_)(ec, total_transferred_)
+ || buffers_->begin() == buffers_->end())
{
+ buffers_.reset();
+ completion_condition_.reset();
handler_(ec, total_transferred_);
}
else
{
- stream_.async_write_some(buffers_, *this);
+ stream_.async_write_some(*buffers_, *this);
}
}
//private:
AsyncWriteStream& stream_;
- buffers_type buffers_;
+ boost::optional<buffers_type> buffers_;
std::size_t total_transferred_;
- CompletionCondition completion_condition_;
+ boost::optional<CompletionCondition> completion_condition_;
WriteHandler handler_;
};
Modified: branches/hash/boost/asio/io_service.hpp
==============================================================================
--- branches/hash/boost/asio/io_service.hpp (original)
+++ branches/hash/boost/asio/io_service.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -382,7 +382,8 @@
private:
#if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
detail::winsock_init<> init_;
-#elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX)
+#elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX) \
+ || defined(__osf__)
detail::signal_init<> init_;
#endif
@@ -430,9 +431,13 @@
*/
~work();
- /// Get the io_service associated with the work.
+ /// (Deprecated: use get_io_service().) Get the io_service associated with the
+ /// work.
boost::asio::io_service& io_service();
+ /// Get the io_service associated with the work.
+ boost::asio::io_service& get_io_service();
+
private:
// Prevent assignment.
void operator=(const work& other);
@@ -455,9 +460,13 @@
: private noncopyable
{
public:
- /// Get the io_service object that owns the service.
+ /// (Deprecated: use get_io_service().) Get the io_service object that owns
+ /// the service.
boost::asio::io_service& io_service();
+ /// Get the io_service object that owns the service.
+ boost::asio::io_service& get_io_service();
+
protected:
/// Constructor.
/**
Modified: branches/hash/boost/asio/ssl/detail/openssl_stream_service.hpp
==============================================================================
--- branches/hash/boost/asio/ssl/detail/openssl_stream_service.hpp (original)
+++ branches/hash/boost/asio/ssl/detail/openssl_stream_service.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -239,7 +239,7 @@
typedef handshake_handler<Stream, Handler> connect_handler;
connect_handler* local_handler =
- new connect_handler(handler, io_service());
+ new connect_handler(handler, get_io_service());
openssl_operation<Stream>* op = new openssl_operation<Stream>
(
@@ -260,7 +260,7 @@
);
local_handler->set_operation(op);
- io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
+ get_io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
}
// Shut down SSL on the stream.
@@ -295,7 +295,7 @@
typedef shutdown_handler<Stream, Handler> disconnect_handler;
disconnect_handler* local_handler =
- new disconnect_handler(handler, io_service());
+ new disconnect_handler(handler, get_io_service());
openssl_operation<Stream>* op = new openssl_operation<Stream>
(
@@ -314,7 +314,7 @@
);
local_handler->set_operation(op);
- io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
+ get_io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
}
// Write some data to the stream.
@@ -355,7 +355,7 @@
{
typedef io_handler<Stream, Handler> send_handler;
- send_handler* local_handler = new send_handler(handler, io_service());
+ send_handler* local_handler = new send_handler(handler, get_io_service());
boost::function<int (SSL*)> send_func =
boost::bind(&::SSL_write, boost::arg<1>(),
@@ -379,7 +379,7 @@
);
local_handler->set_operation(op);
- io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
+ get_io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
}
// Read some data from the stream.
@@ -420,7 +420,7 @@
{
typedef io_handler<Stream, Handler> recv_handler;
- recv_handler* local_handler = new recv_handler(handler, io_service());
+ recv_handler* local_handler = new recv_handler(handler, get_io_service());
boost::function<int (SSL*)> recv_func =
boost::bind(&::SSL_read, boost::arg<1>(),
@@ -444,7 +444,7 @@
);
local_handler->set_operation(op);
- io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
+ get_io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
}
// Peek at the incoming data on the stream.
Modified: branches/hash/boost/asio/ssl/stream.hpp
==============================================================================
--- branches/hash/boost/asio/ssl/stream.hpp (original)
+++ branches/hash/boost/asio/ssl/stream.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -86,7 +86,7 @@
template <typename Arg, typename Context_Service>
explicit stream(Arg& arg, basic_context<Context_Service>& context)
: next_layer_(arg),
- service_(boost::asio::use_service<Service>(next_layer_.io_service())),
+ service_(boost::asio::use_service<Service>(next_layer_.get_io_service())),
impl_(service_.null())
{
service_.create(impl_, next_layer_, context);
@@ -98,7 +98,8 @@
service_.destroy(impl_, next_layer_);
}
- /// Get the io_service associated with the object.
+ /// [Deprecated: use get_io_service().] Get the io_service associated with
+ /// the object.
/**
* This function may be used to obtain the io_service object that the stream
* uses to dispatch handlers for asynchronous operations.
@@ -108,7 +109,20 @@
*/
boost::asio::io_service& io_service()
{
- return next_layer_.io_service();
+ return next_layer_.get_io_service();
+ }
+
+ /// Get the io_service associated with the object.
+ /**
+ * This function may be used to obtain the io_service object that the stream
+ * uses to dispatch handlers for asynchronous operations.
+ *
+ * @return A reference to the io_service object that stream will use to
+ * dispatch handlers. Ownership is not transferred to the caller.
+ */
+ boost::asio::io_service& get_io_service()
+ {
+ return next_layer_.get_io_service();
}
/// Get a reference to the next layer.
Modified: branches/hash/boost/asio/strand.hpp
==============================================================================
--- branches/hash/boost/asio/strand.hpp (original)
+++ branches/hash/boost/asio/strand.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -66,7 +66,8 @@
service_.destroy(impl_);
}
- /// Get the io_service associated with the strand.
+ /// (Deprecated: use get_io_service().) Get the io_service associated with
+ /// the strand.
/**
* This function may be used to obtain the io_service object that the strand
* uses to dispatch handlers for asynchronous operations.
@@ -76,7 +77,20 @@
*/
boost::asio::io_service& io_service()
{
- return service_.io_service();
+ return service_.get_io_service();
+ }
+
+ /// Get the io_service associated with the strand.
+ /**
+ * This function may be used to obtain the io_service object that the strand
+ * uses to dispatch handlers for asynchronous operations.
+ *
+ * @return A reference to the io_service object that the strand will use to
+ * dispatch handlers. Ownership is not transferred to the caller.
+ */
+ boost::asio::io_service& get_io_service()
+ {
+ return service_.get_io_service();
}
/// Request the strand to invoke the given handler.
Modified: branches/hash/boost/config/compiler/hp_acc.hpp
==============================================================================
--- branches/hash/boost/config/compiler/hp_acc.hpp (original)
+++ branches/hash/boost/config/compiler/hp_acc.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -32,6 +32,10 @@
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
#endif
+#if (__HP_aCC <= 38000)
+# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#endif
+
#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
# define BOOST_NO_TEMPLATE_TEMPLATES
Modified: branches/hash/boost/detail/lcast_precision.hpp
==============================================================================
--- branches/hash/boost/detail/lcast_precision.hpp (original)
+++ branches/hash/boost/detail/lcast_precision.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -21,7 +21,13 @@
#include <boost/type_traits/is_abstract.hpp>
#endif
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#if defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || \
+ (defined(BOOST_MSVC) && (BOOST_MSVC<1310))
+
+#define BOOST_LCAST_NO_COMPILE_TIME_PRECISION
+#endif
+
+#ifdef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
#include <boost/assert.hpp>
#else
#include <boost/static_assert.hpp>
@@ -31,7 +37,7 @@
class lcast_abstract_stub {};
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
// Calculate an argument to pass to std::ios_base::precision from
// lexical_cast. See alternative implementation for broken standard
// libraries in lcast_get_precision below. Keep them in sync, please.
@@ -92,7 +98,7 @@
template<class T>
inline std::streamsize lcast_get_precision(T* = 0)
{
-#if !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
+#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
return lcast_precision<T>::value;
#else // Follow lcast_precision algorithm at run-time:
Modified: branches/hash/boost/functional/hash/deque.hpp
==============================================================================
--- branches/hash/boost/functional/hash/deque.hpp (original)
+++ branches/hash/boost/functional/hash/deque.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -14,9 +14,11 @@
# pragma once
#endif
-#if defined(_MSC_VER)
+#if defined(__EDG__)
+#elif defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
#pragma message("Warning: boost/functional/hash/deque.hpp is deprecated, use boost/functional/hash.hpp instead.")
-#else
+#elif defined(__GNUC__) || defined(__HP_aCC) || \
+ defined(__SUNPRO_CC) || defined(__IBMCPP__)
#warning "boost/functional/hash/deque.hpp is deprecated, use boost/functional/hash.hpp instead."
#endif
Modified: branches/hash/boost/functional/hash/hash.hpp
==============================================================================
--- branches/hash/boost/functional/hash/hash.hpp (original)
+++ branches/hash/boost/functional/hash/hash.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -478,7 +478,10 @@
#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590)
return boost::hash_value(v);
#else
- return boost::hash_value<T*>(v);
+ std::size_t x = static_cast<std::size_t>(
+ reinterpret_cast<std::ptrdiff_t>(v));
+
+ return x + (x >> 3);
#endif
}
};
@@ -500,7 +503,10 @@
#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 590)
return boost::hash_value(val);
#else
- return boost::hash_value<T>(val);
+ std::size_t x = static_cast<std::size_t>(
+ reinterpret_cast<std::ptrdiff_t>(val));
+
+ return x + (x >> 3);
#endif
}
};
Modified: branches/hash/boost/functional/hash/list.hpp
==============================================================================
--- branches/hash/boost/functional/hash/list.hpp (original)
+++ branches/hash/boost/functional/hash/list.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -14,9 +14,11 @@
# pragma once
#endif
-#if defined(_MSC_VER)
+#if defined(__EDG__)
+#elif defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
#pragma message("Warning: boost/functional/hash/list.hpp is deprecated, use boost/functional/hash.hpp instead.")
-#else
+#elif defined(__GNUC__) || defined(__HP_aCC) || \
+ defined(__SUNPRO_CC) || defined(__IBMCPP__)
#warning "boost/functional/hash/list.hpp is deprecated, use boost/functional/hash.hpp instead."
#endif
Modified: branches/hash/boost/functional/hash/map.hpp
==============================================================================
--- branches/hash/boost/functional/hash/map.hpp (original)
+++ branches/hash/boost/functional/hash/map.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -14,9 +14,11 @@
# pragma once
#endif
-#if defined(_MSC_VER)
+#if defined(__EDG__)
+#elif defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
#pragma message("Warning: boost/functional/hash/map.hpp is deprecated, use boost/functional/hash.hpp instead.")
-#else
+#elif defined(__GNUC__) || defined(__HP_aCC) || \
+ defined(__SUNPRO_CC) || defined(__IBMCPP__)
#warning "boost/functional/hash/map.hpp is deprecated, use boost/functional/hash.hpp instead."
#endif
Modified: branches/hash/boost/functional/hash/pair.hpp
==============================================================================
--- branches/hash/boost/functional/hash/pair.hpp (original)
+++ branches/hash/boost/functional/hash/pair.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -14,9 +14,11 @@
# pragma once
#endif
-#if defined(_MSC_VER)
+#if defined(__EDG__)
+#elif defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
#pragma message("Warning: boost/functional/hash/pair.hpp is deprecated, use boost/functional/hash.hpp instead.")
-#else
+#elif defined(__GNUC__) || defined(__HP_aCC) || \
+ defined(__SUNPRO_CC) || defined(__IBMCPP__)
#warning "boost/functional/hash/pair.hpp is deprecated, use boost/functional/hash.hpp instead."
#endif
Modified: branches/hash/boost/functional/hash/set.hpp
==============================================================================
--- branches/hash/boost/functional/hash/set.hpp (original)
+++ branches/hash/boost/functional/hash/set.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -14,9 +14,11 @@
# pragma once
#endif
-#if defined(_MSC_VER)
+#if defined(__EDG__)
+#elif defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
#pragma message("Warning: boost/functional/hash/set.hpp is deprecated, use boost/functional/hash.hpp instead.")
-#else
+#elif defined(__GNUC__) || defined(__HP_aCC) || \
+ defined(__SUNPRO_CC) || defined(__IBMCPP__)
#warning "boost/functional/hash/set.hpp is deprecated, use boost/functional/hash.hpp instead."
#endif
Modified: branches/hash/boost/functional/hash/vector.hpp
==============================================================================
--- branches/hash/boost/functional/hash/vector.hpp (original)
+++ branches/hash/boost/functional/hash/vector.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -14,9 +14,11 @@
# pragma once
#endif
-#if defined(_MSC_VER)
+#if defined(__EDG__)
+#elif defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
#pragma message("Warning: boost/functional/hash/vector.hpp is deprecated, use boost/functional/hash.hpp instead.")
-#else
+#elif defined(__GNUC__) || defined(__HP_aCC) || \
+ defined(__SUNPRO_CC) || defined(__IBMCPP__)
#warning "boost/functional/hash/vector.hpp is deprecated, use boost/functional/hash.hpp instead."
#endif
Modified: branches/hash/boost/interprocess/detail/atomic.hpp
==============================================================================
--- branches/hash/boost/interprocess/detail/atomic.hpp (original)
+++ branches/hash/boost/interprocess/detail/atomic.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -436,8 +436,84 @@
} //namespace interprocess{
} //namespace boost{
-#else
+#elif defined(__osf__) && defined(__DECCXX)
+
+#include <machine/builtins.h>
+#include <c_asm.h>
+
+namespace boost{
+namespace interprocess{
+namespace detail{
+
+//! Atomically increment an apr_uint32_t by 1
+//! "mem": pointer to the object
+//! Returns the old value pointed to by mem
+inline boost::uint32_t atomic_inc32(volatile boost::uint32_t *mem)
+{ return __ATOMIC_INCREMENT_LONG(mem); }
+
+//! Atomically decrement an boost::uint32_t by 1
+//! "mem": pointer to the atomic value
+//! Returns false if the value becomes zero on decrement, otherwise true
+inline bool atomic_dec32(volatile boost::uint32_t *mem)
+{ return __ATOMIC_DECREMENT_LONG(mem); }
+
+// Rational for the implementation of the atomic read and write functions.
+//
+// 1. The Alpha Architecture Handbook requires that access to a byte,
+// an aligned word, an aligned longword, or an aligned quadword is
+// atomic. (See 'Alpha Architecture Handbook', version 4, chapter 5.2.2.)
+//
+// 2. The CXX User's Guide states that volatile quantities are accessed
+// with single assembler instructions, and that a compilation error
+// occurs when declaring a quantity as volatile which is not properly
+// aligned.
+
+//! Atomically read an boost::uint32_t from memory
+inline boost::uint32_t atomic_read32(volatile boost::uint32_t *mem)
+{ return *mem; }
+//! Atomically set an boost::uint32_t in memory
+//! "mem": pointer to the object
+//! "param": val value that the object will assume
+inline void atomic_write32(volatile boost::uint32_t *mem, boost::uint32_t val)
+{ *mem = val; }
+
+//! Compare an boost::uint32_t's value with "cmp".
+//! If they are the same swap the value with "with"
+//! "mem": pointer to the value
+//! "with" what to swap it with
+//! "cmp": the value to compare it to
+//! Returns the old value of *mem
+inline boost::uint32_t atomic_cas32
+ (volatile boost::uint32_t *mem, boost::uint32_t with, boost::uint32_t cmp)
+{
+ // Notes:
+ //
+ // 1. Branch prediction prefers branches, as we assume that the lock
+ // is not stolen usually, we branch forward conditionally on success
+ // of the store, and not conditionally backwards on failure.
+ //
+ // 2. The memory lock is invalidated when a branch is taken between
+ // load and store. Therefore we can only branch if we don't need a
+ // store.
+
+ return asm("10: ldl_l %v0,(%a0) ;" // load prev value from mem and lock mem
+ " cmpeq %v0,%a2,%t0 ;" // compare with given value
+ " beq %t0,20f ;" // if not equal, we're done
+ " mov %a1,%t0 ;" // load new value into scratch register
+ " stl_c %t0,(%a0) ;" // store new value to locked mem (overwriting scratch)
+ " bne %t0,20f ;" // store succeeded, we're done
+ " br 10b ;" // lock has been stolen, retry
+ "20: ",
+ mem, with, cmp);
+}
+
+} //namespace detail{
+} //namespace interprocess{
+} //namespace boost{
+
+#else
+
#error No atomic operations implemented for this platform, sorry!
#endif
Modified: branches/hash/boost/intrusive/detail/hashtable_node.hpp
==============================================================================
--- branches/hash/boost/intrusive/detail/hashtable_node.hpp (original)
+++ branches/hash/boost/intrusive/detail/hashtable_node.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -67,6 +67,7 @@
//This bucket is still in use!
BOOST_INTRUSIVE_INVARIANT_ASSERT(Slist::empty());
//Slist::clear();
+ return *this;
}
static typename Slist::difference_type get_bucket_num
Modified: branches/hash/boost/intrusive/detail/parent_from_member.hpp
==============================================================================
--- branches/hash/boost/intrusive/detail/parent_from_member.hpp (original)
+++ branches/hash/boost/intrusive/detail/parent_from_member.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
#if defined(BOOST_MSVC) || (defined (BOOST_WINDOWS) && defined(BOOST_INTEL))
//This works with gcc, msvc, ac++, ibmcpp
return *(const std::ptrdiff_t*)(void*)&ptr_to_member;
- #elif defined(__GNUC__) || defined(__HP_aCC) || defined(BOOST_INTEL) || defined (__IBMCPP__)
+ #elif defined(__GNUC__) || defined(__HP_aCC) || defined(BOOST_INTEL) || defined (__IBMCPP__) || defined (__DECCXX)
const Parent * const parent = 0;
const char *const member = reinterpret_cast<const char*>(&(parent->*ptr_to_member));
return std::size_t(member - reinterpret_cast<const char*>(parent));
Modified: branches/hash/boost/intrusive/rbtree.hpp
==============================================================================
--- branches/hash/boost/intrusive/rbtree.hpp (original)
+++ branches/hash/boost/intrusive/rbtree.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,6 +28,7 @@
#include <boost/intrusive/link_mode.hpp>
#include <cstddef>
#include <iterator>
+#include <algorithm>
namespace boost {
namespace intrusive {
@@ -418,7 +419,7 @@
//!
//! <b>Complexity</b>: Constant.
//!
- //! <b>Throws</b>: If the comparison functor's none swap call throws.
+ //! <b>Throws</b>: If the comparison functor's swap call throws.
void swap(rbtree_impl& other)
{
//This can throw
Modified: branches/hash/boost/intrusive/slist.hpp
==============================================================================
--- branches/hash/boost/intrusive/slist.hpp (original)
+++ branches/hash/boost/intrusive/slist.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -25,6 +25,7 @@
#include <boost/intrusive/link_mode.hpp>
#include <boost/intrusive/options.hpp>
#include <functional>
+#include <algorithm>
#include <cstddef>
namespace boost {
@@ -905,7 +906,7 @@
void dispose_and_assign(Disposer disposer, Iterator b, Iterator e)
{
this->clear_and_dispose(disposer);
- this->insert_after_and_dispose(before_begin(), b, e, disposer);
+ this->insert_after(before_begin(), b, e, disposer);
}
//! <b>Requires</b>: prev is an iterator to an element or x.end()/x.before_begin() in x.
Modified: branches/hash/boost/lexical_cast.hpp
==============================================================================
--- branches/hash/boost/lexical_cast.hpp (original)
+++ branches/hash/boost/lexical_cast.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -307,7 +307,7 @@
#undef BOOST_AUX_LEXICAL_CAST_DEF
#undef BOOST_AUX_LEXICAL_CAST_DEF1
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
// This #if is in sync with lcast_precision
// Helper for floating point types.
@@ -376,7 +376,7 @@
};
#endif // #ifndef DISABLE_WIDE_CHAR_SUPPORT
-#endif // #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#endif // #ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
}
namespace detail // '0' and '-' constants
Modified: branches/hash/boost/math/bindings/rr.hpp
==============================================================================
--- branches/hash/boost/math/bindings/rr.hpp (original)
+++ branches/hash/boost/math/bindings/rr.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -566,15 +566,15 @@
template<> inline boost::math::ntl::RR pi<boost::math::ntl::RR>(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(boost::math::ntl::RR))
{
- NTL::RR result;
- ComputePi(result);
- return result;
+ NTL::RR result;
+ ComputePi(result);
+ return result;
}
template<> inline boost::math::ntl::RR e<boost::math::ntl::RR>(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(boost::math::ntl::RR))
{
- NTL::RR result;
+ NTL::RR result;
result = 1;
- return exp(result);
+ return exp(result);
}
} // namespace constants
Modified: branches/hash/boost/math/concepts/real_concept.hpp
==============================================================================
--- branches/hash/boost/math/concepts/real_concept.hpp (original)
+++ branches/hash/boost/math/concepts/real_concept.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -25,10 +25,10 @@
#include <boost/math/tools/real_cast.hpp>
#include <boost/math/tools/precision.hpp>
#include <boost/math/policies/policy.hpp>
-
#include <ostream>
#include <istream>
#include <cmath>
+#include <math.h> // fmodl
#ifndef BOOST_MATH_REAL_CONCEPT_HPP
#define BOOST_MATH_REAL_CONCEPT_HPP
@@ -195,8 +195,10 @@
{ return std::atan2(a.value(), b.value()); }
inline real_concept ceil(real_concept a)
{ return std::ceil(a.value()); }
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
inline real_concept fmod(real_concept a, real_concept b)
{ return fmodl(a.value(), b.value()); }
+#endif
inline real_concept cosh(real_concept a)
{ return std::cosh(a.value()); }
inline real_concept exp(real_concept a)
@@ -257,12 +259,22 @@
// see http://sourceforge.net/tracker/index.php?func=detail&aid=1811043&group_id=146814&atid=766244
//
double v;
+ is >> v;
+ a = v;
+ return is;
+#elif defined(__SGI_STL_PORT)
+ std::string s;
+ long double d;
+ is >> s;
+ std::sscanf(s.c_str(), "%Lf", &d);
+ a = d;
+ return is;
#else
long double v;
-#endif
is >> v;
a = v;
return is;
+#endif
}
} // namespace concepts
Modified: branches/hash/boost/math/concepts/std_real_concept.hpp
==============================================================================
--- branches/hash/boost/math/concepts/std_real_concept.hpp (original)
+++ branches/hash/boost/math/concepts/std_real_concept.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -25,6 +25,7 @@
#include <ostream>
#include <istream>
#include <cmath>
+#include <math.h> // fmodl
#ifndef BOOST_MATH_STD_REAL_CONCEPT_HPP
#define BOOST_MATH_STD_REAL_CONCEPT_HPP
@@ -194,8 +195,13 @@
{ return std::atan2(a.value(), b.value()); }
inline boost::math::concepts::std_real_concept ceil(boost::math::concepts::std_real_concept a)
{ return std::ceil(a.value()); }
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
inline boost::math::concepts::std_real_concept fmod(boost::math::concepts::std_real_concept a, boost::math::concepts::std_real_concept b)
{ return fmodl(a.value(), b.value()); }
+#else
+inline boost::math::concepts::std_real_concept fmod(boost::math::concepts::std_real_concept a, boost::math::concepts::std_real_concept b)
+{ return std::fmod(a.value(), b.value()); }
+#endif
inline boost::math::concepts::std_real_concept cosh(boost::math::concepts::std_real_concept a)
{ return std::cosh(a.value()); }
inline boost::math::concepts::std_real_concept exp(boost::math::concepts::std_real_concept a)
Modified: branches/hash/boost/math/distributions/binomial.hpp
==============================================================================
--- branches/hash/boost/math/distributions/binomial.hpp (original)
+++ branches/hash/boost/math/distributions/binomial.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -231,8 +231,8 @@
}
if (p <= pow(1 - success_fraction, trials))
{ // p <= pdf(dist, 0) == cdf(dist, 0)
- return 0; // So the only reasonable result is zero.
- } // And root finder would fail otherwise.
+ return 0; // So the only reasonable result is zero.
+ } // And root finder would fail otherwise.
// Solve for quantile numerically:
//
@@ -406,9 +406,9 @@
}; // template <class RealType, class Policy> class binomial_distribution
typedef binomial_distribution<> binomial;
- // typedef binomial_distribution<double> binomial;
- // IS now included since no longer a name clash with function binomial.
- //typedef binomial_distribution<double> binomial; // Reserved name of type double.
+ // typedef binomial_distribution<double> binomial;
+ // IS now included since no longer a name clash with function binomial.
+ //typedef binomial_distribution<double> binomial; // Reserved name of type double.
template <class RealType, class Policy>
const std::pair<RealType, RealType> range(const binomial_distribution<RealType, Policy>& dist)
@@ -676,8 +676,8 @@
// 1993, vol. 40, no3-4, pp. 185-189 (4 ref.)
// Bounds for median and 50 percetage point of binomial and negative binomial distribution
- // Metrika, ISSN 0026-1335 (Print) 1435-926X (Online)
- // Volume 41, Number 1 / December, 1994, DOI 10.1007/BF01895303
+ // Metrika, ISSN 0026-1335 (Print) 1435-926X (Online)
+ // Volume 41, Number 1 / December, 1994, DOI 10.1007/BF01895303
BOOST_MATH_STD_USING // ADL of std functions.
RealType p = dist.success_fraction();
RealType n = dist.trials();
Modified: branches/hash/boost/math/distributions/cauchy.hpp
==============================================================================
--- branches/hash/boost/math/distributions/cauchy.hpp (original)
+++ branches/hash/boost/math/distributions/cauchy.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -85,7 +85,7 @@
return 0.5;
}
result = -atan(1 / mx) / constants::pi<RealType>();
- return (((x > location) != complement) ? 1 - result : result);
+ return (((x > location) != complement) ? 1 - result : result);
} // cdf
template <class RealType, class Policy>
@@ -180,14 +180,14 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const cauchy_distribution<RealType, Policy>&)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>()); // - to + infinity.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>()); // - to + infinity.
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const cauchy_distribution<RealType, Policy>& )
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
return std::pair<RealType, RealType>(-tools::max_value<RealType>(), tools::max_value<RealType>()); // - to + infinity.
}
Modified: branches/hash/boost/math/distributions/chi_squared.hpp
==============================================================================
--- branches/hash/boost/math/distributions/chi_squared.hpp (original)
+++ branches/hash/boost/math/distributions/chi_squared.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -58,14 +58,14 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const chi_squared_distribution<RealType, Policy>& /*dist*/)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>()); // 0 to + infinity.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>()); // 0 to + infinity.
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const chi_squared_distribution<RealType, Policy>& /*dist*/)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
return std::pair<RealType, RealType>(0, tools::max_value<RealType>()); // 0 to + infinity.
}
Modified: branches/hash/boost/math/distributions/detail/inv_discrete_quantile.hpp
==============================================================================
--- branches/hash/boost/math/distributions/detail/inv_discrete_quantile.hpp (original)
+++ branches/hash/boost/math/distributions/detail/inv_discrete_quantile.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -200,7 +200,7 @@
// If the root hasn't been bracketed yet, try again
// using the multiplier this time:
//
- if(sign(fb) == sign(fa))
+ if((boost::math::sign)(fb) == (boost::math::sign)(fa))
{
if(fa < 0)
{
@@ -208,7 +208,7 @@
// Zero is to the right of x2, so walk upwards
// until we find it:
//
- while(sign(fb) == sign(fa))
+ while((boost::math::sign)(fb) == (boost::math::sign)(fa))
{
if(count == 0)
policies::raise_evaluation_error(function, "Unable to bracket root, last nearest value was %1%", b, policy_type());
@@ -228,7 +228,7 @@
// Zero is to the left of a, so walk downwards
// until we find it:
//
- while(sign(fb) == sign(fa))
+ while((boost::math::sign)(fb) == (boost::math::sign)(fa))
{
if(fabs(a) < tools::min_value<value_type>())
{
Modified: branches/hash/boost/math/distributions/exponential.hpp
==============================================================================
--- branches/hash/boost/math/distributions/exponential.hpp (original)
+++ branches/hash/boost/math/distributions/exponential.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -80,16 +80,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const exponential_distribution<RealType, Policy>& /*dist*/)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(static_cast<RealType>(0), max_value<RealType>());
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(static_cast<RealType>(0), max_value<RealType>());
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const exponential_distribution<RealType, Policy>& /*dist*/)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>());
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>());
}
template <class RealType, class Policy>
Modified: branches/hash/boost/math/distributions/extreme_value.hpp
==============================================================================
--- branches/hash/boost/math/distributions/extreme_value.hpp (original)
+++ branches/hash/boost/math/distributions/extreme_value.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -75,16 +75,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const extreme_value_distribution<RealType, Policy>& /*dist*/)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>());
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>());
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const extreme_value_distribution<RealType, Policy>& /*dist*/)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>());
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>());
}
template <class RealType, class Policy>
Modified: branches/hash/boost/math/distributions/fisher_f.hpp
==============================================================================
--- branches/hash/boost/math/distributions/fisher_f.hpp (original)
+++ branches/hash/boost/math/distributions/fisher_f.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -57,16 +57,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const fisher_f_distribution<RealType, Policy>& /*dist*/)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>());
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>());
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const fisher_f_distribution<RealType, Policy>& /*dist*/)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>());
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>());
}
template <class RealType, class Policy>
Modified: branches/hash/boost/math/distributions/gamma.hpp
==============================================================================
--- branches/hash/boost/math/distributions/gamma.hpp (original)
+++ branches/hash/boost/math/distributions/gamma.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -102,16 +102,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const gamma_distribution<RealType, Policy>& /* dist */)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>());
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>());
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const gamma_distribution<RealType, Policy>& /* dist */)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>());
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>());
}
template <class RealType, class Policy>
Modified: branches/hash/boost/math/distributions/lognormal.hpp
==============================================================================
--- branches/hash/boost/math/distributions/lognormal.hpp (original)
+++ branches/hash/boost/math/distributions/lognormal.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -77,16 +77,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const lognormal_distribution<RealType, Policy>& /*dist*/)
{ // Range of permissible values for random variable x is >0 to +infinity.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>());
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>());
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const lognormal_distribution<RealType, Policy>& /*dist*/)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>());
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>());
}
template <class RealType, class Policy>
Modified: branches/hash/boost/math/distributions/negative_binomial.hpp
==============================================================================
--- branches/hash/boost/math/distributions/negative_binomial.hpp (original)
+++ branches/hash/boost/math/distributions/negative_binomial.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -259,16 +259,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const negative_binomial_distribution<RealType, Policy>& /* dist */)
{ // Range of permissible values for random variable k.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>()); // max_integer?
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>()); // max_integer?
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const negative_binomial_distribution<RealType, Policy>& /* dist */)
{ // Range of supported values for random variable k.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>()); // max_integer?
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>()); // max_integer?
}
template <class RealType, class Policy>
@@ -458,7 +458,7 @@
}
if (P <= pow(dist.success_fraction(), dist.successes()))
{ // p <= pdf(dist, 0) == cdf(dist, 0)
- return 0;
+ return 0;
}
/*
// Calculate quantile of negative_binomial using the inverse incomplete beta function.
Modified: branches/hash/boost/math/distributions/normal.hpp
==============================================================================
--- branches/hash/boost/math/distributions/normal.hpp (original)
+++ branches/hash/boost/math/distributions/normal.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -74,17 +74,17 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const normal_distribution<RealType, Policy>& /*dist*/)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>()); // - to + max value.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>()); // - to + max value.
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const normal_distribution<RealType, Policy>& /*dist*/)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>()); // - to + max value.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>()); // - to + max value.
}
template <class RealType, class Policy>
Modified: branches/hash/boost/math/distributions/poisson.hpp
==============================================================================
--- branches/hash/boost/math/distributions/poisson.hpp (original)
+++ branches/hash/boost/math/distributions/poisson.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -233,16 +233,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const poisson_distribution<RealType, Policy>& /* dist */)
{ // Range of permissible values for random variable k.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>()); // Max integer?
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>()); // Max integer?
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const poisson_distribution<RealType, Policy>& /* dist */)
{ // Range of supported values for random variable k.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>());
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>());
}
template <class RealType, class Policy>
@@ -480,10 +480,10 @@
BOOST_MATH_STD_USING // ADL of std functions.
// if(p == 0) NOT necessarily zero!
// Not necessarily any special value of k because is unlimited.
- if (p <= exp(-dist.mean()))
- { // if p <= cdf for 0 events (== pdf for 0 events), then quantile must be zero.
- return 0;
- }
+ if (p <= exp(-dist.mean()))
+ { // if p <= cdf for 0 events (== pdf for 0 events), then quantile must be zero.
+ return 0;
+ }
return gamma_q_inva(dist.mean(), p, Policy()) - 1;
*/
typedef typename Policy::discrete_quantile_type discrete_type;
@@ -549,9 +549,9 @@
}
/*
if (-q <= boost::math::expm1(-dist.mean()))
- { // if q <= cdf(complement for 0 events, then quantile must be zero.
- return 0;
- }
+ { // if q <= cdf(complement for 0 events, then quantile must be zero.
+ return 0;
+ }
return gamma_p_inva(dist.mean(), q, Policy()) -1;
*/
typedef typename Policy::discrete_quantile_type discrete_type;
Modified: branches/hash/boost/math/distributions/rayleigh.hpp
==============================================================================
--- branches/hash/boost/math/distributions/rayleigh.hpp (original)
+++ branches/hash/boost/math/distributions/rayleigh.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -80,16 +80,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const rayleigh_distribution<RealType, Policy>& /*dist*/)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(static_cast<RealType>(1), max_value<RealType>());
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(static_cast<RealType>(1), max_value<RealType>());
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const rayleigh_distribution<RealType, Policy>& /*dist*/)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>((1), max_value<RealType>());
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>((1), max_value<RealType>());
}
template <class RealType, class Policy>
Modified: branches/hash/boost/math/distributions/students_t.hpp
==============================================================================
--- branches/hash/boost/math/distributions/students_t.hpp (original)
+++ branches/hash/boost/math/distributions/students_t.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -63,16 +63,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const students_t_distribution<RealType, Policy>& /*dist*/)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>());
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>());
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const students_t_distribution<RealType, Policy>& /*dist*/)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>());
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>());
}
template <class RealType, class Policy>
@@ -146,7 +146,7 @@
RealType z = degrees_of_freedom / (degrees_of_freedom + t2);
probability = ibeta(degrees_of_freedom / 2, static_cast<RealType>(0.5), z, Policy()) / 2;
}
- return (t > 0 ? 1 - probability : probability);
+ return (t > 0 ? 1 - probability : probability);
} // cdf
template <class RealType, class Policy>
Modified: branches/hash/boost/math/distributions/uniform.hpp
==============================================================================
--- branches/hash/boost/math/distributions/uniform.hpp (original)
+++ branches/hash/boost/math/distributions/uniform.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -140,16 +140,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const uniform_distribution<RealType, Policy>& /* dist */)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>()); // - to + infinity
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>()); // - to + infinity
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const uniform_distribution<RealType, Policy>& dist)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(dist.lower(), dist.upper());
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(dist.lower(), dist.upper());
}
template <class RealType, class Policy>
Modified: branches/hash/boost/math/distributions/weibull.hpp
==============================================================================
--- branches/hash/boost/math/distributions/weibull.hpp (original)
+++ branches/hash/boost/math/distributions/weibull.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -102,16 +102,16 @@
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> range(const weibull_distribution<RealType, Policy>& /*dist*/)
{ // Range of permissible values for random variable x.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>());
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>());
}
template <class RealType, class Policy>
inline const std::pair<RealType, RealType> support(const weibull_distribution<RealType, Policy>& /*dist*/)
{ // Range of supported values for random variable x.
- // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
- using boost::math::tools::max_value;
- return std::pair<RealType, RealType>(0, max_value<RealType>());
+ // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
+ using boost::math::tools::max_value;
+ return std::pair<RealType, RealType>(0, max_value<RealType>());
}
template <class RealType, class Policy>
Modified: branches/hash/boost/math/policies/error_handling.hpp
==============================================================================
--- branches/hash/boost/math/policies/error_handling.hpp (original)
+++ branches/hash/boost/math/policies/error_handling.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -62,9 +62,9 @@
void raise_error(const char* function, const char* message)
{
if(function == 0)
- function = "Unknown function";
+ function = "Unknown function";
if(message == 0)
- message = "Cause unknown";
+ message = "Cause unknown";
std::string msg("Error in function ");
msg += (boost::format(function) % typeid(T).name()).str();
@@ -79,9 +79,9 @@
void raise_error(const char* function, const char* message, const T& val)
{
if(function == 0)
- function = "Unknown function";
+ function = "Unknown function";
if(message == 0)
- message = "Cause unknown";
+ message = "Cause unknown";
std::string msg("Error in function ");
msg += (boost::format(function) % typeid(T).name()).str();
Modified: branches/hash/boost/math/special_functions/cbrt.hpp
==============================================================================
--- branches/hash/boost/math/special_functions/cbrt.hpp (original)
+++ branches/hash/boost/math/special_functions/cbrt.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -14,18 +14,18 @@
namespace detail
{
- template <class T>
- struct cbrt_functor
- {
- cbrt_functor(T const& target) : a(target){}
- std::tr1::tuple<T, T, T> operator()(T const& z)
- {
- T sqr = z * z;
- return std::tr1::make_tuple(sqr * z - a, 3 * sqr, 6 * z);
- }
- private:
- T a;
- };
+ template <class T>
+ struct cbrt_functor
+ {
+ cbrt_functor(T const& target) : a(target){}
+ std::tr1::tuple<T, T, T> operator()(T const& z)
+ {
+ T sqr = z * z;
+ return std::tr1::make_tuple(sqr * z - a, 3 * sqr, 6 * z);
+ }
+ private:
+ T a;
+ };
template <class T, class Policy>
T cbrt_imp(T z, const Policy&)
Modified: branches/hash/boost/math/special_functions/math_fwd.hpp
==============================================================================
--- branches/hash/boost/math/special_functions/math_fwd.hpp (original)
+++ branches/hash/boost/math/special_functions/math_fwd.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,8 +28,8 @@
namespace boost
{
- namespace math
- { // Math functions (in roughly alphabetic order).
+ namespace math
+ { // Math functions (in roughly alphabetic order).
// Beta functions.
template <class RT1, class RT2>
@@ -621,7 +621,7 @@
template <class T>
bool isnormal BOOST_NO_MACRO_EXPAND(T t);
- } // namespace math
+ } // namespace math
} // namespace boost
#define BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS(Policy)\
Modified: branches/hash/boost/math/special_functions/sign.hpp
==============================================================================
--- branches/hash/boost/math/special_functions/sign.hpp (original)
+++ branches/hash/boost/math/special_functions/sign.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -6,26 +6,27 @@
#ifndef BOOST_MATH_TOOLS_SIGN_HPP
#define BOOST_MATH_TOOLS_SIGN_HPP
-#include <cmath>
-#include <cstdlib>
+#include <boost/math/tools/config.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
namespace boost{ namespace math{
template <class T>
-inline int sign(const T& z)
+inline int sign BOOST_NO_MACRO_EXPAND(const T& z)
{
return (z == 0) ? 0 : (z < 0) ? -1 : 1;
}
template <class T>
-inline int signbit(const T& z)
+inline int signbit BOOST_NO_MACRO_EXPAND(const T& z)
{
return (z < 0) ? 1 : 0;
}
template <class T>
-inline T copysign(const T& x, const T& y)
+inline T copysign BOOST_NO_MACRO_EXPAND(const T& x, const T& y)
{
+ BOOST_MATH_STD_USING
return fabs(x) * boost::math::sign(y);
}
Modified: branches/hash/boost/math/tools/config.hpp
==============================================================================
--- branches/hash/boost/math/tools/config.hpp (original)
+++ branches/hash/boost/math/tools/config.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -18,7 +18,7 @@
#include <boost/math/tools/user.hpp>
-#if defined(__CYGWIN__) || defined(__FreeBSD__)
+#if defined(__CYGWIN__) || defined(__FreeBSD__) || defined(_PA_RISC1_1)
# define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
#endif
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
@@ -76,6 +76,13 @@
#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590)
+// Sun's compiler emits a hard error if a constant underflows:
+# define BOOST_MATH_SMALL_CONSTANT(x) 0
+#else
+# define BOOST_MATH_SMALL_CONSTANT(x) x
+#endif
+
#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
//
@@ -176,30 +183,30 @@
#ifdef __linux__
- #include <fenv.h>
+ #include <fenv.h>
- namespace boost{ namespace math{
- namespace detail
- {
- struct fpu_guard
- {
- fpu_guard()
- {
- fegetexceptflag(&m_flags, FE_ALL_EXCEPT);
- feclearexcept(FE_ALL_EXCEPT);
- }
- ~fpu_guard()
- {
- fesetexceptflag(&m_flags, FE_ALL_EXCEPT);
- }
- private:
- fexcept_t m_flags;
- };
+ namespace boost{ namespace math{
+ namespace detail
+ {
+ struct fpu_guard
+ {
+ fpu_guard()
+ {
+ fegetexceptflag(&m_flags, FE_ALL_EXCEPT);
+ feclearexcept(FE_ALL_EXCEPT);
+ }
+ ~fpu_guard()
+ {
+ fesetexceptflag(&m_flags, FE_ALL_EXCEPT);
+ }
+ private:
+ fexcept_t m_flags;
+ };
- } // namespace detail
- }} // namespaces
+ } // namespace detail
+ }} // namespaces
- #define BOOST_FPU_EXCEPTION_GUARD boost::math::detail::fpu_guard local_guard_object;
+ #define BOOST_FPU_EXCEPTION_GUARD boost::math::detail::fpu_guard local_guard_object;
#else // All other platforms.
#define BOOST_FPU_EXCEPTION_GUARD
#endif
Modified: branches/hash/boost/math/tools/fraction.hpp
==============================================================================
--- branches/hash/boost/math/tools/fraction.hpp (original)
+++ branches/hash/boost/math/tools/fraction.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -17,52 +17,52 @@
namespace detail
{
- template <class T>
- struct is_pair : public boost::false_type{};
+ template <class T>
+ struct is_pair : public boost::false_type{};
- template <class T, class U>
- struct is_pair<std::pair<T,U> > : public boost::true_type{};
+ template <class T, class U>
+ struct is_pair<std::pair<T,U> > : public boost::true_type{};
- template <class Gen>
- struct fraction_traits_simple
- {
- typedef typename Gen::result_type result_type;
- typedef typename Gen::result_type value_type;
-
- static result_type a(const value_type& v)
- {
- return 1;
- }
- static result_type b(const value_type& v)
- {
- return v;
- }
- };
-
- template <class Gen>
- struct fraction_traits_pair
- {
- typedef typename Gen::result_type value_type;
- typedef typename value_type::first_type result_type;
-
- static result_type a(const value_type& v)
- {
- return v.first;
- }
- static result_type b(const value_type& v)
- {
- return v.second;
- }
- };
-
- template <class Gen>
- struct fraction_traits
- : public boost::mpl::if_c<
- is_pair<typename Gen::result_type>::value,
- fraction_traits_pair<Gen>,
- fraction_traits_simple<Gen> >::type
- {
- };
+ template <class Gen>
+ struct fraction_traits_simple
+ {
+ typedef typename Gen::result_type result_type;
+ typedef typename Gen::result_type value_type;
+
+ static result_type a(const value_type& v)
+ {
+ return 1;
+ }
+ static result_type b(const value_type& v)
+ {
+ return v;
+ }
+ };
+
+ template <class Gen>
+ struct fraction_traits_pair
+ {
+ typedef typename Gen::result_type value_type;
+ typedef typename value_type::first_type result_type;
+
+ static result_type a(const value_type& v)
+ {
+ return v.first;
+ }
+ static result_type b(const value_type& v)
+ {
+ return v.second;
+ }
+ };
+
+ template <class Gen>
+ struct fraction_traits
+ : public boost::mpl::if_c<
+ is_pair<typename Gen::result_type>::value,
+ fraction_traits_pair<Gen>,
+ fraction_traits_simple<Gen> >::type
+ {
+ };
} // namespace detail
Modified: branches/hash/boost/math/tools/toms748_solve.hpp
==============================================================================
--- branches/hash/boost/math/tools/toms748_solve.hpp (original)
+++ branches/hash/boost/math/tools/toms748_solve.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -494,7 +494,7 @@
// Zero is to the right of b, so walk upwards
// until we find it:
//
- while(sign(fb) == sign(fa))
+ while((boost::math::sign)(fb) == (boost::math::sign)(fa))
{
if(count == 0)
policies::raise_evaluation_error(function, "Unable to bracket root, last nearest value was %1%", b, pol);
@@ -521,7 +521,7 @@
// Zero is to the left of a, so walk downwards
// until we find it:
//
- while(sign(fb) == sign(fa))
+ while((boost::math::sign)(fb) == (boost::math::sign)(fa))
{
if(fabs(a) < tools::min_value<T>())
{
Modified: branches/hash/boost/multi_index/hashed_index.hpp
==============================================================================
--- branches/hash/boost/multi_index/hashed_index.hpp (original)
+++ branches/hash/boost/multi_index/hashed_index.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -25,6 +25,7 @@
#include <boost/multi_index/detail/auto_space.hpp>
#include <boost/multi_index/detail/bucket_array.hpp>
#include <boost/multi_index/detail/hash_index_iterator.hpp>
+#include <boost/multi_index/detail/index_node_base.hpp>
#include <boost/multi_index/detail/modify_key_adaptor.hpp>
#include <boost/multi_index/detail/safe_ctr_proxy.hpp>
#include <boost/multi_index/detail/safe_mode.hpp>
Modified: branches/hash/boost/multi_index/ordered_index.hpp
==============================================================================
--- branches/hash/boost/multi_index/ordered_index.hpp (original)
+++ branches/hash/boost/multi_index/ordered_index.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -50,6 +50,7 @@
#include <boost/mpl/push_front.hpp>
#include <boost/multi_index/detail/access_specifier.hpp>
#include <boost/multi_index/detail/bidir_node_iterator.hpp>
+#include <boost/multi_index/detail/index_node_base.hpp>
#include <boost/multi_index/detail/modify_key_adaptor.hpp>
#include <boost/multi_index/detail/ord_index_node.hpp>
#include <boost/multi_index/detail/ord_index_ops.hpp>
Modified: branches/hash/boost/range/as_literal.hpp
==============================================================================
--- branches/hash/boost/range/as_literal.hpp (original)
+++ branches/hash/boost/range/as_literal.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -21,6 +21,9 @@
#include <boost/range/iterator_range.hpp>
#include <boost/range/detail/str_types.hpp>
+
+#include <boost/detail/workaround.hpp>
+
#include <cstring>
#include <cwchar>
@@ -104,15 +107,23 @@
template< class Char, std::size_t sz >
inline iterator_range<Char*> as_literal( Char (&arr)[sz] )
{
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) && __BORLANDC__ >= 0x590
+ return boost::make_iterator_range<Char*>( arr, arr + sz - 1 );
+#else
return boost::make_iterator_range( arr, arr + sz - 1 );
+#endif
}
template< class Char, std::size_t sz >
- inline iterator_range<const Char*> as_literal( const Char (&arr)[sz] )
+ inline iterator_range<const Char*> as_literal( const Char (&arr)[sz] )
{
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) && __BORLANDC__ >= 0x590
+ return boost::make_iterator_range<const Char*>( arr, arr + sz - 1 );
+#else
return boost::make_iterator_range( arr, arr + sz - 1 );
- }
+#endif
+ }
}
#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
Modified: branches/hash/boost/strong_typedef.hpp
==============================================================================
--- branches/hash/boost/strong_typedef.hpp (original)
+++ branches/hash/boost/strong_typedef.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -25,7 +25,7 @@
#include <boost/config.hpp>
#include <boost/operators.hpp>
-#if !defined(__BORLANDC__)
+#if !defined(__BORLANDC__) || __BORLANDC__ >= 0x590
#define BOOST_STRONG_TYPEDEF(T, D) \
struct D \
: boost::totally_ordered1< D \
@@ -61,6 +61,6 @@
bool operator==(const D & rhs) const { return t == rhs.t; } \
bool operator<(const D & rhs) const { return t < rhs.t; } \
};
-#endif // !defined(__BORLANDC)
+#endif // !defined(__BORLANDC) || __BORLANDC__ >= 0x590
#endif // BOOST_STRONG_TYPEDEF_HPP
Modified: branches/hash/boost/test/detail/log_level.hpp
==============================================================================
--- branches/hash/boost/test/detail/log_level.hpp (original)
+++ branches/hash/boost/test/detail/log_level.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -26,7 +26,7 @@
enum log_level {
invalid_log_level = -1,
log_successful_tests = 0,
- log_test_suites = 1,
+ log_test_units = 1,
log_messages = 2,
log_warnings = 3,
log_all_errors = 4, // reported by unit test macros
Modified: branches/hash/boost/test/detail/unit_test_parameters.hpp
==============================================================================
--- branches/hash/boost/test/detail/unit_test_parameters.hpp (original)
+++ branches/hash/boost/test/detail/unit_test_parameters.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -43,6 +43,9 @@
bool BOOST_TEST_DECL show_build_info();
bool BOOST_TEST_DECL show_progress();
bool BOOST_TEST_DECL catch_sys_errors();
+bool BOOST_TEST_DECL auto_start_dbg();
+bool BOOST_TEST_DECL use_alt_stack();
+bool BOOST_TEST_DECL detect_fp_exceptions();
output_format BOOST_TEST_DECL report_format();
output_format BOOST_TEST_DECL log_format();
long BOOST_TEST_DECL detect_memory_leaks();
@@ -62,24 +65,6 @@
// Revision History :
//
// $Log$
-// Revision 1.24 2006/11/13 20:03:48 jhunold
-// Added missing export declarations.
-//
-// Revision 1.23 2006/01/30 07:29:49 rogeeff
-// split memory leaks detection API in two to get more functions with better defined roles
-//
-// Revision 1.22 2005/12/14 04:58:30 rogeeff
-// new parameter --break_exec_path introduced
-//
-// Revision 1.21 2005/04/05 06:11:37 rogeeff
-// memory leak allocation point detection\nextra help with _WIN32_WINNT
-//
-// Revision 1.20 2005/02/21 10:18:30 rogeeff
-// random cla support
-//
-// Revision 1.19 2005/02/20 08:27:06 rogeeff
-// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
-//
// ***************************************************************************
#endif // BOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
Modified: branches/hash/boost/test/exception_safety.hpp
==============================================================================
--- branches/hash/boost/test/exception_safety.hpp (original)
+++ branches/hash/boost/test/exception_safety.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -49,7 +49,7 @@
boost::unit_test::make_test_case( \
&BOOST_AUTO_TC_INVOKER( test_name ), #test_name ), \
boost::unit_test::ut_detail::auto_tc_exp_fail< \
- BOOST_AUTO_TC_UNIQUE_ID( test_name )>::value ); \
+ BOOST_AUTO_TC_UNIQUE_ID( test_name )>::instance()->value() ); \
\
void test_name::test_method() \
/**/
Modified: branches/hash/boost/test/execution_monitor.hpp
==============================================================================
--- branches/hash/boost/test/execution_monitor.hpp (original)
+++ branches/hash/boost/test/execution_monitor.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -36,9 +36,11 @@
#include <boost/test/detail/global_typedef.hpp>
#include <boost/test/detail/fwd_decl.hpp>
#include <boost/test/utils/callback.hpp>
+#include <boost/test/utils/class_properties.hpp>
// Boost
#include <boost/scoped_ptr.hpp>
+#include <boost/scoped_array.hpp>
#include <boost/type.hpp>
#include <boost/cstdlib.hpp>
@@ -131,14 +133,36 @@
class BOOST_TEST_DECL execution_monitor {
public:
- int execute( unit_test::callback0<int> const& F, bool catch_system_errors = true, int timeout = 0 );
- // The catch_system_errors parameter specifies whether the monitor should
+ // Constructor
+ execution_monitor()
+ : p_catch_system_errors( true )
+ , p_auto_start_dbg( false )
+ , p_timeout( 0 )
+ , p_use_alt_stack( true )
+ , p_detect_fp_exceptions( false )
+ {}
+
+ // Public properties
+
+ // The p_catch_system_errors parameter specifies whether the monitor should
// try to catch system errors/exceptions that would cause program to crash
// in regular case
- // The timeout argument specifies the seconds that elapse before
+ unit_test::readwrite_property<bool> p_catch_system_errors;
+ // The p_auto_start_dbg parameter specifies whether the monitor should
+ // try to attach debugger in case of caught system error
+ unit_test::readwrite_property<bool> p_auto_start_dbg;
+ // The p_timeout parameter specifies the seconds that elapse before
// a timer_error occurs. May be ignored on some platforms.
- //
- // Returns: Value returned by function().
+ unit_test::readwrite_property<int> p_timeout;
+ // The p_use_alt_stack parameter specifies whether the monitor should
+ // use alternative stack for the signal catching
+ unit_test::readwrite_property<bool> p_use_alt_stack;
+ // The p_detect_fp_exceptions parameter specifies whether the monitor should
+ // try to detect hardware floating point exceptions
+ unit_test::readwrite_property<bool> p_detect_fp_exceptions;
+
+ int execute( unit_test::callback0<int> const& F );
+ // Returns: Value returned by function call F().
//
// Effects: Calls executes supplied function F inside a try/catch block which also may
// include other unspecified platform dependent error detection code.
@@ -154,10 +178,11 @@
private:
// implementation helpers
- int catch_signals( unit_test::callback0<int> const& F, bool catch_system_errors, int timeout );
+ int catch_signals( unit_test::callback0<int> const& F );
// Data members
boost::scoped_ptr<detail::translate_exception_base> m_custom_translators;
+ boost::scoped_array<char> m_alt_stack;
}; // execution_monitor
namespace detail {
@@ -200,19 +225,24 @@
}
// ************************************************************************** //
-// ************** detect_memory_leaks ************** //
+// ************** execution_aborted ************** //
// ************************************************************************** //
-// turn on system memory leak detection
-void BOOST_TEST_DECL detect_memory_leaks( bool on_off );
-// break program execution on mem_alloc_order_num's allocation
-void BOOST_TEST_DECL break_memory_alloc( long mem_alloc_order_num );
+struct execution_aborted {};
// ************************************************************************** //
-// ************** execution_aborted ************** //
+// ************** system_error ************** //
// ************************************************************************** //
-struct BOOST_TEST_DECL execution_aborted {};
+class system_error {
+public:
+ // Constructor
+ system_error();
+
+ unit_test::readonly_property<long> p_errno;
+};
+
+#define BOOST_TEST_SYS_ASSERT( exp ) if( (exp) ) ; else throw ::boost::system_error()
} // namespace boost
Modified: branches/hash/boost/test/framework.hpp
==============================================================================
--- branches/hash/boost/test/framework.hpp (original)
+++ branches/hash/boost/test/framework.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -32,13 +32,23 @@
namespace unit_test {
// ************************************************************************** //
+// ************** init_unit_test_func ************** //
+// ************************************************************************** //
+
+#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
+typedef bool (*init_unit_test_func)();
+#else
+typedef test_suite* (*init_unit_test_func)( int, char* [] );
+#endif
+
+// ************************************************************************** //
// ************** framework ************** //
// ************************************************************************** //
namespace framework {
// initialization
-BOOST_TEST_DECL void init( int argc, char* argv[] );
+BOOST_TEST_DECL void init( init_unit_test_func init_func, int argc, char* argv[] );
// mutation access methods
BOOST_TEST_DECL void register_test_unit( test_case* tc );
@@ -54,17 +64,17 @@
BOOST_TEST_DECL test_case const& current_test_case();
#if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530) )
template<typename UnitType>
-UnitType const& get( test_unit_id id )
+UnitType& get( test_unit_id id )
{
- return static_cast<UnitType const&>( get( id, (test_unit_type)UnitType::type ) );
+ return static_cast<UnitType&>( get( id, (test_unit_type)UnitType::type ) );
}
-test_unit const& get( test_unit_id, test_unit_type );
+test_unit& get( test_unit_id, test_unit_type );
#else
-test_unit const& get( test_unit_id, test_unit_type );
+test_unit& get( test_unit_id, test_unit_type );
template<typename UnitType>
-UnitType const& get( test_unit_id id )
+UnitType& get( test_unit_id id )
{
- return static_cast<UnitType const&>( get( id, (test_unit_type)UnitType::type ) );
+ return static_cast<UnitType&>( get( id, (test_unit_type)UnitType::type ) );
}
#endif
Modified: branches/hash/boost/test/impl/compiler_log_formatter.ipp
==============================================================================
--- branches/hash/boost/test/impl/compiler_log_formatter.ipp (original)
+++ branches/hash/boost/test/impl/compiler_log_formatter.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -182,7 +182,7 @@
//____________________________________________________________________________//
-} // namespace ouptut
+} // namespace output
} // namespace unit_test
Modified: branches/hash/boost/test/impl/cpp_main.ipp
==============================================================================
--- branches/hash/boost/test/impl/cpp_main.ipp (original)
+++ branches/hash/boost/test/impl/cpp_main.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -67,15 +67,16 @@
int BOOST_TEST_DECL
prg_exec_monitor_main( int (*cpp_main)( int argc, char* argv[] ), int argc, char* argv[] )
{
- int result;
+ int result = 0;
- boost::unit_test::const_string p( std::getenv( "BOOST_TEST_CATCH_SYSTEM_ERRORS" ) );
- bool catch_system_errors = p != "no";
-
try {
+ boost::unit_test::const_string p( std::getenv( "BOOST_TEST_CATCH_SYSTEM_ERRORS" ) );
::boost::execution_monitor ex_mon;
+
+ ex_mon.p_catch_system_errors.value = p != "no";
+
result = ex_mon.execute(
- ::boost::unit_test::callback0<int>( cpp_main_caller( cpp_main, argc, argv ) ), catch_system_errors );
+ ::boost::unit_test::callback0<int>( cpp_main_caller( cpp_main, argc, argv ) ) );
if( result == 0 )
result = ::boost::exit_success;
Modified: branches/hash/boost/test/impl/exception_safety.ipp
==============================================================================
--- branches/hash/boost/test/impl/exception_safety.ipp (original)
+++ branches/hash/boost/test/impl/exception_safety.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -126,7 +126,7 @@
// test observer interface
virtual void assertion_result( bool passed );
- virtual int priority() { return std::numeric_limits<int>::max(); } // we want this observer to run the last
+ virtual int priority() { return (std::numeric_limits<int>::max)(); } // we want this observer to run the last
private:
void failure_point();
@@ -493,7 +493,7 @@
if( m_invairant_failed )
formatter << " and ";
- formatter << m_memory_in_use.size() << " memory leak";
+ formatter << (unsigned int)m_memory_in_use.size() << " memory leak";
if( m_memory_in_use.size() > 1 )
formatter << 's';
}
Modified: branches/hash/boost/test/impl/execution_monitor.ipp
==============================================================================
--- branches/hash/boost/test/impl/execution_monitor.ipp (original)
+++ branches/hash/boost/test/impl/execution_monitor.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -30,54 +30,94 @@
#include <boost/test/execution_monitor.hpp>
// Boost
-#include <boost/cstdlib.hpp> // for exit codes
-#include <boost/config.hpp> // for workarounds
+#include <boost/cstdlib.hpp> // for exit codes
+#include <boost/config.hpp> // for workarounds
// STL
-#include <string> // for std::string
-#include <new> // for std::bad_alloc
-#include <typeinfo> // for std::bad_cast, std::bad_typeid
-#include <exception> // for std::exception, std::bad_exception
-#include <stdexcept> // for std exception hierarchy
-#include <cstring> // for C string API
-#include <cassert> // for assert
-#include <cstddef> // for NULL
+#include <string> // for std::string
+#include <new> // for std::bad_alloc
+#include <typeinfo> // for std::bad_cast, std::bad_typeid
+#include <exception> // for std::exception, std::bad_exception
+#include <stdexcept> // for std exception hierarchy
+#include <cstring> // for C string API
+#include <cassert> // for assert
+#include <cstddef> // for NULL
+#include <cstdio> // for vsnprintf
+#include <cstdarg> // for varargs
#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std { using ::strlen; using ::strncat; }
+namespace std { using ::strerror; using ::strlen; using ::strncat; }
#endif
-// Microsoft + other compatible compilers such as Intel
-#if !defined(BOOST_DISABLE_WIN32) && \
- !defined(__BORLANDC__) && \
- (defined(_MSC_VER) && !defined(__COMO__)) || \
- (BOOST_WORKAROUND(__MWERKS__, >= 0x3000) && defined(__INTEL__))
-
-# define BOOST_MS_STRUCTURED_EXCEPTION_HANDLING
-
-# ifndef _WIN32_WINNT
-# ifdef _WINBASE_
-# warning Debugger check disabled. Either define _WIN32_WINNT or include Boost.Test header in front of winbase.h
-# else
-# define BOOST_TEST_DEBUGGER_CHECK
-# define _WIN32_WINNT 0x0400
-# endif
+#if defined(_WIN32) && !defined(BOOST_DISABLE_WIN32) && \
+ (!defined(__COMO__) && !defined(__MWERKS__) && !defined(__GNUC__) || \
+ BOOST_WORKAROUND(__MWERKS__, >= 0x3000))
+
+# define BOOST_SEH_BASED_SIGNAL_HANDLING
+
+# include <windows.h>
+
+# if defined(__MWERKS__)
+# include <eh.h>
+# endif
+
+# if defined(__BORLANDC__) || defined(__MWERKS__)
+# include <stdint.h>
+#endif
+
+# if BOOST_WORKAROUND(BOOST_MSVC, < 1300 )
+typedef void* uintptr_t;
# endif
-# include <wtypes.h>
-# include <winbase.h>
-# include <excpt.h>
-# include <eh.h>
+// for the FP control routines
+#include <float.h>
+
+#ifndef EM_INVALID
+#define EM_INVALID _EM_INVALID
+#endif
+
+#ifndef EM_DENORMAL
+#define EM_DENORMAL _EM_DENORMAL
+#endif
+
+#ifndef EM_ZERODIVIDE
+#define EM_ZERODIVIDE _EM_ZERODIVIDE
+#endif
+
+#ifndef EM_OVERFLOW
+#define EM_OVERFLOW _EM_OVERFLOW
+#endif
+
+#ifndef EM_UNDERFLOW
+#define EM_UNDERFLOW _EM_UNDERFLOW
+#endif
-# if !defined(NDEBUG) && !defined(__MWERKS__) // __MWERKS__ does not seem to supply implementation of C runtime debug hooks, causing linking errors
-# define BOOST_MS_CRT_DEBUG_HOOKS
+#ifndef MCW_EM
+#define MCW_EM _MCW_EM
+#endif
+
+# if !defined(NDEBUG) && defined(_MSC_VER)
+# define BOOST_TEST_USE_DEBUG_MS_CRT
# include <crtdbg.h>
# endif
-#elif (defined(__BORLANDC__) && defined(_Windows) && !defined(BOOST_DISABLE_WIN32))
+# if !BOOST_WORKAROUND(_MSC_VER, >= 1400 )
+
+typedef void* _invalid_parameter_handler;
+
+inline _invalid_parameter_handler
+_set_invalid_parameter_handler( _invalid_parameter_handler arg )
+{
+ return arg;
+}
+
+# endif
+
+# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x0564))
+
+namespace { void _set_se_translator( void* ) {} }
-# define BOOST_MS_STRUCTURED_EXCEPTION_HANDLING
-# include <windows.h> // Borland 5.5.1 has its own way of doing things.
+# endif
#elif defined(BOOST_HAS_SIGACTION)
@@ -87,228 +127,431 @@
# include <signal.h>
# include <setjmp.h>
+# if !defined(__CYGWIN__)
+# define BOOST_TEST_USE_ALT_STACK
+# endif
+
+# ifdef BOOST_TEST_USE_ALT_STACK
+# define BOOST_TEST_ALT_STACK_SIZE SIGSTKSZ
+# endif
+
#else
# define BOOST_NO_SIGNAL_HANDLING
#endif
+#include <errno.h>
+
#include <boost/test/detail/suppress_warnings.hpp>
//____________________________________________________________________________//
namespace boost {
+// ************************************************************************** //
+// ************** report_error ************** //
+// ************************************************************************** //
+
namespace detail {
-using unit_test::const_string;
+#ifdef __BORLANDC__
+# define BOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) std::vsnprintf( (a1), (a2), (a3), (a4) )
+#elif BOOST_WORKAROUND(_MSC_VER, <= 1310) || \
+ BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3000))
+# define BOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) _vsnprintf( (a1), (a2), (a3), (a4) )
+#else
+# define BOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) vsnprintf( (a1), (a2), (a3), (a4) )
+#endif
-// boost::execution_monitor::execute() calls boost::detail::report_error(...) to
-// report any caught exception and throw execution_exception
+static void
+report_error( execution_exception::error_code ec, char const* format, ... )
+{
+ static const int REPORT_ERROR_BUFFER_SIZE = 512;
+ static char buf[REPORT_ERROR_BUFFER_SIZE];
-const std::size_t REPORT_ERROR_BUFFER_SIZE = 512;
+ va_list args;
+ va_start( args, format );
-static void report_error(
- execution_exception::error_code ec,
- const_string msg1, // first part of the message
- const_string msg2 = "" ); // second part of the message; sum length msg1 + msg2 should not
- // exceed REPORT_ERROR_BUFFER_SIZE; never concatenate messages
- // manually, cause it should work even in case of memory lack
+ BOOST_TEST_VSNPRINTF( buf, sizeof(buf), format, args );
+ va_end( args );
-//____________________________________________________________________________//
-
-// Declaration for Microsoft structured exception handling (unix alternative - signal)
-#ifdef BOOST_MS_STRUCTURED_EXCEPTION_HANDLING
+ throw execution_exception( ec, buf );
+}
-// this class defined per the Microsoft structured exception documentation
-class ms_se_exception {
-public:
- // Constructor
- explicit ms_se_exception( unsigned int n )
- : m_se_id( n ) {}
+//____________________________________________________________________________//
- // Destructor
- ~ms_se_exception() {}
+template<typename Tr,typename Functor>
+inline int
+do_invoke( Tr const& tr, Functor const& F )
+{
+ return tr ? (*tr)( F ) : F();
+}
- // access methods
- unsigned int id() const { return m_se_id; }
+//____________________________________________________________________________//
-private:
- // Data members
- unsigned int m_se_id;
-};
+} // namespace detail
-//____________________________________________________________________________//
+#if defined(BOOST_SIGACTION_BASED_SIGNAL_HANDLING)
-void BOOST_TEST_CALL_DECL ms_se_trans_func( unsigned int id, _EXCEPTION_POINTERS* exps );
-void BOOST_TEST_CALL_DECL ms_se_forward_func( unsigned int id, _EXCEPTION_POINTERS* exps );
-static void report_ms_se_error( unsigned int id );
+// ************************************************************************** //
+// ************** Sigaction based signal handling ************** //
+// ************************************************************************** //
-//____________________________________________________________________________//
+namespace detail {
-// Declarations for unix-style signal handling
-#elif defined(BOOST_SIGACTION_BASED_SIGNAL_HANDLING)
+// ************************************************************************** //
+// ************** boost::detail::system_signal_exception ************** //
+// ************************************************************************** //
-class unix_signal_exception {
- typedef execution_exception::error_code error_code_type;
+class system_signal_exception {
public:
// Constructor
- unix_signal_exception( execution_exception::error_code ec, const_string em )
- : m_error_code( ec ), m_error_message( em ) {}
+ system_signal_exception()
+ : m_sig_info( 0 )
+ , m_context( 0 )
+ {}
- // Destructor
- ~unix_signal_exception() {}
+ // Access methods
+ void operator()( siginfo_t* i, void* c )
+ {
+ m_sig_info = i;
+ m_context = c;
+ }
+ void report() const;
- // access methods
- error_code_type error_code() const { return m_error_code; }
- const_string error_message() const { return m_error_message; }
private:
// Data members
- error_code_type m_error_code;
- const_string m_error_message;
+ siginfo_t* m_sig_info; // system signal detailed info
+ void* m_context; // signal context
};
-#endif
-
//____________________________________________________________________________//
-#if defined(BOOST_MS_CRT_DEBUG_HOOKS)
-
-int BOOST_TEST_CALL_DECL
-assert_reporting_function( int reportType, char* userMessage, int* retVal )
+void
+system_signal_exception::report() const
{
- switch( reportType ) {
- case _CRT_ASSERT:
- detail::report_error( execution_exception::user_error, userMessage );
+ if( !m_sig_info )
+ return; // no error actually occur?
- return 1; // return value and retVal are not important since we never reach this line
- case _CRT_ERROR:
- detail::report_error( execution_exception::system_error, userMessage );
-
- return 1; // return value and retVal are not important since we never reach this line
- default:
- return 0; // use usual reporting method
+ if( m_sig_info->si_code <= 0 ) {
+ switch( m_sig_info->si_code ) {
+ case SI_USER:
+ report_error( execution_exception::system_error,
+ "signal: generated by kill() (or family); uid=%d; pid=%d",
+ (int)m_sig_info->si_uid, (int)m_sig_info->si_pid );
+ break;
+ case SI_QUEUE:
+ report_error( execution_exception::system_error,
+ "signal: sent by sigqueue()" );
+ break;
+ case SI_TIMER:
+ report_error( execution_exception::system_error,
+ "signal: the expiration of a timer set by timer_settimer()" );
+ break;
+ case SI_ASYNCIO:
+ report_error( execution_exception::system_error,
+ "signal: generated by the completion of an asynchronous I/O request" );
+ break;
+ case SI_MESGQ:
+ report_error( execution_exception::system_error,
+ "signal: generated by the the arrival of a message on an empty message queue" );
+ break;
+ }
}
-}
+ else {
+ switch( m_sig_info->si_signo ) {
+ case SIGILL:
+ switch( m_sig_info->si_code ) {
+ case ILL_ILLOPC:
+ report_error( execution_exception::system_fatal_error,
+ "signal: illegal opcode; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case ILL_ILLOPN:
+ report_error( execution_exception::system_fatal_error,
+ "signal: illegal operand; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case ILL_ILLADR:
+ report_error( execution_exception::system_fatal_error,
+ "signal: illegal addressing mode; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case ILL_ILLTRP:
+ report_error( execution_exception::system_fatal_error,
+ "signal: illegal trap; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case ILL_PRVOPC:
+ report_error( execution_exception::system_fatal_error,
+ "signal: privileged opcode; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case ILL_PRVREG:
+ report_error( execution_exception::system_fatal_error,
+ "signal: privileged register; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case ILL_COPROC:
+ report_error( execution_exception::system_fatal_error,
+ "signal: co-processor error; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case ILL_BADSTK:
+ report_error( execution_exception::system_fatal_error,
+ "signal: internal stack error; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ }
+ break;
-#endif
+ case SIGFPE:
+ switch( m_sig_info->si_code ) {
+ case FPE_INTDIV:
+ report_error( execution_exception::system_error,
+ "signal: integer divide by zero; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case FPE_INTOVF:
+ report_error( execution_exception::system_error,
+ "signal: integer overflow; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case FPE_FLTDIV:
+ report_error( execution_exception::system_error,
+ "signal: floating point divide by zero; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case FPE_FLTOVF:
+ report_error( execution_exception::system_error,
+ "signal: floating point overflow; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case FPE_FLTUND:
+ report_error( execution_exception::system_error,
+ "signal: floating point underflow; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case FPE_FLTRES:
+ report_error( execution_exception::system_error,
+ "signal: floating point inexact result; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case FPE_FLTINV:
+ report_error( execution_exception::system_error,
+ "signal: invalid floating point operation; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ case FPE_FLTSUB:
+ report_error( execution_exception::system_error,
+ "signal: subscript out of range; address of failing instruction: 0x%08lx",
+ m_sig_info->si_addr );
+ break;
+ }
+ break;
-} // namespace detail
+ case SIGSEGV:
+ switch( m_sig_info->si_code ) {
+ case SEGV_MAPERR:
+ report_error( execution_exception::system_fatal_error,
+ "memory access violation at address: 0x%08lx: no mapping at fault address",
+ m_sig_info->si_addr );
+ break;
+ case SEGV_ACCERR:
+ report_error( execution_exception::system_fatal_error,
+ "memory access violation at address: 0x%08lx: invalid permissions",
+ m_sig_info->si_addr );
+ break;
+ }
+ break;
-// ************************************************************************** //
-// ************** execution_monitor ************** //
-// ************************************************************************** //
+ case SIGBUS:
+ switch( m_sig_info->si_code ) {
+ case BUS_ADRALN:
+ report_error( execution_exception::system_fatal_error,
+ "memory access violation at address: 0x%08lx: invalid address alignment",
+ m_sig_info->si_addr );
+ break;
+ case BUS_ADRERR:
+ report_error( execution_exception::system_fatal_error,
+ "memory access violation at address: 0x%08lx: non-existent physical address",
+ m_sig_info->si_addr );
+ break;
+ case BUS_OBJERR:
+ report_error( execution_exception::system_fatal_error,
+ "memory access violation at address: 0x%08lx: object specific hardware error",
+ m_sig_info->si_addr );
+ break;
+ }
+ break;
-int
-execution_monitor::execute( unit_test::callback0<int> const& F, bool catch_system_errors, int timeout )
-{
- using unit_test::const_string;
+ case SIGCHLD:
+ switch( m_sig_info->si_code ) {
+ case CLD_EXITED:
+ report_error( execution_exception::system_error,
+ "child has exited; pid: %d; uid: %d; exit value: %d",
+ (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
+ break;
+ case CLD_KILLED:
+ report_error( execution_exception::system_error,
+ "child was killed; pid: %d; uid: %d; exit value: %d",
+ (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
+ break;
+ case CLD_DUMPED:
+ report_error( execution_exception::system_error,
+ "child terminated abnormally; pid: %d; uid: %d; exit value: %d",
+ (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
+ break;
+ case CLD_TRAPPED:
+ report_error( execution_exception::system_error,
+ "traced child has trapped; pid: %d; uid: %d; exit value: %d",
+ (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
+ break;
+ case CLD_STOPPED:
+ report_error( execution_exception::system_error,
+ "child has stopped; pid: %d; uid: %d; exit value: %d",
+ (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
+ break;
+ case CLD_CONTINUED:
+ report_error( execution_exception::system_error,
+ "stopped child had continued; pid: %d; uid: %d; exit value: %d",
+ (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
+ break;
+ }
+ break;
-# ifdef BOOST_TEST_DEBUGGER_CHECK
- if( IsDebuggerPresent() )
- catch_system_errors = false;
-#endif
+#if !defined(__CYGWIN__)
-#if defined(BOOST_MS_STRUCTURED_EXCEPTION_HANDLING) && !defined(__BORLANDC__)
- if( catch_system_errors )
- _set_se_translator( detail::ms_se_trans_func );
- else
- _set_se_translator( detail::ms_se_forward_func );
-#endif
+ case SIGPOLL:
+ switch( m_sig_info->si_code ) {
+ case POLL_IN:
+ report_error( execution_exception::system_error,
+ "data input available; band event %d",
+ (int)m_sig_info->si_band );
+ break;
+ case POLL_OUT:
+ report_error( execution_exception::system_error,
+ "output buffers available; band event %d",
+ (int)m_sig_info->si_band );
+ break;
+ case POLL_MSG:
+ report_error( execution_exception::system_error,
+ "input message available; band event %d",
+ (int)m_sig_info->si_band );
+ break;
+ case POLL_ERR:
+ report_error( execution_exception::system_error,
+ "i/o error; band event %d",
+ (int)m_sig_info->si_band );
+ break;
+ case POLL_PRI:
+ report_error( execution_exception::system_error,
+ "high priority input available; band event %d",
+ (int)m_sig_info->si_band );
+ break;
+ case POLL_HUP:
+ report_error( execution_exception::system_error,
+ "device disconnected; band event %d",
+ (int)m_sig_info->si_band );
+ break;
+ }
+ break;
-#ifdef BOOST_MS_CRT_DEBUG_HOOKS
- if( catch_system_errors )
- _CrtSetReportHook( &detail::assert_reporting_function );
#endif
- try {
- return catch_signals( F, catch_system_errors, timeout );
+ case SIGABRT:
+ report_error( execution_exception::system_error,
+ "signal: SIGABRT (application abort requested)" );
+ break;
+
+ case SIGALRM:
+ report_error( execution_exception::timeout_error,
+ "signal: SIGALRM (timeout while executing function)" );
+ break;
+
+ default:
+ report_error( execution_exception::system_error, "unrecognized signal" );
+ }
}
+}
- // Catch-clause reference arguments are a bit different from function
- // arguments (ISO 15.3 paragraphs 18 & 19). Apparently const isn't
- // required. Programmers ask for const anyhow, so we supply it. That's
- // easier than answering questions about non-const usage.
+//____________________________________________________________________________//
- catch( char const* ex )
- { detail::report_error( execution_exception::cpp_exception_error, "C string: ", ex ); }
- catch( std::string const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::string: ", ex.c_str() ); }
+// ************************************************************************** //
+// ************** boost::detail::signal_action ************** //
+// ************************************************************************** //
- // std:: exceptions
+// Forward declaration
+extern "C" {
+static void execution_monitor_jumping_signal_handler( int sig, siginfo_t* info, void* context );
+static void execution_monitor_attaching_signal_handler( int sig, siginfo_t* info, void* context );
+}
- catch( std::bad_alloc const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::bad_alloc: ", ex.what() ); }
+class signal_action {
+ typedef struct sigaction* sigaction_ptr;
+public:
+ //Constructor
+ explicit signal_action( int sig, bool install, bool attach_dbg, char* alt_stack );
+ ~signal_action();
-#if BOOST_WORKAROUND(__BORLANDC__, <= 0x0551)
- catch( std::bad_cast const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::bad_cast" ); }
- catch( std::bad_typeid const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::bad_typeid" ); }
-#else
- catch( std::bad_cast const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::bad_cast: ", ex.what() ); }
- catch( std::bad_typeid const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::bad_typeid: ", ex.what() ); }
-#endif
+private:
+ // Data members
+ int m_sig;
+ bool m_installed;
+ struct sigaction m_new_action;
+ struct sigaction m_old_action;
+};
- catch( std::bad_exception const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::bad_exception: ", ex.what() ); }
- catch( std::domain_error const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::domain_error: ", ex.what() ); }
- catch( std::invalid_argument const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::invalid_argument: ", ex.what() ); }
- catch( std::length_error const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::length_error: ", ex.what() ); }
- catch( std::out_of_range const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::out_of_range: ", ex.what() ); }
- catch( std::range_error const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::range_error: ", ex.what() ); }
- catch( std::overflow_error const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::overflow_error: ", ex.what() ); }
- catch( std::underflow_error const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::underflow_error: ", ex.what() ); }
- catch( std::logic_error const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::logic_error: ", ex.what() ); }
- catch( std::runtime_error const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::runtime_error: ", ex.what() ); }
- catch( std::exception const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::exception: ", ex.what() ); }
+//____________________________________________________________________________//
-#if defined(BOOST_MS_STRUCTURED_EXCEPTION_HANDLING)
- catch( detail::ms_se_exception const& ex )
- { detail::report_ms_se_error( ex.id() ); }
-#elif defined(BOOST_SIGACTION_BASED_SIGNAL_HANDLING)
- catch( detail::unix_signal_exception const& ex )
- { detail::report_error( ex.error_code(), ex.error_message() ); }
-#endif // BOOST_SIGACTION_BASED_SIGNAL_HANDLING
+signal_action::signal_action( int sig, bool install, bool attach_dbg, char* alt_stack )
+: m_sig( sig )
+, m_installed( install )
+{
+ if( !install )
+ return;
- catch( execution_aborted const& )
- { return 0; }
+ std::memset( &m_new_action, 0, sizeof(struct sigaction) );
- catch( execution_exception const& )
- { throw; }
+ BOOST_TEST_SYS_ASSERT( ::sigaction( m_sig , sigaction_ptr(), &m_new_action ) != -1 );
- catch( ... )
- { detail::report_error( execution_exception::cpp_exception_error, "unknown type" ); }
+ if( m_new_action.sa_sigaction || m_new_action.sa_handler ) {
+ m_installed = false;
+ return;
+ }
- return 0; // never reached; supplied to quiet compiler warnings
-} // execute
+ m_new_action.sa_flags |= SA_SIGINFO;
+ m_new_action.sa_sigaction = attach_dbg ? &execution_monitor_attaching_signal_handler
+ : &execution_monitor_jumping_signal_handler;
+ BOOST_TEST_SYS_ASSERT( ::sigemptyset( &m_new_action.sa_mask ) != -1 );
+
+#ifdef BOOST_TEST_USE_ALT_STACK
+ if( alt_stack )
+ m_new_action.sa_flags |= SA_ONSTACK;
+#endif
+
+ BOOST_TEST_SYS_ASSERT( ::sigaction( m_sig, &m_new_action, &m_old_action ) != -1 );
+}
//____________________________________________________________________________//
-#if defined(BOOST_SIGACTION_BASED_SIGNAL_HANDLING)
+signal_action::~signal_action()
+{
+ if( m_installed )
+ ::sigaction( m_sig, &m_old_action , sigaction_ptr() );
+}
+
+//____________________________________________________________________________//
// ************************************************************************** //
-// ************** boost::detail::signal_handler ************** //
+// ************** boost::detail::signal_handler ************** //
// ************************************************************************** //
-namespace detail {
-
class signal_handler {
public:
// Constructor
- explicit signal_handler( bool catch_system_errors, int timeout );
+ explicit signal_handler( bool catch_system_errors, int timeout, bool attach_dbg, char* alt_stack );
// Destructor
~signal_handler();
@@ -321,234 +564,257 @@
return s_active_handler->m_sigjmp_buf;
}
+ static system_signal_exception& sys_sig()
+ {
+ assert( !!s_active_handler );
+
+ return s_active_handler->m_sys_sig;
+ }
+
private:
// Data members
- struct sigaction m_same_action_for_all_signals;
- struct sigaction m_old_SIGFPE_action;
- struct sigaction m_old_SIGTRAP_action;
- struct sigaction m_old_SIGSEGV_action;
- struct sigaction m_old_SIGBUS_action;
- struct sigaction m_old_SIGABRT_action;
- struct sigaction m_old_SIGALRM_action;
+ signal_handler* m_prev_handler;
+ int m_timeout;
+
+ signal_action m_ILL_action;
+ signal_action m_FPE_action;
+ signal_action m_SEGV_action;
+ signal_action m_BUS_action;
+ signal_action m_CHLD_action;
+ signal_action m_POLL_action;
+ signal_action m_ABRT_action;
+ signal_action m_ALRM_action;
sigjmp_buf m_sigjmp_buf;
+ system_signal_exception m_sys_sig;
- signal_handler* m_prev_handler;
static signal_handler* s_active_handler;
-
- bool m_catch_system_errors;
- bool m_set_timeout;
};
-signal_handler* signal_handler::s_active_handler = NULL; // !! need to be placed in thread specific storage
+// !! need to be placed in thread specific storage
+typedef signal_handler* signal_handler_ptr;
+signal_handler* signal_handler::s_active_handler = signal_handler_ptr();
//____________________________________________________________________________//
-extern "C" {
-
-static void execution_monitor_signal_handler( int sig )
-{
- siglongjmp( signal_handler::jump_buffer(), sig );
-}
-
-}
-
-//____________________________________________________________________________//
-
-signal_handler::signal_handler( bool catch_system_errors, int timeout )
+signal_handler::signal_handler( bool catch_system_errors, int timeout, bool attach_dbg, char* alt_stack )
: m_prev_handler( s_active_handler )
-, m_catch_system_errors( catch_system_errors )
-, m_set_timeout( timeout > 0 )
+, m_timeout( timeout )
+, m_ILL_action ( SIGILL , catch_system_errors, attach_dbg, alt_stack )
+, m_FPE_action ( SIGFPE , catch_system_errors, attach_dbg, alt_stack )
+, m_SEGV_action( SIGSEGV, catch_system_errors, attach_dbg, alt_stack )
+, m_BUS_action ( SIGBUS , catch_system_errors, attach_dbg, alt_stack )
+, m_CHLD_action( SIGCHLD, catch_system_errors, attach_dbg, alt_stack )
+, m_POLL_action( SIGPOLL, catch_system_errors, attach_dbg, alt_stack )
+, m_ABRT_action( SIGABRT, catch_system_errors, attach_dbg, alt_stack )
+, m_ALRM_action( SIGALRM, timeout > 0 , attach_dbg, alt_stack )
{
s_active_handler = this;
- if( m_catch_system_errors || m_set_timeout ) {
- m_same_action_for_all_signals.sa_flags = 0;
- m_same_action_for_all_signals.sa_handler = &execution_monitor_signal_handler;
- sigemptyset( &m_same_action_for_all_signals.sa_mask );
- }
-
- if( m_catch_system_errors ) {
- sigaction( SIGFPE , &m_same_action_for_all_signals, &m_old_SIGFPE_action );
- sigaction( SIGTRAP, &m_same_action_for_all_signals, &m_old_SIGTRAP_action );
- sigaction( SIGSEGV, &m_same_action_for_all_signals, &m_old_SIGSEGV_action );
- sigaction( SIGBUS , &m_same_action_for_all_signals, &m_old_SIGBUS_action );
- sigaction( SIGABRT, &m_same_action_for_all_signals, &m_old_SIGABRT_action );
- }
-
- if( m_set_timeout ) {
- sigaction( SIGALRM , &m_same_action_for_all_signals, &m_old_SIGALRM_action );
- alarm( timeout );
+ if( m_timeout > 0 ) {
+ ::alarm( 0 );
+ ::alarm( timeout );
+ }
+
+#ifdef BOOST_TEST_USE_ALT_STACK
+ if( alt_stack ) {
+ stack_t sigstk;
+
+ BOOST_TEST_SYS_ASSERT( ::sigaltstack( 0, &sigstk ) != -1 );
+
+ if( sigstk.ss_flags & SS_DISABLE ) {
+ sigstk.ss_sp = alt_stack;
+ sigstk.ss_size = BOOST_TEST_ALT_STACK_SIZE;
+ sigstk.ss_flags = 0;
+ BOOST_TEST_SYS_ASSERT( ::sigaltstack( &sigstk, 0 ) != -1 );
+ }
}
+#endif
}
//____________________________________________________________________________//
signal_handler::~signal_handler()
{
- typedef struct sigaction* sigaction_ptr;
-
assert( s_active_handler == this );
- if( m_set_timeout ) {
- alarm( 0 );
- sigaction( SIGALRM, &m_old_SIGALRM_action, sigaction_ptr() );
- }
+ if( m_timeout > 0 )
+ ::alarm( 0 );
- if( m_catch_system_errors ) {
- sigaction( SIGFPE , &m_old_SIGFPE_action , sigaction_ptr() );
- sigaction( SIGTRAP, &m_old_SIGTRAP_action, sigaction_ptr() );
- sigaction( SIGSEGV, &m_old_SIGSEGV_action, sigaction_ptr() );
- sigaction( SIGBUS , &m_old_SIGBUS_action , sigaction_ptr() );
- sigaction( SIGABRT, &m_old_SIGABRT_action, sigaction_ptr() );
- }
+#ifdef BOOST_TEST_USE_ALT_STACK
+ stack_t sigstk;
+
+ sigstk.ss_flags = SS_DISABLE;
+ BOOST_TEST_SYS_ASSERT( ::sigaltstack( &sigstk, 0 ) != -1 );
+#endif
s_active_handler = m_prev_handler;
}
//____________________________________________________________________________//
-} // namespace detail
-
// ************************************************************************** //
-// ************** execution_monitor::catch_signals ************** //
+// ************** execution_monitor_signal_handler ************** //
// ************************************************************************** //
-int
-execution_monitor::catch_signals( unit_test::callback0<int> const& F, bool catch_system_errors, int timeout )
-{
- using namespace detail;
+extern "C" {
- signal_handler local_signal_handler( catch_system_errors, timeout );
+static void execution_monitor_jumping_signal_handler( int sig, siginfo_t* info, void* context )
+{
+ signal_handler::sys_sig()( info, context );
- volatile int sigtype = sigsetjmp( signal_handler::jump_buffer(), 1 );
+ siglongjmp( signal_handler::jump_buffer(), sig );
+}
- typedef execution_exception::error_code ec_type;
- int result = 0;
- ec_type ec = execution_exception::no_error;
- const_string em;
+//____________________________________________________________________________//
- if( sigtype == 0 ) {
- result = m_custom_translators ? (*m_custom_translators)( F ) : F();
- }
- else {
- switch(sigtype) {
- case SIGALRM:
- ec = execution_exception::timeout_error;
- em = BOOST_TEST_L( "signal: SIGALRM (timeout while executing function)" );
- break;
- case SIGTRAP:
- ec = execution_exception::system_error;
- em = BOOST_TEST_L( "signal: SIGTRAP (perhaps integer divide by zero)" );
- break;
- case SIGFPE:
- ec = execution_exception::system_error;
- em = BOOST_TEST_L( "signal: SIGFPE (arithmetic exception)" );
- break;
- case SIGABRT:
- ec = execution_exception::system_error;
- em = BOOST_TEST_L( "signal: SIGABRT (application abort requested)" );
- break;
- case SIGSEGV:
- case SIGBUS:
- ec = execution_exception::system_fatal_error;
- em = BOOST_TEST_L( "memory access violation" );
- break;
- default:
- ec = execution_exception::system_error;
- em = BOOST_TEST_L( "unrecognized signal" );
- }
- }
+static void execution_monitor_attaching_signal_handler( int sig, siginfo_t* info, void* context )
+{
+ execution_monitor_jumping_signal_handler( sig, info, context );
+}
- if( ec != execution_exception::no_error )
- throw unix_signal_exception( ec, em );
+//____________________________________________________________________________//
- return result;
-} // unix catch_signals
+}
-//____________________________________________________________________________//
+} // namespace detail
-#elif (defined(__BORLANDC__) && defined(_Windows) && !defined(BOOST_DISABLE_WIN32))
+// ************************************************************************** //
+// ************** execution_monitor::catch_signals ************** //
+// ************************************************************************** //
-// this works for Borland but not other Win32 compilers (which trap too many cases)
int
-execution_monitor::catch_signals( unit_test::callback0<int> const& F, bool catch_system_errors, int )
+execution_monitor::catch_signals( unit_test::callback0<int> const& F )
{
- int result;
-
- if( catch_system_errors ) {
- __try { result = m_custom_translators ? (*m_custom_translators)( F ) : F(); }
+ using namespace detail;
- __except (1) {
- throw detail::ms_se_exception( GetExceptionCode() );
- }
- }
- else
- result = m_custom_translators ? (*m_custom_translators)( F ) : F();
+#if defined(__CYGWIN__)
+ p_catch_system_errors.value = false;
+#endif
- return result;
-}
+#ifdef BOOST_TEST_USE_ALT_STACK
+ if( !!p_use_alt_stack && !m_alt_stack )
+ m_alt_stack.reset( new char[BOOST_TEST_ALT_STACK_SIZE] );
+#else
+ p_use_alt_stack.value = false;
+#endif
-#else // default signal handler
+ signal_handler local_signal_handler( p_catch_system_errors, p_timeout, p_auto_start_dbg,
+ !p_use_alt_stack ? 0 : m_alt_stack.get() );
-int
-execution_monitor::catch_signals( unit_test::callback0<int> const& F, bool, int )
-{
- return m_custom_translators ? (*m_custom_translators)( F ) : F();
+ if( !sigsetjmp( signal_handler::jump_buffer(), 1 ) )
+ return detail::do_invoke( m_custom_translators , F );
+ else
+ throw local_signal_handler.sys_sig();
}
-#endif // choose signal handler
+//____________________________________________________________________________//
+
+#elif defined(BOOST_SEH_BASED_SIGNAL_HANDLING)
// ************************************************************************** //
// ************** Microsoft structured exception handling ************** //
// ************************************************************************** //
-#if defined(BOOST_MS_STRUCTURED_EXCEPTION_HANDLING)
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x0564))
+namespace { void _set_se_translator( void* ) {} }
+#endif
namespace detail {
-void BOOST_TEST_CALL_DECL
-ms_se_trans_func( unsigned int id, _EXCEPTION_POINTERS* /* exps */ )
-{
- throw ms_se_exception( id );
-}
+// ************************************************************************** //
+// ************** boost::detail::system_signal_exception ************** //
+// ************************************************************************** //
+
+class system_signal_exception {
+public:
+ // Constructor
+ explicit system_signal_exception( execution_monitor* em )
+ : m_em( em )
+ , m_se_id( 0 )
+ , m_fault_address( 0 )
+ , m_dir( false )
+ {}
+
+ // access methods
+ static void seh_catch_preventer( unsigned int /* id */, _EXCEPTION_POINTERS* /* exps */ )
+ {
+ throw;
+ }
+
+ void report() const;
+ int operator()( unsigned int id, _EXCEPTION_POINTERS* exps );
+
+private:
+ // Data members
+ execution_monitor* m_em;
+
+ unsigned int m_se_id;
+ void* m_fault_address;
+ bool m_dir;
+};
//____________________________________________________________________________//
-void BOOST_TEST_CALL_DECL
-ms_se_forward_func( unsigned int /* id */, _EXCEPTION_POINTERS* /* exps */ )
+int
+system_signal_exception::operator()( unsigned int id, _EXCEPTION_POINTERS* exps )
{
- throw;
+ const unsigned int MSFT_CPP_EXCEPT = 0xE06d7363; // EMSC
+
+ if( !m_em->p_catch_system_errors || (id == MSFT_CPP_EXCEPT) )
+ return EXCEPTION_CONTINUE_SEARCH;
+
+ m_se_id = id;
+ if( m_se_id == EXCEPTION_ACCESS_VIOLATION && exps->ExceptionRecord->NumberParameters == 2 ) {
+ m_fault_address = (void*)exps->ExceptionRecord->ExceptionInformation[1];
+ m_dir = exps->ExceptionRecord->ExceptionInformation[0] == 0;
+ }
+
+ return EXCEPTION_EXECUTE_HANDLER;
}
//____________________________________________________________________________//
void
-report_ms_se_error( unsigned int id )
+system_signal_exception::report() const
{
- switch( id ) {
- // cases classified as fatal_system_error
- case EXCEPTION_ACCESS_VIOLATION:
- detail::report_error( execution_exception::system_fatal_error, "memory access violation" );
+ switch( m_se_id ) {
+ // cases classified as system_fatal_error
+ case EXCEPTION_ACCESS_VIOLATION: {
+ if( !m_fault_address )
+ detail::report_error( execution_exception::system_fatal_error, "memory access violation" );
+ else
+ detail::report_error(
+ execution_exception::system_fatal_error,
+ "memory access violation occurred at address 0x%08lx, while attempting to %s",
+ m_fault_address,
+ m_dir ? " read inaccessible data"
+ : " write to an inaccessible (or protected) address"
+ );
break;
+ }
case EXCEPTION_ILLEGAL_INSTRUCTION:
detail::report_error( execution_exception::system_fatal_error, "illegal instruction" );
break;
case EXCEPTION_PRIV_INSTRUCTION:
- detail::report_error( execution_exception::system_fatal_error, "privileged instruction" );
+ detail::report_error( execution_exception::system_fatal_error, "tried to execute an instruction whose operation is not allowed in the current machine mode" );
break;
case EXCEPTION_IN_PAGE_ERROR:
- detail::report_error( execution_exception::system_fatal_error, "memory page error" );
+ detail::report_error( execution_exception::system_fatal_error, "access to a memory page that is not present" );
break;
case EXCEPTION_STACK_OVERFLOW:
detail::report_error( execution_exception::system_fatal_error, "stack overflow" );
break;
- // cases classified as (non-fatal) system_trap
+ case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+ detail::report_error( execution_exception::system_fatal_error, "tried to continue execution after a non continuable exception occurred" );
+ break;
+
+ // cases classified as (non-fatal) system_trap
case EXCEPTION_DATATYPE_MISALIGNMENT:
detail::report_error( execution_exception::system_error, "data misalignment" );
break;
@@ -570,45 +836,108 @@
break;
case EXCEPTION_FLT_STACK_CHECK:
- detail::report_error( execution_exception::system_error, "floating point stack check" );
+ detail::report_error( execution_exception::system_error,
+ "stack overflowed or underflowed as the result of a floating-point operation" );
break;
case EXCEPTION_FLT_DENORMAL_OPERAND:
+ detail::report_error( execution_exception::system_error,
+ "operand of floating point operation is denormal" );
+ break;
+
+# if 0 // !! ??
case EXCEPTION_FLT_INEXACT_RESULT:
- case EXCEPTION_FLT_INVALID_OPERATION:
+ detail::report_error( execution_exception::system_error,
+ "result of a floating-point operation cannot be represented exactly" );
+ break;
+#endif
+
case EXCEPTION_FLT_OVERFLOW:
+ detail::report_error( execution_exception::system_error,
+ "exponent of a floating-point operation is greater than the magnitude allowed by the corresponding type" );
+ break;
+
case EXCEPTION_FLT_UNDERFLOW:
+ detail::report_error( execution_exception::system_error,
+ "exponent of a floating-point operation is less than the magnitude allowed by the corresponding type" );
+ break;
+
+ case EXCEPTION_FLT_INVALID_OPERATION:
detail::report_error( execution_exception::system_error, "floating point error" );
break;
+ case EXCEPTION_BREAKPOINT:
+ detail::report_error( execution_exception::system_error, "breakpoint encountered" );
+ break;
+
default:
- detail::report_error( execution_exception::system_error, "unrecognized exception or signal" );
+ detail::report_error( execution_exception::system_error, "unrecognized exception. Id: 0x%08lx", m_se_id );
break;
- } // switch
-} // report_ms_se_error
+ }
+}
//____________________________________________________________________________//
-} // namespace detail
-
-#endif // Microsoft structured exception handling
+#if defined(BOOST_TEST_USE_DEBUG_MS_CRT)
// ************************************************************************** //
-// ************** report_error ************** //
+// ************** assert_reporting_function ************** //
// ************************************************************************** //
-namespace detail {
+int BOOST_TEST_CALL_DECL
+assert_reporting_function( int reportType, char* userMessage, int* retVal )
+{
+ switch( reportType ) {
+ case _CRT_ASSERT:
+ detail::report_error( execution_exception::user_error, userMessage );
-static void report_error( execution_exception::error_code ec, const_string msg1, const_string msg2 )
+ return 1; // return value and retVal are not important since we never reach this line
+ case _CRT_ERROR:
+ detail::report_error( execution_exception::system_error, userMessage );
+
+ return 1; // return value and retVal are not important since we never reach this line
+ default:
+ return 0; // use usual reporting method
+ }
+} // assert_reporting_function
+
+#endif
+
+//____________________________________________________________________________//
+
+void BOOST_TEST_CALL_DECL
+invalid_param_handler( wchar_t const* /* expr */,
+ wchar_t const* /* func */,
+ wchar_t const* /* file */,
+ unsigned int /* line */,
+ uintptr_t /* reserved */)
{
- static char buf[REPORT_ERROR_BUFFER_SIZE];
+ detail::report_error( execution_exception::user_error,
+ "Invalid parameter detected by C runtime library" );
+}
+
+//____________________________________________________________________________//
+
+void BOOST_TEST_CALL_DECL
+switch_fp_exceptions( bool on_off )
+{
+ if( !on_off )
+ _clearfp();
- buf[0] = '\0';
+ int cw = ::_controlfp( 0, 0 );
- std::strncat( buf, msg1.begin(), sizeof(buf)-1 );
- std::strncat( buf, msg2.begin(), sizeof(buf) - msg1.size() - 1 );
+ int exceptions_mask = EM_INVALID|EM_DENORMAL|EM_ZERODIVIDE|EM_OVERFLOW|EM_UNDERFLOW;
- throw execution_exception( ec, buf );
+ if( on_off )
+ cw &= ~exceptions_mask; // Set the exception masks on, turn exceptions off
+ else
+ cw |= exceptions_mask; // Set the exception masks off, turn exceptions on
+
+ if( on_off )
+ _clearfp();
+
+ // Set the control word
+ ::_controlfp( cw, MCW_EM );
}
//____________________________________________________________________________//
@@ -616,41 +945,160 @@
} // namespace detail
// ************************************************************************** //
-// ************** detect_memory_leaks ************** //
+// ************** execution_monitor::catch_signals ************** //
// ************************************************************************** //
-void
-detect_memory_leaks( bool on_off )
+int
+execution_monitor::catch_signals( unit_test::callback0<int> const& F )
{
- unit_test::ut_detail::ignore_unused_variable_warning( on_off );
+ _invalid_parameter_handler old_iph;
-#ifdef BOOST_MS_CRT_DEBUG_HOOKS
- int flags = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
+ if( !p_catch_system_errors )
+ _set_se_translator( &detail::system_signal_exception::seh_catch_preventer );
+ else {
+ if( !!p_detect_fp_exceptions )
+ detail::switch_fp_exceptions( true );
- if( !on_off )
- flags &= ~_CRTDBG_LEAK_CHECK_DF;
- else {
- flags |= _CRTDBG_LEAK_CHECK_DF;
- _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
- _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDOUT);
+#ifdef BOOST_TEST_USE_DEBUG_MS_CRT
+ _CrtSetReportHook( &detail::assert_reporting_function );
+#endif
+
+ old_iph = _set_invalid_parameter_handler(
+ reinterpret_cast<_invalid_parameter_handler>( &detail::invalid_param_handler ) );
+ }
+
+ detail::system_signal_exception SSE( this );
+
+ __try {
+ __try {
+ return detail::do_invoke( m_custom_translators , F );
+ }
+ __except( SSE( GetExceptionCode(), GetExceptionInformation() ) ) {
+ throw SSE;
+ }
+ }
+ __finally {
+ if( !!p_catch_system_errors ) {
+ if( !!p_detect_fp_exceptions )
+ detail::switch_fp_exceptions( false );
+
+ _set_invalid_parameter_handler( old_iph );
+ }
}
- _CrtSetDbgFlag ( flags );
-#endif // BOOST_MS_CRT_DEBUG_HOOKS
+ return 0;
}
//____________________________________________________________________________//
-void
-break_memory_alloc( long mem_alloc_order_num )
-{
- unit_test::ut_detail::ignore_unused_variable_warning( mem_alloc_order_num );
+#else // default signal handler
-#ifdef BOOST_MS_CRT_DEBUG_HOOKS
- _CrtSetBreakAlloc( mem_alloc_order_num );
-#endif // BOOST_MS_CRT_DEBUG_HOOKS
+namespace detail {
+
+class system_signal_exception {
+public:
+ void report() const {}
+};
+
+} // namespace detail
+
+int
+execution_monitor::catch_signals( unit_test::callback0<int> const& F )
+{
+ return detail::do_invoke( m_custom_translators , F );
}
+//____________________________________________________________________________//
+
+#endif // choose signal handler
+
+// ************************************************************************** //
+// ************** execution_monitor::execute ************** //
+// ************************************************************************** //
+
+int
+execution_monitor::execute( unit_test::callback0<int> const& F )
+{
+ try {
+ return catch_signals( F );
+ }
+
+ // Catch-clause reference arguments are a bit different from function
+ // arguments (ISO 15.3 paragraphs 18 & 19). Apparently const isn't
+ // required. Programmers ask for const anyhow, so we supply it. That's
+ // easier than answering questions about non-const usage.
+
+ catch( char const* ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "C string: %s", ex ); }
+ catch( std::string const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::string: %s", ex.c_str() ); }
+
+ // std:: exceptions
+
+ catch( std::bad_alloc const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::bad_alloc: %s", ex.what() ); }
+
+#if BOOST_WORKAROUND(__BORLANDC__, <= 0x0551)
+ catch( std::bad_cast const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::bad_cast" ); }
+ catch( std::bad_typeid const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::bad_typeid" ); }
+#else
+ catch( std::bad_cast const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::bad_cast: %s", ex.what() ); }
+ catch( std::bad_typeid const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::bad_typeid: %s", ex.what() ); }
+#endif
+
+ catch( std::bad_exception const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::bad_exception: %s", ex.what() ); }
+ catch( std::domain_error const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::domain_error: %s", ex.what() ); }
+ catch( std::invalid_argument const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::invalid_argument: %s", ex.what() ); }
+ catch( std::length_error const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::length_error: %s", ex.what() ); }
+ catch( std::out_of_range const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::out_of_range: %s", ex.what() ); }
+ catch( std::range_error const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::range_error: %s", ex.what() ); }
+ catch( std::overflow_error const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::overflow_error: %s", ex.what() ); }
+ catch( std::underflow_error const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::underflow_error: %s", ex.what() ); }
+ catch( std::logic_error const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::logic_error: %s", ex.what() ); }
+ catch( std::runtime_error const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::runtime_error: %s", ex.what() ); }
+ catch( std::exception const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "std::exception: %s", ex.what() ); }
+ catch( system_error const& ex )
+ { detail::report_error( execution_exception::cpp_exception_error, "system_error: %s", std::strerror( ex.p_errno ) ); }
+ catch( detail::system_signal_exception const& ex )
+ { ex.report(); }
+ catch( execution_aborted const& )
+ { return 0; }
+ catch( execution_exception const& )
+ { throw; }
+
+ catch( ... )
+ { detail::report_error( execution_exception::cpp_exception_error, "unknown type" ); }
+
+ return 0; // never reached; supplied to quiet compiler warnings
+} // execute
+
+//____________________________________________________________________________//
+
+// ************************************************************************** //
+// ************** system_error ************** //
+// ************************************************************************** //
+
+system_error::system_error()
+: p_errno( errno )
+{}
+
+//____________________________________________________________________________//
+
} // namespace boost
//____________________________________________________________________________//
@@ -661,51 +1109,6 @@
// Revision History :
//
// $Log$
-// Revision 1.13 2006/02/22 16:14:45 rogeeff
-// reagance to eliminate warning
-//
-// Revision 1.12 2006/01/30 07:29:49 rogeeff
-// split memory leaks detection API in two to get more functions with better defined roles
-//
-// Revision 1.11 2006/01/15 09:47:43 rogeeff
-// make common message
-//
-// Revision 1.10 2005/12/14 05:52:49 rogeeff
-// *** empty log message ***
-//
-// Revision 1.9 2005/04/30 17:07:22 rogeeff
-// ignore_warning included
-//
-// Revision 1.8 2005/04/30 16:46:50 rogeeff
-// warning suppressed
-//
-// Revision 1.7 2005/04/13 05:32:03 rogeeff
-// typo fix
-//
-// Revision 1.6 2005/04/05 06:11:37 rogeeff
-// memory leak allocation point detection\nextra help with _WIN32_WINNT
-//
-// Revision 1.5 2005/02/20 08:27:07 rogeeff
-// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
-//
-// Revision 1.4 2005/02/01 06:40:07 rogeeff
-// copyright update
-// old log entries removed
-// minor stilistic changes
-// depricated tools removed
-//
-// Revision 1.3 2005/01/31 07:50:06 rogeeff
-// cdecl portability fix
-//
-// Revision 1.2 2005/01/31 05:58:03 rogeeff
-// detect_memory_leak feature added
-//
-// Revision 1.1 2005/01/22 19:22:12 rogeeff
-// implementation moved into headers section to eliminate dependency of included/minimal component on src directory
-//
-// Revision 1.36 2005/01/21 07:21:38 rogeeff
-// detect presence of debugger under VC and automatically prevent catching system errors
-//
// ***************************************************************************
#endif // BOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
Modified: branches/hash/boost/test/impl/framework.ipp
==============================================================================
--- branches/hash/boost/test/impl/framework.ipp (original)
+++ branches/hash/boost/test/impl/framework.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -49,17 +49,6 @@
//____________________________________________________________________________//
-#ifndef BOOST_TEST_DYN_LINK
-
-// prototype for user's unit test init function
-#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
-extern bool init_unit_test();
-#else
-extern boost::unit_test::test_suite* init_unit_test_suite( int argc, char* argv[] );
-#endif
-
-#endif
-
namespace boost {
namespace unit_test {
@@ -88,6 +77,30 @@
counter_t m_tc_amount;
};
+//____________________________________________________________________________//
+
+struct test_init_caller {
+ explicit test_init_caller( init_unit_test_func init_func )
+ : m_init_func( init_func )
+ {}
+ int operator()()
+ {
+#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
+ if( !(*m_init_func)() )
+ throw std::runtime_error( "test module initialization failed" );
+#else
+ test_suite* manual_test_units = (*m_init_func)( framework::master_test_suite().argc, framework::master_test_suite().argv );
+
+ if( manual_test_units )
+ framework::master_test_suite().add( manual_test_units );
+#endif
+ return 0;
+ }
+
+ // Data members
+ init_unit_test_func m_init_func;
+};
+
}
// ************************************************************************** //
@@ -179,7 +192,7 @@
}
};
- typedef std::map<test_unit_id,test_unit const*> test_unit_store;
+ typedef std::map<test_unit_id,test_unit*> test_unit_store;
typedef std::set<test_observer*,priority_order> observer_store;
master_test_suite_t* m_master_test_suite;
@@ -207,15 +220,15 @@
namespace framework {
void
-init( int argc, char* argv[] )
+init( init_unit_test_func init_func, int argc, char* argv[] )
{
runtime_config::init( &argc, argv );
- // set the log level nad format
+ // set the log level and format
unit_test_log.set_threshold_level( runtime_config::log_level() );
unit_test_log.set_format( runtime_config::log_format() );
- // set the report level nad format
+ // set the report level and format
results_reporter::set_level( runtime_config::report_level() );
results_reporter::set_format( runtime_config::report_format() );
@@ -226,27 +239,24 @@
register_observer( progress_monitor );
if( runtime_config::detect_memory_leaks() > 0 ) {
- detect_memory_leaks( true );
- break_memory_alloc( runtime_config::detect_memory_leaks() );
+// detect_memory_leaks( true );
+// break_memory_alloc( runtime_config::detect_memory_leaks() );
}
// init master unit test suite
master_test_suite().argc = argc;
master_test_suite().argv = argv;
-#ifndef BOOST_TEST_DYN_LINK
-
-#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
- if( !init_unit_test() )
- throw setup_error( BOOST_TEST_L("test tree initialization error" ) );
-#else
- test_suite* s = init_unit_test_suite( argc, argv );
- if( s )
- master_test_suite().add( s );
-#endif
+ try {
+ boost::execution_monitor em;
-#endif
+ ut_detail::test_init_caller tic( init_func );
+ em.execute( tic );
+ }
+ catch( execution_exception const& ex ) {
+ throw setup_error( ex.what() );
+ }
}
//____________________________________________________________________________//
@@ -335,10 +345,10 @@
//____________________________________________________________________________//
-test_unit const&
+test_unit&
get( test_unit_id id, test_unit_type t )
{
- test_unit const* res = s_frk_impl().m_test_units[id];
+ test_unit* res = s_frk_impl().m_test_units[id];
if( (res->p_type & t) == 0 )
throw internal_error( "Invalid test unit type" );
@@ -454,41 +464,4 @@
#include <boost/test/detail/enable_warnings.hpp>
-// ***************************************************************************
-// Revision History :
-//
-// $Log$
-// Revision 1.10 2006/03/19 07:27:52 rogeeff
-// streamline test setup error message
-//
-// Revision 1.9 2006/01/30 07:29:49 rogeeff
-// split memory leaks detection API in two to get more functions with better defined roles
-//
-// Revision 1.8 2005/12/17 02:34:11 rogeeff
-// *** empty log message ***
-//
-// Revision 1.7 2005/12/14 05:35:57 rogeeff
-// DLL support implemented
-// Alternative init API introduced
-//
-// Revision 1.6 2005/05/08 08:55:09 rogeeff
-// typos and missing descriptions fixed
-//
-// Revision 1.5 2005/04/05 07:23:20 rogeeff
-// restore default
-//
-// Revision 1.4 2005/04/05 06:11:37 rogeeff
-// memory leak allocation point detection\nextra help with _WIN32_WINNT
-//
-// Revision 1.3 2005/03/23 21:02:19 rogeeff
-// Sunpro CC 5.3 fixes
-//
-// Revision 1.2 2005/02/21 10:12:18 rogeeff
-// Support for random order of test cases implemented
-//
-// Revision 1.1 2005/02/20 08:27:07 rogeeff
-// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
-//
-// ***************************************************************************
-
#endif // BOOST_TEST_FRAMEWORK_IPP_021005GER
Modified: branches/hash/boost/test/impl/logged_expectations.ipp
==============================================================================
--- branches/hash/boost/test/impl/logged_expectations.ipp (original)
+++ branches/hash/boost/test/impl/logged_expectations.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -7,7 +7,7 @@
//
// File : $RCSfile$
//
-// ELOG_VER : $Revision$
+// Version : $Revision$
//
// Description : Facilities to perform interaction based testng of logged expectations
// ***************************************************************************
Modified: branches/hash/boost/test/impl/results_reporter.ipp
==============================================================================
--- branches/hash/boost/test/impl/results_reporter.ipp (original)
+++ branches/hash/boost/test/impl/results_reporter.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -23,10 +23,10 @@
#include <boost/test/output/plain_report_formatter.hpp>
#include <boost/test/output/xml_report_formatter.hpp>
-#include <boost/test/detail/wrap_io_saver.hpp>
-
// Boost
#include <boost/scoped_ptr.hpp>
+#include <boost/io/ios_state.hpp>
+typedef ::boost::io::ios_base_all_saver io_saver_type;
// STL
#include <iostream>
@@ -112,6 +112,14 @@
//____________________________________________________________________________//
+std::ostream&
+get_stream()
+{
+ return *s_rr_impl().m_output;
+}
+
+//____________________________________________________________________________//
+
void
set_format( output_format rf )
{
Modified: branches/hash/boost/test/impl/test_tools.ipp
==============================================================================
--- branches/hash/boost/test/impl/test_tools.ipp (original)
+++ branches/hash/boost/test/impl/test_tools.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -439,7 +439,7 @@
BOOST_WARN_MESSAGE( m_pimpl->m_pattern.is_open(),
"Couldn't open pattern file " << pattern_file_name
- << " for " << (m_pimpl->m_match_or_save ? "reading" : "writing") );
+ << " for " << (match_or_save ? "reading" : "writing") );
}
m_pimpl->m_match_or_save = match_or_save;
@@ -616,62 +616,4 @@
#include <boost/test/detail/enable_warnings.hpp>
-// ***************************************************************************
-// Revision History :
-//
-// $Log$
-// Revision 1.12 2006/02/01 07:58:25 rogeeff
-// critical message made more consistent with rest
-//
-// Revision 1.11 2006/01/28 07:01:25 rogeeff
-// message error fixed
-//
-// Revision 1.10 2005/12/14 05:33:47 rogeeff
-// use simplified log API
-// assertion_result call moved pass log statement
-// Binary output test stream support implemented
-//
-// Revision 1.9 2005/06/22 22:03:05 dgregor
-// More explicit scoping needed for GCC 2.95.3
-//
-// Revision 1.8 2005/04/30 17:56:31 rogeeff
-// switch to stdarg.h to workarround como issues
-//
-// Revision 1.7 2005/03/23 21:02:23 rogeeff
-// Sunpro CC 5.3 fixes
-//
-// Revision 1.6 2005/02/21 10:14:04 rogeeff
-// CHECK_SMALL tool implemented
-//
-// Revision 1.5 2005/02/20 08:27:07 rogeeff
-// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
-//
-// Revision 1.4 2005/02/02 12:08:14 rogeeff
-// namespace log added for log manipulators
-//
-// Revision 1.3 2005/02/01 06:40:07 rogeeff
-// copyright update
-// old log entries removed
-// minor stilistic changes
-// depricated tools removed
-//
-// Revision 1.2 2005/01/30 03:18:27 rogeeff
-// test tools implementation completely reworked. All tools inplemented through single vararg function
-//
-// Revision 1.1 2005/01/22 19:22:12 rogeeff
-// implementation moved into headers section to eliminate dependency of included/minimal component on src directory
-//
-// Revision 1.43 2005/01/19 06:40:05 vawjr
-// deleted redundant \r in many \r\r\n sequences of the source. VC8.0 doesn't like them
-//
-// Revision 1.42 2005/01/18 08:30:08 rogeeff
-// unit_test_log rework:
-// eliminated need for ::instance()
-// eliminated need for << end and ...END macro
-// straitend interface between log and formatters
-// change compiler like formatter name
-// minimized unit_test_log interface and reworked to use explicit calls
-//
-// ***************************************************************************
-
#endif // BOOST_TEST_TEST_TOOLS_IPP_012205GER
Modified: branches/hash/boost/test/impl/unit_test_log.ipp
==============================================================================
--- branches/hash/boost/test/impl/unit_test_log.ipp (original)
+++ branches/hash/boost/test/impl/unit_test_log.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -22,7 +22,6 @@
#include <boost/test/execution_monitor.hpp>
#include <boost/test/detail/unit_test_parameters.hpp>
-#include <boost/test/detail/wrap_io_saver.hpp>
#include <boost/test/utils/basic_cstring/compare.hpp>
@@ -31,6 +30,8 @@
// Boost
#include <boost/scoped_ptr.hpp>
+#include <boost/io/ios_state.hpp>
+typedef ::boost::io::ios_base_all_saver io_saver_type;
// STL
#include <iostream>
@@ -124,6 +125,9 @@
void
unit_test_log_t::test_start( counter_t test_cases_amount )
{
+ if( s_log_impl().m_threshold_level == log_nothing )
+ return;
+
s_log_impl().m_log_formatter->log_start( s_log_impl().stream(), test_cases_amount );
if( runtime_config::show_build_info() )
@@ -137,6 +141,9 @@
void
unit_test_log_t::test_finish()
{
+ if( s_log_impl().m_threshold_level == log_nothing )
+ return;
+
s_log_impl().m_log_formatter->log_finish( s_log_impl().stream() );
s_log_impl().stream().flush();
@@ -155,7 +162,7 @@
void
unit_test_log_t::test_unit_start( test_unit const& tu )
{
- if( s_log_impl().m_threshold_level > log_test_suites )
+ if( s_log_impl().m_threshold_level > log_test_units )
return;
if( s_log_impl().m_entry_in_progress )
@@ -169,7 +176,7 @@
void
unit_test_log_t::test_unit_finish( test_unit const& tu, unsigned long elapsed )
{
- if( s_log_impl().m_threshold_level > log_test_suites )
+ if( s_log_impl().m_threshold_level > log_test_units )
return;
s_log_impl().m_checkpoint_data.clear();
@@ -185,7 +192,7 @@
void
unit_test_log_t::test_unit_skipped( test_unit const& tu )
{
- if( s_log_impl().m_threshold_level > log_test_suites )
+ if( s_log_impl().m_threshold_level > log_test_units )
return;
if( s_log_impl().m_entry_in_progress )
@@ -333,7 +340,7 @@
unit_test_log_formatter::BOOST_UTL_ET_FATAL_ERROR );
break;
case log_nothing:
- case log_test_suites:
+ case log_test_units:
case invalid_log_level:
return *this;
}
Modified: branches/hash/boost/test/impl/unit_test_main.ipp
==============================================================================
--- branches/hash/boost/test/impl/unit_test_main.ipp (original)
+++ branches/hash/boost/test/impl/unit_test_main.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -34,29 +34,23 @@
//____________________________________________________________________________//
-// ************************************************************************** //
-// ************** unit_test_main ************** //
-// ************************************************************************** //
-
namespace boost {
namespace unit_test {
-int BOOST_TEST_DECL
+// ************************************************************************** //
+// ************** unit_test_main ************** //
+// ************************************************************************** //
-#if defined(BOOST_TEST_DYN_LINK)
-unit_test_main( bool (*init_unit_test_func)(), int argc, char* argv[] )
-#else
-unit_test_main( int argc, char* argv[] )
-#endif
+int BOOST_TEST_DECL
+unit_test_main( init_unit_test_func init_func, int argc, char* argv[] )
{
try {
- framework::init( argc, argv );
+ framework::init( init_func, argc, argv );
-#ifdef BOOST_TEST_DYN_LINK
- if( !(*init_unit_test_func)() )
- throw framework::setup_error( BOOST_TEST_L( "test tree initialization error" ) );
-#endif
+// !! ?? if( !runtime_config.test_to_run().is_empty() ) {
+//
+// }
framework::run();
@@ -67,17 +61,17 @@
: results_collector.results( framework::master_test_suite().p_id ).result_code();
}
catch( framework::internal_error const& ex ) {
- std::cerr << "Boost.Test framework internal error: " << ex.what() << std::endl;
+ results_reporter::get_stream() << "Boost.Test framework internal error: " << ex.what() << std::endl;
return boost::exit_exception_failure;
}
catch( framework::setup_error const& ex ) {
- std::cerr << "Test setup error: " << ex.what() << std::endl;
+ results_reporter::get_stream() << "Test setup error: " << ex.what() << std::endl;
return boost::exit_exception_failure;
}
catch( ... ) {
- std::cerr << "Boost.Test framework internal error: unknown reason" << std::endl;
+ results_reporter::get_stream() << "Boost.Test framework internal error: unknown reason" << std::endl;
return boost::exit_exception_failure;
}
@@ -96,7 +90,18 @@
int BOOST_TEST_CALL_DECL
main( int argc, char* argv[] )
{
- return ::boost::unit_test::unit_test_main( argc, argv );
+ // prototype for user's unit test init function
+#ifdef BOOST_TEST_ALTERNATIVE_INIT_API
+ extern bool init_unit_test();
+
+ boost::unit_test::init_unit_test_func init_func = &init_unit_test;
+#else
+ extern ::boost::unit_test::test_suite* init_unit_test_suite( int argc, char* argv[] );
+
+ boost::unit_test::init_unit_test_func init_func = &init_unit_test_suite;
+#endif
+
+ return ::boost::unit_test::unit_test_main( init_func, argc, argv );
}
#endif // !BOOST_TEST_DYN_LINK && !BOOST_TEST_NO_MAIN
Modified: branches/hash/boost/test/impl/unit_test_monitor.ipp
==============================================================================
--- branches/hash/boost/test/impl/unit_test_monitor.ipp (original)
+++ branches/hash/boost/test/impl/unit_test_monitor.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -60,9 +60,13 @@
unit_test_monitor_t::execute_and_translate( test_case const& tc )
{
try {
- execute( callback0<int>( zero_return_wrapper( tc.test_func() ) ),
- runtime_config::catch_sys_errors(),
- tc.p_timeout );
+ p_catch_system_errors.value = runtime_config::catch_sys_errors();
+ p_timeout.value = tc.p_timeout.get();
+ p_auto_start_dbg.value = runtime_config::auto_start_dbg();
+ p_use_alt_stack.value = runtime_config::use_alt_stack();
+ p_detect_fp_exceptions.value = runtime_config::detect_fp_exceptions();
+
+ execute( callback0<int>( zero_return_wrapper( tc.test_func() ) ) );
}
catch( execution_exception const& ex ) {
framework::exception_caught( ex );
Modified: branches/hash/boost/test/impl/unit_test_parameters.ipp
==============================================================================
--- branches/hash/boost/test/impl/unit_test_parameters.ipp (original)
+++ branches/hash/boost/test/impl/unit_test_parameters.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -58,6 +58,9 @@
literal_string BUILD_INFO = "BOOST_TEST_BUILD_INFO";
literal_string SHOW_PROGRESS = "BOOST_TEST_SHOW_PROGRESS";
literal_string CATCH_SYS_ERRORS = "BOOST_TEST_CATCH_SYSTEM_ERRORS";
+literal_string AUTO_START_DBG = "BOOST_TEST_AUTO_START_DBG";
+literal_string USE_ALT_STACK = "BOOST_TEST_USE_ALT_STACK";
+literal_string DETECT_FP_EXCEPT = "BOOST_TEST_DETECT_FP_EXCEPTIONS";
literal_string REPORT_FORMAT = "BOOST_TEST_REPORT_FORMAT";
literal_string LOG_FORMAT = "BOOST_TEST_LOG_FORMAT";
literal_string OUTPUT_FORMAT = "BOOST_TEST_OUTPUT_FORMAT";
@@ -65,19 +68,22 @@
literal_string RANDOM_SEED = "BOOST_TEST_RANDOM";
literal_string BREAK_EXEC_PATH = "BOOST_TEST_BREAK_EXEC_PATH";
-unit_test::log_level s_log_level;
-bool s_no_result_code;
-unit_test::report_level s_report_level;
-const_string s_tests_to_run;
-const_string s_exec_path_to_break;
-bool s_save_pattern;
-bool s_show_build_info;
-bool s_show_progress;
-bool s_catch_sys_errors;
-output_format s_report_format;
-output_format s_log_format;
-long s_detect_mem_leaks;
-unsigned int s_random_seed;
+unit_test::log_level s_log_level;
+bool s_no_result_code;
+unit_test::report_level s_report_level;
+const_string s_tests_to_run;
+const_string s_exec_path_to_break;
+bool s_save_pattern;
+bool s_show_build_info;
+bool s_show_progress;
+bool s_catch_sys_errors;
+bool s_auto_start_dbg;
+bool s_use_alt_stack;
+bool s_detect_fp_except;
+output_format s_report_format;
+output_format s_log_format;
+long s_detect_mem_leaks;
+unsigned int s_random_seed;
// ************************************************************************** //
// ************** runtime_config ************** //
@@ -95,6 +101,9 @@
BUILD_INFO , "--build_info",
SHOW_PROGRESS , "--show_progress",
CATCH_SYS_ERRORS , "--catch_system_errors",
+ AUTO_START_DBG , "--auto_start_dbg",
+ USE_ALT_STACK , "--use_alt_stack",
+ DETECT_FP_EXCEPT , "--detect_fp_exceptions",
REPORT_FORMAT , "--report_format",
LOG_FORMAT , "--log_format",
OUTPUT_FORMAT , "--output_format",
@@ -164,7 +173,8 @@
fixed_mapping<const_string,unit_test::log_level,case_ins_less<char const> > log_level_name(
"all" , log_successful_tests,
"success" , log_successful_tests,
- "test_suite" , log_test_suites,
+ "test_suite" , log_test_units,
+ "unit_scope" , log_test_units,
"message" , log_messages,
"warning" , log_warnings,
"error" , log_all_errors,
@@ -198,6 +208,8 @@
s_show_build_info = retrieve_framework_parameter( BUILD_INFO, argc, argv ) == "yes";
s_show_progress = retrieve_framework_parameter( SHOW_PROGRESS, argc, argv ) == "yes";
s_catch_sys_errors = retrieve_framework_parameter( CATCH_SYS_ERRORS, argc, argv ) != "no";
+ s_use_alt_stack = retrieve_framework_parameter( USE_ALT_STACK, argc, argv ) != "no";
+ s_detect_fp_except = retrieve_framework_parameter( DETECT_FP_EXCEPT, argc, argv ) == "yes";
s_tests_to_run = retrieve_framework_parameter( TESTS_TO_RUN, argc, argv );
s_exec_path_to_break= retrieve_framework_parameter( BREAK_EXEC_PATH, argc, argv );
@@ -218,6 +230,14 @@
const_string ml_str = retrieve_framework_parameter( DETECT_MEM_LEAK, argc, argv );
s_detect_mem_leaks = ml_str.is_empty() ? 1 : interpret_long( ml_str );
+
+ const_string dbg = retrieve_framework_parameter( AUTO_START_DBG, argc, argv );
+
+ if( dbg.is_empty() || dbg == "no" )
+ s_auto_start_dbg = false;
+ else {
+ s_auto_start_dbg = true;
+ }
}
//____________________________________________________________________________//
@@ -294,6 +314,30 @@
//____________________________________________________________________________//
+bool
+auto_start_dbg()
+{
+ return s_auto_start_dbg;
+}
+
+//____________________________________________________________________________//
+
+bool
+use_alt_stack()
+{
+ return s_use_alt_stack;
+}
+
+//____________________________________________________________________________//
+
+bool
+detect_fp_exceptions()
+{
+ return s_detect_fp_except;
+}
+
+//____________________________________________________________________________//
+
output_format
report_format()
{
@@ -340,27 +384,7 @@
// Revision History :
//
// $Log$
-// Revision 1.10 2006/01/30 07:29:49 rogeeff
-// split memory leaks detection API in two to get more functions with better defined roles
-//
-// Revision 1.9 2005/12/14 05:38:47 rogeeff
-// new parameter break_exec_path() is introduced
-//
-// Revision 1.8 2005/05/08 08:55:09 rogeeff
-// typos and missing descriptions fixed
-//
-// Revision 1.7 2005/04/05 07:23:21 rogeeff
-// restore default
-//
-// Revision 1.6 2005/04/05 06:11:37 rogeeff
-// memory leak allocation point detection\nextra help with _WIN32_WINNT
-//
-// Revision 1.5 2005/02/21 10:12:22 rogeeff
-// Support for random order of test cases implemented
-//
-// Revision 1.4 2005/02/20 08:27:07 rogeeff
-// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
-//
+//
// ***************************************************************************
#endif // BOOST_TEST_UNIT_TEST_PARAMETERS_IPP_012205GER
Modified: branches/hash/boost/test/impl/unit_test_suite.ipp
==============================================================================
--- branches/hash/boost/test/impl/unit_test_suite.ipp (original)
+++ branches/hash/boost/test/impl/unit_test_suite.ipp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -54,6 +54,7 @@
, p_type_name( t == tut_case ? "case" : "suite" )
, p_id( INV_TEST_UNIT_ID )
, p_name( std::string( name.begin(), name.size() ) )
+, p_enabled( true )
{
}
@@ -84,6 +85,17 @@
//____________________________________________________________________________//
+void
+test_unit::increase_exp_fail( unsigned num )
+{
+ p_expected_failures.value += num;
+
+ if( p_parent_id != 0 )
+ framework::get<test_suite>( p_parent_id ).increase_exp_fail( num );
+}
+
+//____________________________________________________________________________//
+
// ************************************************************************** //
// ************** test_case ************** //
// ************************************************************************** //
@@ -115,21 +127,20 @@
//____________________________________________________________________________//
-// !! need to prevent modifing test unit once it is added to tree
-
void
test_suite::add( test_unit* tu, counter_t expected_failures, unsigned timeout )
{
- if( expected_failures != 0 )
- tu->p_expected_failures.value = expected_failures;
-
- p_expected_failures.value += tu->p_expected_failures;
-
if( timeout != 0 )
tu->p_timeout.value = timeout;
m_members.push_back( tu->p_id );
tu->p_parent_id.value = p_id;
+
+ if( tu->p_expected_failures )
+ increase_exp_fail( tu->p_expected_failures );
+
+ if( expected_failures )
+ tu->increase_exp_fail( expected_failures );
}
//____________________________________________________________________________//
@@ -144,6 +155,19 @@
//____________________________________________________________________________//
+test_unit_id
+test_suite::get( const_string tu_name ) const
+{
+ BOOST_TEST_FOREACH( test_unit_id, id, m_members ) {
+ if( tu_name == framework::get( id, test_id_2_unit_type( id ) ).p_name.get() )
+ return id;
+ }
+
+ return INV_TEST_UNIT_ID;
+}
+
+//____________________________________________________________________________//
+
// ************************************************************************** //
// ************** traverse_test_tree ************** //
// ************************************************************************** //
@@ -151,6 +175,7 @@
void
traverse_test_tree( test_case const& tc, test_tree_visitor& V )
{
+ if( tc.p_enabled )
V.visit( tc );
}
@@ -159,7 +184,7 @@
void
traverse_test_tree( test_suite const& suite, test_tree_visitor& V )
{
- if( !V.test_suite_start( suite ) )
+ if( !suite.p_enabled || !V.test_suite_start( suite ) )
return;
try {
@@ -213,8 +238,76 @@
//____________________________________________________________________________//
+// ************************************************************************** //
+// ************** auto_test_unit_registrar ************** //
+// ************************************************************************** //
+
+auto_test_unit_registrar::auto_test_unit_registrar( test_case* tc, counter_t exp_fail )
+{
+ curr_ts_store().back()->add( tc, exp_fail );
+}
+
+//____________________________________________________________________________//
+
+auto_test_unit_registrar::auto_test_unit_registrar( const_string ts_name )
+{
+ test_unit_id id = curr_ts_store().back()->get( ts_name );
+
+ test_suite* ts;
+
+ if( id != INV_TEST_UNIT_ID ) {
+ ts = &framework::get<test_suite>( id ); // !! test for invalid tu type
+ BOOST_ASSERT( ts->p_parent_id == curr_ts_store().back()->p_id );
+ }
+ else {
+ ts = new test_suite( ts_name );
+ curr_ts_store().back()->add( ts );
+ }
+
+ curr_ts_store().push_back( ts );
+}
+
+//____________________________________________________________________________//
+
+auto_test_unit_registrar::auto_test_unit_registrar( test_unit_generator const& tc_gen )
+{
+ curr_ts_store().back()->add( tc_gen );
+}
+
+//____________________________________________________________________________//
+
+auto_test_unit_registrar::auto_test_unit_registrar( int )
+{
+ if( curr_ts_store().size() == 0 )
+ return; // report error?
+
+ curr_ts_store().pop_back();
+}
+
+//____________________________________________________________________________//
+
+std::list<test_suite*>&
+auto_test_unit_registrar::curr_ts_store()
+{
+ static std::list<test_suite*> inst( 1, &framework::master_test_suite() );
+ return inst;
+}
+
+//____________________________________________________________________________//
+
} // namespace ut_detail
+// ************************************************************************** //
+// ************** global_fixture ************** //
+// ************************************************************************** //
+
+global_fixture::global_fixture()
+{
+ framework::register_observer( *this );
+}
+
+//____________________________________________________________________________//
+
} // namespace unit_test
} // namespace boost
@@ -227,33 +320,6 @@
// Revision History :
//
// $Log$
-// Revision 1.13 2006/02/23 15:33:15 rogeeff
-// workaround restored
-//
-// Revision 1.12 2006/01/28 08:53:57 rogeeff
-// VC6.0 workaround removed
-//
-// Revision 1.11 2005/12/14 05:54:41 rogeeff
-// *** empty log message ***
-//
-// Revision 1.10 2005/04/18 04:55:36 rogeeff
-// test unit name made read/write
-//
-// Revision 1.9 2005/03/23 21:02:25 rogeeff
-// Sunpro CC 5.3 fixes
-//
-// Revision 1.8 2005/03/21 15:33:15 rogeeff
-// check reworked
-//
-// Revision 1.7 2005/02/25 21:27:44 turkanis
-// fix for random_shuffle on Borland 5.x w/ STLPort
-//
-// Revision 1.6 2005/02/21 10:12:24 rogeeff
-// Support for random order of test cases implemented
-//
-// Revision 1.5 2005/02/20 08:27:07 rogeeff
-// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
-//
// ***************************************************************************
#endif // BOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
Modified: branches/hash/boost/test/included/unit_test.hpp
==============================================================================
--- branches/hash/boost/test/included/unit_test.hpp (original)
+++ branches/hash/boost/test/included/unit_test.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -16,8 +16,11 @@
#define BOOST_INCLUDED_UNIT_TEST_FRAMEWORK_HPP_071894GER
#include <boost/test/impl/compiler_log_formatter.ipp>
-#include <boost/test/impl/execution_monitor.ipp>
#include <boost/test/impl/framework.ipp>
+#include <boost/test/impl/exception_safety.ipp>
+#include <boost/test/impl/execution_monitor.ipp>
+#include <boost/test/impl/interaction_based.ipp>
+#include <boost/test/impl/logged_expectations.ipp>
#include <boost/test/impl/plain_report_formatter.ipp>
#include <boost/test/impl/progress_monitor.ipp>
#include <boost/test/impl/results_collector.ipp>
Modified: branches/hash/boost/test/interaction_based.hpp
==============================================================================
--- branches/hash/boost/test/interaction_based.hpp (original)
+++ branches/hash/boost/test/interaction_based.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -115,8 +115,8 @@
std::size_t /*line_num*/,
void* /*p*/, std::size_t /*s*/ ) {}
virtual void freed( void* /*p*/ ) {}
- virtual void data_flow( const_string d ) {}
- virtual std::string return_value( const_string default_value ) { return ""; }
+ virtual void data_flow( const_string /*d*/ ) {}
+ virtual std::string return_value( const_string /*default_value */ ) { return ""; }
template<typename T>
void generic_data_flow( T const& t )
Modified: branches/hash/boost/test/logged_expectations.hpp
==============================================================================
--- branches/hash/boost/test/logged_expectations.hpp (original)
+++ branches/hash/boost/test/logged_expectations.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -47,7 +47,7 @@
boost::unit_test::make_test_case( \
&BOOST_AUTO_TC_INVOKER( test_name ), #test_name ), \
boost::unit_test::ut_detail::auto_tc_exp_fail< \
- BOOST_AUTO_TC_UNIQUE_ID( test_name )>::value ); \
+ BOOST_AUTO_TC_UNIQUE_ID( test_name )>::instance()->value() ); \
\
void test_name::test_method() \
/**/
Modified: branches/hash/boost/test/results_reporter.hpp
==============================================================================
--- branches/hash/boost/test/results_reporter.hpp (original)
+++ branches/hash/boost/test/results_reporter.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -60,6 +60,8 @@
BOOST_TEST_DECL void set_format( output_format );
BOOST_TEST_DECL void set_format( results_reporter::format* );
+BOOST_TEST_DECL std::ostream& get_stream();
+
// ************************************************************************** //
// ************** report initiation ************** //
// ************************************************************************** //
Modified: branches/hash/boost/test/test_tools.hpp
==============================================================================
--- branches/hash/boost/test/test_tools.hpp (original)
+++ branches/hash/boost/test/test_tools.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -161,6 +161,7 @@
BOOST_CHECK_WITH_ARGS_IMPL( ::boost::test_tools::tt_detail::equal_impl_frwd(), "", CHECK, CHECK_EQUAL, (L)(R) )
#define BOOST_REQUIRE_EQUAL( L, R ) \
BOOST_CHECK_WITH_ARGS_IMPL( ::boost::test_tools::tt_detail::equal_impl_frwd(), "", REQUIRE, CHECK_EQUAL, (L)(R) )
+
//____________________________________________________________________________//
#define BOOST_WARN_CLOSE( L, R, T ) \
@@ -469,12 +470,12 @@
//____________________________________________________________________________//
predicate_result BOOST_TEST_DECL equal_impl( char const* left, char const* right );
-inline predicate_result BOOST_TEST_DECL equal_impl( char* left, char const* right ) { return equal_impl( (char const*)left, (char const*)right ); }
-inline predicate_result BOOST_TEST_DECL equal_impl( char const* left, char* right ) { return equal_impl( (char const*)left, (char const*)right ); }
-inline predicate_result BOOST_TEST_DECL equal_impl( char* left, char* right ) { return equal_impl( (char const*)left, (char const*)right ); }
+inline predicate_result equal_impl( char* left, char const* right ) { return equal_impl( (char const*)left, (char const*)right ); }
+inline predicate_result equal_impl( char const* left, char* right ) { return equal_impl( (char const*)left, (char const*)right ); }
+inline predicate_result equal_impl( char* left, char* right ) { return equal_impl( (char const*)left, (char const*)right ); }
#if !defined( BOOST_NO_CWCHAR )
-predicate_result equal_impl( wchar_t const* left, wchar_t const* right );
+predicate_result BOOST_TEST_DECL equal_impl( wchar_t const* left, wchar_t const* right );
inline predicate_result equal_impl( wchar_t* left, wchar_t const* right ) { return equal_impl( (wchar_t const*)left, (wchar_t const*)right ); }
inline predicate_result equal_impl( wchar_t const* left, wchar_t* right ) { return equal_impl( (wchar_t const*)left, (wchar_t const*)right ); }
inline predicate_result equal_impl( wchar_t* left, wchar_t* right ) { return equal_impl( (wchar_t const*)left, (wchar_t const*)right ); }
@@ -600,78 +601,6 @@
// Revision History :
//
// $Log$
-// Revision 1.66 2007/04/05 14:46:47 dgregor
-// Add include of climits
-//
-// Revision 1.65 2007/02/22 18:00:39 speedsnail
-// Removed the msvc-6.5 hack from HEAD again. Gennadiy Rozental didn't like it anyways...
-//
-// Revision 1.64 2006/12/16 14:36:23 speedsnail
-// Workaround for msvc-6.5: *_EQUAL macros give Internal Compiler Errors, when inlining is turned on.
-//
-// Revision 1.63 2006/11/14 21:33:01 jhunold
-// Add missing export macros for print_log_value<>
-//
-// Revision 1.62 2006/11/14 07:34:30 jhunold
-// Removed wrong export declarations.
-//
-// Revision 1.61 2006/11/13 20:03:48 jhunold
-// Added missing export declarations.
-//
-// Revision 1.60 2006/03/19 07:27:11 rogeeff
-// avoid warning
-//
-// Revision 1.59 2006/03/03 17:39:46 rogeeff
-// paaspoint added to check throw
-//
-// Revision 1.58 2006/02/06 10:04:55 rogeeff
-// BOOST_TEST_MODULE - master test suite name
-//
-// Revision 1.57 2006/01/28 07:00:47 rogeeff
-// sunpro port
-//
-// Revision 1.56 2005/12/19 03:08:30 rogeeff
-// added is_abstract to guard numeric_limits instantiation
-//
-// Revision 1.55 2005/12/14 05:20:41 rogeeff
-// dll support introduced
-// BOOST_TEST_PASSPOINT() introduced
-// BOOST_MESSAGE depricated. Use BOOST_TEST_MESSAGE instead
-// BOOST_CHECKPOINT is depricated. Use BOOST_TEST_CHECKPOINT intead
-//
-// Revision 1.54 2005/06/07 04:38:20 rogeeff
-// borland fix
-//
-// Revision 1.53 2005/05/11 04:51:14 rogeeff
-// borlard portability fix
-//
-// Revision 1.52 2005/03/22 07:08:47 rogeeff
-// string comparisons streamlined
-// precision settings made portable
-//
-// Revision 1.51 2005/02/21 10:23:54 rogeeff
-// major issue with TT redesign causing TT to reevaluate it's arguments fixed
-// FP precision extended
-//
-// Revision 1.50 2005/02/20 08:27:06 rogeeff
-// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
-//
-// Revision 1.49 2005/02/01 06:40:06 rogeeff
-// copyright update
-// old log entries removed
-// minor stylistic changes
-// deprecated tools removed
-//
-// Revision 1.48 2005/01/30 03:32:57 rogeeff
-// Test Tools completely reworked:
-// interfaces streamlined to provide 3 version for each tool
-// implementation reworked to use single vararg formatter function
-// CHECK_COLLECTION now expect 4 arguments
-// BITWISE_EQUAL renamed to CHECK_BITWISE_EQUAL but still provided as deprecated
-// CHECK_COLLECTION interface changed to use PP_SEQ and as a result support arbitrary number of predicate arguments
-// most of templates eliminated
-// deprecated tools removed
-// print_helper object generator added
//
// ***************************************************************************
Modified: branches/hash/boost/test/unit_test.hpp
==============================================================================
--- branches/hash/boost/test/unit_test.hpp (original)
+++ branches/hash/boost/test/unit_test.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -43,15 +43,7 @@
namespace boost { namespace unit_test {
-#if defined(BOOST_TEST_DYN_LINK)
-
-int BOOST_TEST_DECL unit_test_main( bool (*init_unit_test_func)(), int argc, char* argv[] );
-
-#else
-
-int BOOST_TEST_DECL unit_test_main( int argc, char* argv[] );
-
-#endif
+int BOOST_TEST_DECL unit_test_main( init_unit_test_func init_func, int argc, char* argv[] );
}}
Modified: branches/hash/boost/test/unit_test_suite.hpp
==============================================================================
--- branches/hash/boost/test/unit_test_suite.hpp (original)
+++ branches/hash/boost/test/unit_test_suite.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -17,6 +17,7 @@
// Boost.Test
#include <boost/test/unit_test_suite_impl.hpp>
+#include <boost/test/framework.hpp>
//____________________________________________________________________________//
@@ -42,8 +43,7 @@
#define BOOST_AUTO_TEST_SUITE( suite_name ) \
namespace suite_name { \
-BOOST_AUTO_TC_REGISTRAR( suite_name )( BOOST_TEST_SUITE( \
- BOOST_STRINGIZE( suite_name ) ) ); \
+BOOST_AUTO_TC_REGISTRAR( suite_name )( BOOST_STRINGIZE( suite_name ) ); \
/**/
// ************************************************************************** //
@@ -70,14 +70,17 @@
#define BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES( test_name, n ) \
struct BOOST_AUTO_TC_UNIQUE_ID( test_name ); \
-namespace boost { namespace unit_test { namespace ut_detail { \
\
-template<> \
-struct auto_tc_exp_fail<BOOST_AUTO_TC_UNIQUE_ID( test_name ) > { \
- enum { value = n }; \
-}; \
+static struct BOOST_JOIN( test_name, _exp_fail_num_spec ) \
+: boost::unit_test::ut_detail:: \
+ auto_tc_exp_fail<BOOST_AUTO_TC_UNIQUE_ID( test_name ) > \
+{ \
+ BOOST_JOIN( test_name, _exp_fail_num_spec )() \
+ : boost::unit_test::ut_detail:: \
+ auto_tc_exp_fail<BOOST_AUTO_TC_UNIQUE_ID( test_name ) >( n ) \
+ {} \
+} BOOST_JOIN( test_name, _exp_fail_num_spec_inst ); \
\
-}}} \
/**/
// ************************************************************************** //
@@ -99,7 +102,7 @@
boost::unit_test::make_test_case( \
&BOOST_AUTO_TC_INVOKER( test_name ), #test_name ), \
boost::unit_test::ut_detail::auto_tc_exp_fail< \
- BOOST_AUTO_TC_UNIQUE_ID( test_name )>::value ); \
+ BOOST_AUTO_TC_UNIQUE_ID( test_name )>::instance()->value() ); \
\
void test_name::test_method() \
/**/
Modified: branches/hash/boost/test/unit_test_suite_impl.hpp
==============================================================================
--- branches/hash/boost/test/unit_test_suite_impl.hpp (original)
+++ branches/hash/boost/test/unit_test_suite_impl.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -23,7 +23,6 @@
#include <boost/test/detail/fwd_decl.hpp>
#include <boost/test/detail/workaround.hpp>
#include <boost/test/test_observer.hpp>
-#include <boost/test/framework.hpp>
// Boost
#include <boost/shared_ptr.hpp>
@@ -67,7 +66,10 @@
// Public r/w properties
readwrite_property<std::string> p_name; // name for this test unit
readwrite_property<unsigned> p_timeout; // timeout for the test unit execution
- readwrite_property<counter_t> p_expected_failures; // number of expected failured in this test unit
+ readwrite_property<counter_t> p_expected_failures; // number of expected failures in this test unit
+ mutable readwrite_property<bool> p_enabled; // enabled status for this unit
+
+ void increase_exp_fail( unsigned num );
private:
// Data members
@@ -120,16 +122,19 @@
// Constructor
explicit test_suite( const_string ts_name );
- // test case list management
+ // test unit list management
void add( test_unit* tu, counter_t expected_failures = 0, unsigned timeout = 0 );
void add( test_unit_generator const& gen, unsigned timeout = 0 );
+ // access methods
+ test_unit_id get( const_string tu_name ) const;
+
protected:
- friend BOOST_TEST_DECL void traverse_test_tree( test_suite const&, test_tree_visitor& );
+ friend BOOST_TEST_DECL
+ void traverse_test_tree( test_suite const&, test_tree_visitor& );
friend class framework_impl;
virtual ~test_suite() {}
-private:
// Data members
std::vector<test_unit_id> m_members;
};
@@ -172,7 +177,7 @@
BOOST_TEST_DECL void traverse_test_tree( test_case const&, test_tree_visitor& );
BOOST_TEST_DECL void traverse_test_tree( test_suite const&, test_tree_visitor& );
-BOOST_TEST_DECL void traverse_test_tree( test_unit_id id, test_tree_visitor& );
+BOOST_TEST_DECL void traverse_test_tree( test_unit_id , test_tree_visitor& );
//____________________________________________________________________________//
@@ -194,7 +199,7 @@
struct test_case_counter : test_tree_visitor {
test_case_counter() : m_count( 0 ) {}
- void visit( test_case const& ) { m_count++; }
+ virtual void visit( test_case const& ) { m_count++; }
counter_t m_count;
};
@@ -258,41 +263,41 @@
struct BOOST_TEST_DECL auto_test_unit_registrar
{
- // Constructor
- explicit auto_test_unit_registrar( test_case* tc, counter_t exp_fail )
- {
- curr_ts_store().back()->add( tc, exp_fail );
- }
- explicit auto_test_unit_registrar( test_suite* ts )
- {
- curr_ts_store().back()->add( ts );
-
- curr_ts_store().push_back( ts );
- }
- explicit auto_test_unit_registrar( test_unit_generator const& tc_gen )
- {
- curr_ts_store().back()->add( tc_gen );
- }
- explicit auto_test_unit_registrar( int )
- {
- if( curr_ts_store().size() > 1 )
- curr_ts_store().pop_back();
- // else report error
- }
+ // Constructors
+ auto_test_unit_registrar( test_case* tc, counter_t exp_fail );
+ explicit auto_test_unit_registrar( const_string ts_name );
+ explicit auto_test_unit_registrar( test_unit_generator const& tc_gen );
+ explicit auto_test_unit_registrar( int );
private:
- static std::list<test_suite*>& curr_ts_store()
- {
- static std::list<test_suite*> inst( 1, &framework::master_test_suite() );
- return inst;
- }
+ static std::list<test_suite*>& curr_ts_store();
};
//____________________________________________________________________________//
template<typename T>
struct auto_tc_exp_fail {
- enum { value = 0 };
+ auto_tc_exp_fail() : m_value( 0 ) {}
+
+ explicit auto_tc_exp_fail( unsigned v )
+ : m_value( v )
+ {
+ instance() = this;
+ }
+
+ static auto_tc_exp_fail*& instance()
+ {
+ static auto_tc_exp_fail inst;
+ static auto_tc_exp_fail* inst_ptr = &inst;
+
+ return inst_ptr;
+ }
+
+ unsigned value() const { return m_value; }
+
+private:
+ // Data members
+ unsigned m_value;
};
//____________________________________________________________________________//
@@ -306,7 +311,7 @@
class BOOST_TEST_DECL global_fixture : public test_observer {
public:
// Constructor
- global_fixture() { framework::register_observer( *this ); }
+ global_fixture();
};
//____________________________________________________________________________//
Modified: branches/hash/boost/test/utils/fixed_mapping.hpp
==============================================================================
--- branches/hash/boost/test/utils/fixed_mapping.hpp (original)
+++ branches/hash/boost/test/utils/fixed_mapping.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -38,7 +38,7 @@
// configurable maximum fixed sized mapping size supported by this header.
// You could redefine it before inclusion of this file.
#ifndef MAX_MAP_SIZE
-#define MAX_MAP_SIZE 15
+#define MAX_MAP_SIZE 20
#endif
#define CONSTR_DECL_MID( z, i, dummy1 ) key_param_type key##i, value_param_type v##i,
Modified: branches/hash/boost/test/utils/named_params.hpp
==============================================================================
--- branches/hash/boost/test/utils/named_params.hpp (original)
+++ branches/hash/boost/test/utils/named_params.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -319,22 +319,6 @@
// Revision History:
//
// $Log$
-// Revision 1.5 2005/12/14 05:01:13 rogeeff
-// *** empty log message ***
-//
-// Revision 1.4 2005/06/13 10:35:08 schoepflin
-// Enable optionally_assign() overload workaround for Tru64/CXX-6.5 as well.
-//
-// Revision 1.3 2005/06/05 18:10:59 grafik
-// named_param.hpp; Work around CW not handling operator, using declaration, by using a real operator,().
-// token_iterator_test.cpp; Work around CW-8 confused with array initialization.
-//
-// Revision 1.2 2005/05/03 05:02:49 rogeeff
-// como fixes
-//
-// Revision 1.1 2005/04/12 06:48:12 rogeeff
-// Runtime.Param library initial commit
-//
// ***************************************************************************
#endif // BOOST_TEST_NAMED_PARAM_022505GER
Modified: branches/hash/boost/thread/barrier.hpp
==============================================================================
--- branches/hash/boost/thread/barrier.hpp (original)
+++ branches/hash/boost/thread/barrier.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -1,5 +1,6 @@
// Copyright (C) 2002-2003
// David Moore, William E. Kempf
+// Copyright (C) 2007 Anthony Williams
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -11,33 +12,47 @@
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
+#include <string>
+#include <stdexcept>
-namespace boost {
-
-class BOOST_THREAD_DECL barrier
+namespace boost
{
-public:
- barrier(unsigned int count);
- ~barrier();
-
- bool wait();
-
-private:
- mutex m_mutex;
-// disable warnings about non dll import
-// see: http://www.boost.org/more/separate_compilation.html#dlls
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4251 4231 4660 4275)
-#endif
- condition m_cond;
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
- unsigned int m_threshold;
- unsigned int m_count;
- unsigned int m_generation;
-};
+
+ class barrier
+ {
+ public:
+ barrier(unsigned int count)
+ : m_threshold(count), m_count(count), m_generation(0)
+ {
+ if (count == 0)
+ throw std::invalid_argument("count cannot be zero.");
+ }
+
+ bool wait()
+ {
+ boost::mutex::scoped_lock lock(m_mutex);
+ unsigned int gen = m_generation;
+
+ if (--m_count == 0)
+ {
+ m_generation++;
+ m_count = m_threshold;
+ m_cond.notify_all();
+ return true;
+ }
+
+ while (gen == m_generation)
+ m_cond.wait(lock);
+ return false;
+ }
+
+ private:
+ mutex m_mutex;
+ condition m_cond;
+ unsigned int m_threshold;
+ unsigned int m_count;
+ unsigned int m_generation;
+ };
} // namespace boost
Modified: branches/hash/boost/thread/condition.hpp
==============================================================================
--- branches/hash/boost/thread/condition.hpp (original)
+++ branches/hash/boost/thread/condition.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -1,197 +1,10 @@
-// Copyright (C) 2001-2003
-// William E. Kempf
-// Copyright (C) 2007 Anthony Williams
-//
-// Distributed under the 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_THREAD_CONDITION_HPP
+#define BOOST_THREAD_CONDITION_HPP
+#include <boost/thread/condition_variable.hpp>
-#ifndef BOOST_CONDITION_WEK070601_HPP
-#define BOOST_CONDITION_WEK070601_HPP
-
-#include <boost/thread/detail/config.hpp>
-
-#include <boost/thread/exceptions.hpp>
-#include <boost/utility.hpp>
-#include <boost/thread/detail/lock.hpp>
-
-#if defined(BOOST_HAS_PTHREADS)
-# include <pthread.h>
-#elif defined(BOOST_HAS_MPTASKS)
-# include "scoped_critical_region.hpp"
-#endif
-
-namespace boost {
-
-struct xtime;
-// disable warnings about non dll import
-// see: http://www.boost.org/more/separate_compilation.html#dlls
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4251 4231 4660 4275)
-#endif
-
-namespace detail {
-
-class BOOST_THREAD_DECL condition_impl : private noncopyable
+namespace boost
{
- friend class condition;
-
-public:
- condition_impl();
- ~condition_impl();
-
- void notify_one();
- void notify_all();
-
-#if (defined(BOOST_HAS_WINTHREADS) || defined(BOOST_HAS_MPTASKS))
- void enter_wait();
- void do_wait();
- bool do_timed_wait(const xtime& xt);
-#elif defined(BOOST_HAS_PTHREADS)
- void do_wait(pthread_mutex_t* pmutex);
- bool do_timed_wait(const xtime& xt, pthread_mutex_t* pmutex);
-#endif
-
-#if defined(BOOST_HAS_WINTHREADS)
- void* m_gate;
- void* m_queue;
- void* m_mutex;
- unsigned m_gone; // # threads that timed out and never made it to m_queue
- unsigned long m_blocked; // # threads blocked on the condition
- unsigned m_waiting; // # threads no longer waiting for the condition but
- // still waiting to be removed from m_queue
-#elif defined(BOOST_HAS_PTHREADS)
- pthread_cond_t m_condition;
- pthread_mutex_t m_mutex;
-#elif defined(BOOST_HAS_MPTASKS)
- MPSemaphoreID m_gate;
- MPSemaphoreID m_queue;
- threads::mac::detail::scoped_critical_region m_mutex;
- threads::mac::detail::scoped_critical_region m_mutex_mutex;
- unsigned m_gone; // # threads that timed out and never made it to m_queue
- unsigned long m_blocked; // # threads blocked on the condition
- unsigned m_waiting; // # threads no longer waiting for the condition but
- // still waiting to be removed from m_queue
-#endif
-};
-
-} // namespace detail
-
-class condition : private noncopyable
-{
-public:
- condition() { }
- ~condition() { }
-
- void notify_one() { m_impl.notify_one(); }
- void notify_all() { m_impl.notify_all(); }
-
- template <typename L>
- void wait(L& lock)
- {
- if (!lock)
- throw lock_error();
-
- do_wait(*lock.mutex());
- }
-
- template <typename L, typename Pr>
- void wait(L& lock, Pr pred)
- {
- if (!lock)
- throw lock_error();
-
- while (!pred())
- do_wait(*lock.mutex());
- }
+ typedef condition_variable_any condition;
+}
- template <typename L>
- bool timed_wait(L& lock, const xtime& xt)
- {
- if (!lock)
- throw lock_error();
-
- return do_timed_wait(*lock.mutex(), xt);
- }
-
- template <typename L, typename Pr>
- bool timed_wait(L& lock, const xtime& xt, Pr pred)
- {
- if (!lock)
- throw lock_error();
-
- while (!pred())
- {
- if (!do_timed_wait(*lock.mutex(), xt))
- return false;
- }
-
- return true;
- }
-
-private:
- detail::condition_impl m_impl;
-
- template <typename M>
- void do_wait(M& mutex)
- {
-#if (defined(BOOST_HAS_WINTHREADS) || defined(BOOST_HAS_MPTASKS))
- m_impl.enter_wait();
-#else
- pthread_mutex_lock(&m_impl.m_mutex);
#endif
-
- mutex.unlock();
-
-#if defined(BOOST_HAS_PTHREADS)
- m_impl.do_wait(&m_impl.m_mutex);
-#elif (defined(BOOST_HAS_WINTHREADS) || defined(BOOST_HAS_MPTASKS))
- m_impl.do_wait();
-#endif
-
-#if defined(BOOST_HAS_PTHREADS)
- pthread_mutex_unlock(&m_impl.m_mutex);
-#endif
- mutex.lock();
- }
-
- template <typename M>
- bool do_timed_wait(M& mutex, const xtime& xt)
- {
-#if (defined(BOOST_HAS_WINTHREADS) || defined(BOOST_HAS_MPTASKS))
- m_impl.enter_wait();
-#else
- pthread_mutex_lock(&m_impl.m_mutex);
-#endif
-
- mutex.unlock();
-
- bool ret = false;
-
-#if defined(BOOST_HAS_PTHREADS)
- ret = m_impl.do_timed_wait(xt, &m_impl.m_mutex);
-#elif (defined(BOOST_HAS_WINTHREADS) || defined(BOOST_HAS_MPTASKS))
- ret = m_impl.do_timed_wait(xt);
-#endif
-
-#if defined(BOOST_HAS_PTHREADS)
- pthread_mutex_unlock(&m_impl.m_mutex);
-#endif
- mutex.lock();
-
- return ret;
- }
-};
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-} // namespace boost
-
-// Change Log:
-// 8 Feb 01 WEKEMPF Initial version.
-// 22 May 01 WEKEMPF Modified to use xtime for time outs.
-// 23 May 01 WEKEMPF Removed "duration" timed_waits, as they are too
-// difficult to use with spurious wakeups.
-// 3 Jan 03 WEKEMPF Modified for DLL implementation.
-
-#endif // BOOST_CONDITION_WEK070601_HPP
Deleted: branches/hash/boost/thread/detail/lock.hpp
==============================================================================
--- branches/hash/boost/thread/detail/lock.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
+++ (empty file)
@@ -1,209 +0,0 @@
-// Copyright (C) 2001-2003
-// William E. Kempf
-//
-// Distributed under the 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_XLOCK_WEK070601_HPP
-#define BOOST_XLOCK_WEK070601_HPP
-
-#include <boost/thread/detail/config.hpp>
-
-#include <boost/utility.hpp>
-#include <boost/thread/exceptions.hpp>
-
-namespace boost {
-
-class condition;
-struct xtime;
-
-namespace detail { namespace thread {
-
-template <typename Mutex>
-class lock_ops : private noncopyable
-{
-private:
- lock_ops() { }
-
-public:
- typedef typename Mutex::cv_state lock_state;
-
- static void lock(Mutex& m)
- {
- m.do_lock();
- }
- static bool trylock(Mutex& m)
- {
- return m.do_trylock();
- }
- static bool timedlock(Mutex& m, const xtime& xt)
- {
- return m.do_timedlock(xt);
- }
- static void unlock(Mutex& m)
- {
- m.do_unlock();
- }
- static void lock(Mutex& m, lock_state& state)
- {
- m.do_lock(state);
- }
- static void unlock(Mutex& m, lock_state& state)
- {
- m.do_unlock(state);
- }
-};
-
-template <typename Mutex>
-class scoped_lock : private noncopyable
-{
-public:
- typedef Mutex mutex_type;
-
- explicit scoped_lock(Mutex& mx, bool initially_locked=true)
- : m_mutex(mx), m_locked(false)
- {
- if (initially_locked) lock();
- }
- ~scoped_lock()
- {
- if (m_locked) unlock();
- }
-
- void lock()
- {
- if (m_locked) throw lock_error();
- lock_ops<Mutex>::lock(m_mutex);
- m_locked = true;
- }
- void unlock()
- {
- if (!m_locked) throw lock_error();
- lock_ops<Mutex>::unlock(m_mutex);
- m_locked = false;
- }
-
- bool locked() const { return m_locked; }
- operator const void*() const { return m_locked ? this : 0; }
-
-private:
- friend class boost::condition;
-
- Mutex& m_mutex;
- bool m_locked;
-};
-
-template <typename TryMutex>
-class scoped_try_lock : private noncopyable
-{
-public:
- typedef TryMutex mutex_type;
-
- explicit scoped_try_lock(TryMutex& mx)
- : m_mutex(mx), m_locked(false)
- {
- try_lock();
- }
- scoped_try_lock(TryMutex& mx, bool initially_locked)
- : m_mutex(mx), m_locked(false)
- {
- if (initially_locked) lock();
- }
- ~scoped_try_lock()
- {
- if (m_locked) unlock();
- }
-
- void lock()
- {
- if (m_locked) throw lock_error();
- lock_ops<TryMutex>::lock(m_mutex);
- m_locked = true;
- }
- bool try_lock()
- {
- if (m_locked) throw lock_error();
- return (m_locked = lock_ops<TryMutex>::trylock(m_mutex));
- }
- void unlock()
- {
- if (!m_locked) throw lock_error();
- lock_ops<TryMutex>::unlock(m_mutex);
- m_locked = false;
- }
-
- bool locked() const { return m_locked; }
- operator const void*() const { return m_locked ? this : 0; }
-
-private:
- friend class boost::condition;
-
- TryMutex& m_mutex;
- bool m_locked;
-};
-
-template <typename TimedMutex>
-class scoped_timed_lock : private noncopyable
-{
-public:
- typedef TimedMutex mutex_type;
-
- scoped_timed_lock(TimedMutex& mx, const xtime& xt)
- : m_mutex(mx), m_locked(false)
- {
- timed_lock(xt);
- }
- scoped_timed_lock(TimedMutex& mx, bool initially_locked)
- : m_mutex(mx), m_locked(false)
- {
- if (initially_locked) lock();
- }
- ~scoped_timed_lock()
- {
- if (m_locked) unlock();
- }
-
- void lock()
- {
- if (m_locked) throw lock_error();
- lock_ops<TimedMutex>::lock(m_mutex);
- m_locked = true;
- }
- bool try_lock()
- {
- if (m_locked) throw lock_error();
- return (m_locked = lock_ops<TimedMutex>::trylock(m_mutex));
- }
- bool timed_lock(const xtime& xt)
- {
- if (m_locked) throw lock_error();
- return (m_locked = lock_ops<TimedMutex>::timedlock(m_mutex, xt));
- }
- void unlock()
- {
- if (!m_locked) throw lock_error();
- lock_ops<TimedMutex>::unlock(m_mutex);
- m_locked = false;
- }
-
- bool locked() const { return m_locked; }
- operator const void*() const { return m_locked ? this : 0; }
-
-private:
- friend class boost::condition;
-
- TimedMutex& m_mutex;
- bool m_locked;
-};
-
-} // namespace thread
-} // namespace detail
-} // namespace boost
-
-#endif // BOOST_XLOCK_WEK070601_HPP
-
-// Change Log:
-// 8 Feb 01 WEKEMPF Initial version.
-// 22 May 01 WEKEMPF Modified to use xtime for time outs.
-// 30 Jul 01 WEKEMPF Moved lock types into boost::detail::thread. Renamed
-// some types. Added locked() methods.
Deleted: branches/hash/boost/thread/detail/read_write_lock.hpp
==============================================================================
--- branches/hash/boost/thread/detail/read_write_lock.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
+++ (empty file)
@@ -1,1106 +0,0 @@
-// Copyright (C) 2002-2003
-// David Moore, Michael Glassford
-//
-// Original scoped_lock implementation
-// Copyright (C) 2001
-// William E. Kempf
-//
-// Distributed under the 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_READ_WRITE_LOCK_JDM031002_HPP
-#define BOOST_READ_WRITE_LOCK_JDM031002_HPP
-
-#include <boost/thread/detail/config.hpp>
-
-#include <boost/utility.hpp>
-#include <boost/thread/exceptions.hpp>
-#include <boost/thread/detail/lock.hpp>
-
-namespace boost {
-
-struct xtime;
-
-namespace read_write_lock_state {
- enum read_write_lock_state_enum
- {
- unlocked=0,
- read_locked=1,
- write_locked=2
- };
-} //namespace read_write_lock_state
-
-namespace detail {
-namespace thread {
-
-template <typename Mutex>
-class read_write_lock_ops : private noncopyable
-{
-private:
-
- read_write_lock_ops() { }
- ~read_write_lock_ops() { }
-
-public:
-
- typedef Mutex mutex_type;
-
- static void write_lock(Mutex& m)
- {
- m.do_write_lock();
- }
- static void read_lock(Mutex& m)
- {
- m.do_read_lock();
- }
- static void write_unlock(Mutex& m)
- {
- m.do_write_unlock();
- }
- static void read_unlock(Mutex &m)
- {
- m.do_read_unlock();
- }
- static bool try_write_lock(Mutex &m)
- {
- return m.do_try_write_lock();
- }
- static bool try_read_lock(Mutex &m)
- {
- return m.do_try_read_lock();
- }
-
- static bool timed_write_lock(Mutex &m,const xtime &xt)
- {
- return m.do_timed_write_lock(xt);
- }
- static bool timed_read_lock(Mutex &m,const xtime &xt)
- {
- return m.do_timed_read_lock(xt);
- }
-
- static void demote(Mutex & m)
- {
- m.do_demote_to_read_lock();
- }
- static bool try_demote(Mutex & m)
- {
- return m.do_try_demote_to_read_lock();
- }
- static bool timed_demote(Mutex & m,const xtime &xt)
- {
- return m.do_timed_demote_to_read_lock(xt);
- }
-
- static void promote(Mutex & m)
- {
- m.do_promote_to_write_lock();
- }
- static bool try_promote(Mutex & m)
- {
- return m.do_try_promote_to_write_lock();
- }
- static bool timed_promote(Mutex & m,const xtime &xt)
- {
- return m.do_timed_promote_to_write_lock(xt);
- }
-};
-
-template <typename ReadWriteMutex>
-class scoped_read_write_lock : private noncopyable
-{
-public:
-
- typedef ReadWriteMutex mutex_type;
-
- scoped_read_write_lock(
- ReadWriteMutex& mx,
- read_write_lock_state::read_write_lock_state_enum initial_state)
- : m_mutex(mx), m_state(read_write_lock_state::unlocked)
- {
- if (initial_state == read_write_lock_state::read_locked)
- read_lock();
- else if (initial_state == read_write_lock_state::write_locked)
- write_lock();
- }
-
- ~scoped_read_write_lock()
- {
- if (m_state != read_write_lock_state::unlocked)
- unlock();
- }
-
- void read_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<ReadWriteMutex>::read_lock(m_mutex);
- m_state = read_write_lock_state::read_locked;
- }
-
- void write_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<ReadWriteMutex>::write_lock(m_mutex);
- m_state = read_write_lock_state::write_locked;
- }
-
- void unlock()
- {
- if (m_state == read_write_lock_state::unlocked) throw lock_error();
- if (m_state == read_write_lock_state::read_locked)
- read_write_lock_ops<ReadWriteMutex>::read_unlock(m_mutex);
- else //(m_state == read_write_lock_state::write_locked)
- read_write_lock_ops<ReadWriteMutex>::write_unlock(m_mutex);
-
- m_state = read_write_lock_state::unlocked;
- }
-
- void demote(void)
- {
- if (m_state != read_write_lock_state::write_locked) throw lock_error();
- read_write_lock_ops<ReadWriteMutex>::demote(m_mutex);
- m_state = read_write_lock_state::read_locked;
- }
-
- void promote(void)
- {
- if (m_state != read_write_lock_state::read_locked) throw lock_error();
- read_write_lock_ops<ReadWriteMutex>::promote(m_mutex);
- m_state = read_write_lock_state::write_locked;
- }
-
- //If allow_unlock = true, set_lock always succeeds and
- //the function result indicates whether an unlock was required.
- //If allow_unlock = false, set_lock may fail;
- //the function result indicates whether it succeeded.
- bool set_lock(read_write_lock_state::read_write_lock_state_enum ls, bool allow_unlock = true)
- {
- bool result = !allow_unlock;
-
- if (m_state != ls)
- {
- if (m_state == read_write_lock_state::unlocked)
- {
- if (ls == read_write_lock_state::read_locked)
- read_lock();
- else //(ls == read_write_lock_state::write_locked)
- write_lock();
- }
- else //(m_state == read_write_lock_state::read_locked || m_state == read_write_lock_state::write_locked)
- {
- if (ls == read_write_lock_state::read_locked)
- demote();
- else if (ls == read_write_lock_state::write_locked)
- {
- if (allow_unlock)
- {
- result = true;
- unlock();
- write_lock();
- }
- else
- result = false;
- }
- else //(ls == read_write_lock_state::unlocked)
- unlock();
- }
- }
-
- return result;
- }
-
- bool locked() const
- {
- return m_state != read_write_lock_state::unlocked;
- }
-
- bool read_locked() const
- {
- return m_state == read_write_lock_state::read_locked;
- }
-
- bool write_locked() const
- {
- return m_state != read_write_lock_state::write_locked;
- }
-
- operator const void*() const
- {
- return (m_state != read_write_lock_state::unlocked) ? this : 0;
- }
-
- read_write_lock_state::read_write_lock_state_enum state() const
- {
- return m_state;
- }
-
-private:
-
- ReadWriteMutex& m_mutex;
- read_write_lock_state::read_write_lock_state_enum m_state;
-};
-
-template <typename ReadWriteMutex>
-class scoped_read_lock : private noncopyable
-{
-public:
-
- typedef ReadWriteMutex mutex_type;
-
- explicit scoped_read_lock(
- ReadWriteMutex& mx,
- bool initially_locked = true)
- : m_mutex(mx), m_state(read_write_lock_state::unlocked)
- {
- if (initially_locked)
- lock();
- }
-
- ~scoped_read_lock()
- {
- if (m_state != read_write_lock_state::unlocked)
- unlock();
- }
-
- void lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<ReadWriteMutex>::read_lock(m_mutex);
- m_state = read_write_lock_state::read_locked;
- }
-
- void unlock()
- {
- if (m_state != read_write_lock_state::read_locked) throw lock_error();
- read_write_lock_ops<ReadWriteMutex>::read_unlock(m_mutex);
-
- m_state = read_write_lock_state::unlocked;
- }
-
- bool locked() const
- {
- return m_state != read_write_lock_state::unlocked;
- }
-
- operator const void*() const
- {
- return (m_state != read_write_lock_state::unlocked) ? this : 0;
- }
-
-private:
-
- ReadWriteMutex& m_mutex;
- read_write_lock_state::read_write_lock_state_enum m_state;
-};
-
-template <typename ReadWriteMutex>
-class scoped_write_lock : private noncopyable
-{
-public:
-
- typedef ReadWriteMutex mutex_type;
-
- explicit scoped_write_lock(
- ReadWriteMutex& mx,
- bool initially_locked = true)
- : m_mutex(mx), m_state(read_write_lock_state::unlocked)
- {
- if (initially_locked)
- lock();
- }
-
- ~scoped_write_lock()
- {
- if (m_state != read_write_lock_state::unlocked)
- unlock();
- }
-
- void lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<ReadWriteMutex>::write_lock(m_mutex);
- m_state = read_write_lock_state::write_locked;
- }
-
- void unlock()
- {
- if (m_state != read_write_lock_state::write_locked) throw lock_error();
- read_write_lock_ops<ReadWriteMutex>::write_unlock(m_mutex);
-
- m_state = read_write_lock_state::unlocked;
- }
-
- bool locked() const
- {
- return m_state != read_write_lock_state::unlocked;
- }
-
- operator const void*() const
- {
- return (m_state != read_write_lock_state::unlocked) ? this : 0;
- }
-
-private:
-
- ReadWriteMutex& m_mutex;
- read_write_lock_state::read_write_lock_state_enum m_state;
-};
-
-template <typename TryReadWriteMutex>
-class scoped_try_read_write_lock : private noncopyable
-{
-public:
-
- typedef TryReadWriteMutex mutex_type;
-
- scoped_try_read_write_lock(
- TryReadWriteMutex& mx,
- read_write_lock_state::read_write_lock_state_enum initial_state)
- : m_mutex(mx), m_state(read_write_lock_state::unlocked)
- {
- if (initial_state == read_write_lock_state::read_locked)
- read_lock();
- else if (initial_state == read_write_lock_state::write_locked)
- write_lock();
- }
-
- ~scoped_try_read_write_lock()
- {
- if (m_state != read_write_lock_state::unlocked)
- unlock();
- }
-
- void read_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<TryReadWriteMutex>::read_lock(m_mutex);
- m_state = read_write_lock_state::read_locked;
- }
-
- bool try_read_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TryReadWriteMutex>::try_read_lock(m_mutex))
- {
- m_state = read_write_lock_state::read_locked;
- return true;
- }
- return false;
- }
-
- void write_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<TryReadWriteMutex>::write_lock(m_mutex);
- m_state = read_write_lock_state::write_locked;
- }
-
- bool try_write_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TryReadWriteMutex>::try_write_lock(m_mutex))
- {
- m_state = read_write_lock_state::write_locked;
- return true;
- }
- return false;
- }
-
- void unlock()
- {
- if (m_state == read_write_lock_state::unlocked) throw lock_error();
- if (m_state == read_write_lock_state::read_locked)
- read_write_lock_ops<TryReadWriteMutex>::read_unlock(m_mutex);
- else //(m_state == read_write_lock_state::write_locked)
- read_write_lock_ops<TryReadWriteMutex>::write_unlock(m_mutex);
-
- m_state = read_write_lock_state::unlocked;
- }
-
- void demote(void)
- {
- if (m_state != read_write_lock_state::write_locked) throw lock_error();
- read_write_lock_ops<TryReadWriteMutex>::demote(m_mutex);
- m_state = read_write_lock_state::read_locked;
- }
-
- bool try_demote(void)
- {
- if (m_state != read_write_lock_state::write_locked) throw lock_error();
- return read_write_lock_ops<TryReadWriteMutex>::try_demote(m_mutex) ? (m_state = read_write_lock_state::read_locked, true) : false;
- }
-
- void promote(void)
- {
- if (m_state != read_write_lock_state::read_locked) throw lock_error();
- read_write_lock_ops<TryReadWriteMutex>::promote(m_mutex);
- m_state = read_write_lock_state::write_locked;
- }
-
- bool try_promote(void)
- {
- if (m_state != read_write_lock_state::read_locked) throw lock_error();
- return read_write_lock_ops<TryReadWriteMutex>::try_promote(m_mutex) ? (m_state = read_write_lock_state::write_locked, true) : false;
- }
-
- //If allow_unlock = true, set_lock always succeeds and
- //the function result indicates whether an unlock was required.
- //If allow_unlock = false, set_lock may fail;
- //the function result indicates whether it succeeded.
- bool set_lock(read_write_lock_state::read_write_lock_state_enum ls, bool allow_unlock = true)
- {
- bool result = !allow_unlock;
-
- if (m_state != ls)
- {
- if (m_state == read_write_lock_state::unlocked)
- {
- if (ls == read_write_lock_state::read_locked)
- read_lock();
- else //(ls == read_write_lock_state::write_locked)
- write_lock();
- }
- else //(m_state == read_write_lock_state::read_locked || m_state == read_write_lock_state::write_locked)
- {
- if (ls == read_write_lock_state::read_locked)
- demote();
- else if (ls == read_write_lock_state::write_locked)
- {
- if (!try_promote())
- {
- if (allow_unlock)
- {
- result = true;
- unlock();
- write_lock();
- }
- else
- result = false;
- }
- }
- else //(ls == read_write_lock_state::unlocked)
- unlock();
- }
- }
-
- return result;
- }
-
- bool try_set_lock(read_write_lock_state::read_write_lock_state_enum ls)
- {
- if (m_state != ls)
- {
- if (m_state == read_write_lock_state::unlocked)
- {
- if (ls == read_write_lock_state::read_locked)
- return try_read_lock();
- else // (ls == read_write_lock_state::write_locked)
- return try_write_lock();
- }
- else //(m_state == read_write_lock_state::read_locked || m_state == read_write_lock_state::write_locked)
- {
- if (ls == read_write_lock_state::read_locked)
- return try_demote();
- else if (ls == read_write_lock_state::write_locked)
- return try_promote();
- else //(ls == read_write_lock_state::unlocked)
- return unlock(), true;
- }
- }
- else //(m_state == ls)
- return true;
- }
-
- bool locked() const
- {
- return m_state != read_write_lock_state::unlocked;
- }
-
- bool read_locked() const
- {
- return m_state == read_write_lock_state::read_locked;
- }
-
- bool write_locked() const
- {
- return m_state != read_write_lock_state::write_locked;
- }
-
- operator const void*() const
- {
- return (m_state != read_write_lock_state::unlocked) ? this : 0;
- }
-
- read_write_lock_state::read_write_lock_state_enum state() const
- {
- return m_state;
- }
-
-private:
-
- TryReadWriteMutex& m_mutex;
- read_write_lock_state::read_write_lock_state_enum m_state;
-};
-
-template <typename TryReadWriteMutex>
-class scoped_try_read_lock : private noncopyable
-{
-public:
-
- typedef TryReadWriteMutex mutex_type;
-
- explicit scoped_try_read_lock(
- TryReadWriteMutex& mx,
- bool initially_locked = true)
- : m_mutex(mx), m_state(read_write_lock_state::unlocked)
- {
- if (initially_locked)
- lock();
- }
-
- ~scoped_try_read_lock()
- {
- if (m_state != read_write_lock_state::unlocked)
- unlock();
- }
-
- void lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<TryReadWriteMutex>::read_lock(m_mutex);
- m_state = read_write_lock_state::read_locked;
- }
-
- bool try_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TryReadWriteMutex>::try_read_lock(m_mutex))
- {
- m_state = read_write_lock_state::read_locked;
- return true;
- }
- return false;
- }
-
- void unlock()
- {
- if (m_state != read_write_lock_state::read_locked) throw lock_error();
- read_write_lock_ops<TryReadWriteMutex>::read_unlock(m_mutex);
-
- m_state = read_write_lock_state::unlocked;
- }
-
- bool locked() const
- {
- return m_state != read_write_lock_state::unlocked;
- }
-
- operator const void*() const
- {
- return (m_state != read_write_lock_state::unlocked) ? this : 0;
- }
-
-private:
-
- TryReadWriteMutex& m_mutex;
- read_write_lock_state::read_write_lock_state_enum m_state;
-};
-
-template <typename TryReadWriteMutex>
-class scoped_try_write_lock : private noncopyable
-{
-public:
-
- typedef TryReadWriteMutex mutex_type;
-
- explicit scoped_try_write_lock(
- TryReadWriteMutex& mx,
- bool initially_locked = true)
- : m_mutex(mx), m_state(read_write_lock_state::unlocked)
- {
- if (initially_locked)
- lock();
- }
-
- ~scoped_try_write_lock()
- {
- if (m_state != read_write_lock_state::unlocked)
- unlock();
- }
-
- void lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<TryReadWriteMutex>::write_lock(m_mutex);
- m_state = read_write_lock_state::write_locked;
- }
-
- bool try_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TryReadWriteMutex>::try_write_lock(m_mutex))
- {
- m_state = read_write_lock_state::write_locked;
- return true;
- }
- return false;
- }
-
- void unlock()
- {
- if (m_state != read_write_lock_state::write_locked) throw lock_error();
- read_write_lock_ops<TryReadWriteMutex>::write_unlock(m_mutex);
-
- m_state = read_write_lock_state::unlocked;
- }
-
- bool locked() const
- {
- return m_state != read_write_lock_state::unlocked;
- }
-
- operator const void*() const
- {
- return (m_state != read_write_lock_state::unlocked) ? this : 0;
- }
-
-private:
-
- TryReadWriteMutex& m_mutex;
- read_write_lock_state::read_write_lock_state_enum m_state;
-};
-
-template <typename TimedReadWriteMutex>
-class scoped_timed_read_write_lock : private noncopyable
-{
-public:
-
- typedef TimedReadWriteMutex mutex_type;
-
- scoped_timed_read_write_lock(
- TimedReadWriteMutex& mx,
- read_write_lock_state::read_write_lock_state_enum initial_state)
- : m_mutex(mx), m_state(read_write_lock_state::unlocked)
- {
- if (initial_state == read_write_lock_state::read_locked)
- read_lock();
- else if (initial_state == read_write_lock_state::write_locked)
- write_lock();
- }
-
- ~scoped_timed_read_write_lock()
- {
- if (m_state != read_write_lock_state::unlocked)
- unlock();
- }
-
- void read_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<TimedReadWriteMutex>::read_lock(m_mutex);
- m_state = read_write_lock_state::read_locked;
- }
-
- bool try_read_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TimedReadWriteMutex>::try_read_lock(m_mutex))
- {
- m_state = read_write_lock_state::read_locked;
- return true;
- }
- return false;
- }
-
- bool timed_read_lock(const xtime &xt)
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TimedReadWriteMutex>::timed_read_lock(m_mutex,xt))
- {
- m_state = read_write_lock_state::read_locked;
- return true;
- }
- return false;
- }
-
- void write_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<TimedReadWriteMutex>::write_lock(m_mutex);
- m_state = read_write_lock_state::write_locked;
- }
-
- bool try_write_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TimedReadWriteMutex>::try_write_lock(m_mutex))
- {
- m_state = read_write_lock_state::write_locked;
- return true;
- }
- return false;
- }
-
- bool timed_write_lock(const xtime &xt)
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TimedReadWriteMutex>::timed_write_lock(m_mutex,xt))
- {
- m_state = read_write_lock_state::write_locked;
- return true;
- }
- return false;
- }
-
- void unlock()
- {
- if (m_state == read_write_lock_state::unlocked) throw lock_error();
- if (m_state == read_write_lock_state::read_locked)
- read_write_lock_ops<TimedReadWriteMutex>::read_unlock(m_mutex);
- else //(m_state == read_write_lock_state::write_locked)
- read_write_lock_ops<TimedReadWriteMutex>::write_unlock(m_mutex);
-
- m_state = read_write_lock_state::unlocked;
- }
-
- void demote(void)
- {
- if (m_state != read_write_lock_state::write_locked) throw lock_error();
- read_write_lock_ops<TimedReadWriteMutex>::demote(m_mutex);
- m_state = read_write_lock_state::read_locked;
- }
-
- bool try_demote(void)
- {
- if (m_state != read_write_lock_state::write_locked) throw lock_error();
- return read_write_lock_ops<TimedReadWriteMutex>::try_demote(m_mutex) ? (m_state = read_write_lock_state::read_locked, true) : false;
- }
-
- bool timed_demote(const xtime &xt)
- {
- if (m_state != read_write_lock_state::write_locked) throw lock_error();
- return read_write_lock_ops<TimedReadWriteMutex>::timed_demote(m_mutex, xt) ? (m_state = read_write_lock_state::read_locked, true) : false;
- }
-
- void promote(void)
- {
- if (m_state != read_write_lock_state::read_locked) throw lock_error();
- read_write_lock_ops<TimedReadWriteMutex>::promote(m_mutex);
- m_state = read_write_lock_state::write_locked;
- }
-
- bool try_promote(void)
- {
- if (m_state != read_write_lock_state::read_locked) throw lock_error();
- return read_write_lock_ops<TimedReadWriteMutex>::try_promote(m_mutex) ? (m_state = read_write_lock_state::write_locked, true) : false;
- }
-
- bool timed_promote(const xtime &xt)
- {
- if (m_state != read_write_lock_state::read_locked) throw lock_error();
- return read_write_lock_ops<TimedReadWriteMutex>::timed_promote(m_mutex, xt) ? (m_state = read_write_lock_state::write_locked, true) : false;
- }
-
- //If allow_unlock = true, set_lock always succeeds and
- //the function result indicates whether an unlock was required.
- //If allow_unlock = false, set_lock may fail;
- //the function result indicates whether it succeeded.
- bool set_lock(read_write_lock_state::read_write_lock_state_enum ls, bool allow_unlock = true)
- {
- bool result = !allow_unlock;
-
- if (m_state != ls)
- {
- if (m_state == read_write_lock_state::unlocked)
- {
- if (ls == read_write_lock_state::read_locked)
- read_lock();
- else //(ls == read_write_lock_state::write_locked)
- write_lock();
- }
- else //(m_state == read_write_lock_state::read_locked || m_state == read_write_lock_state::write_locked)
- {
- if (ls == read_write_lock_state::read_locked)
- demote();
- else if (ls == read_write_lock_state::write_locked)
- {
- if (!try_promote())
- {
- if (allow_unlock)
- {
- result = true;
- unlock();
- write_lock();
- }
- else
- result = false;
- }
- }
- else //(ls == read_write_lock_state::unlocked)
- unlock();
- }
- }
-
- return result;
- }
-
- bool try_set_lock(read_write_lock_state::read_write_lock_state_enum ls)
- {
- if (m_state != ls)
- {
- if (m_state == read_write_lock_state::unlocked)
- {
- if (ls == read_write_lock_state::read_locked)
- return try_read_lock();
- else // (ls == read_write_lock_state::write_locked)
- return try_write_lock();
- }
- else //(m_state == read_write_lock_state::read_locked || m_state == read_write_lock_state::write_locked)
- {
- if (ls == read_write_lock_state::read_locked)
- return try_demote();
- else if (ls == read_write_lock_state::write_locked)
- return try_promote();
- else //(ls == read_write_lock_state::unlocked)
- return unlock(), true;
- }
- }
- else //(m_state == ls)
- return true;
- }
-
- bool timed_set_lock(read_write_lock_state::read_write_lock_state_enum ls, const xtime &xt)
- {
- if (m_state != ls)
- {
- if (m_state == read_write_lock_state::unlocked)
- {
- if (ls == read_write_lock_state::read_locked)
- return timed_read_lock(xt);
- else // (ls == read_write_lock_state::write_locked)
- return timed_write_lock(xt);
- }
- else //(m_state == read_write_lock_state::read_locked || m_state == read_write_lock_state::write_locked)
- {
- if (ls == read_write_lock_state::read_locked)
- return timed_demote(xt);
- else if (ls == read_write_lock_state::write_locked)
- return timed_promote(xt);
- else //(ls == read_write_lock_state::unlocked)
- return unlock(), true;
- }
- }
- else //(m_state == ls)
- return true;
- }
-
- bool locked() const
- {
- return m_state != read_write_lock_state::unlocked;
- }
-
- bool read_locked() const
- {
- return m_state == read_write_lock_state::read_locked;
- }
-
- bool write_locked() const
- {
- return m_state != read_write_lock_state::write_locked;
- }
-
- operator const void*() const
- {
- return (m_state != read_write_lock_state::unlocked) ? this : 0;
- }
-
- read_write_lock_state::read_write_lock_state_enum state() const
- {
- return m_state;
- }
-
-private:
-
- TimedReadWriteMutex& m_mutex;
- read_write_lock_state::read_write_lock_state_enum m_state;
-};
-
-template <typename TimedReadWriteMutex>
-class scoped_timed_read_lock : private noncopyable
-{
-public:
-
- typedef TimedReadWriteMutex mutex_type;
-
- explicit scoped_timed_read_lock(
- TimedReadWriteMutex& mx,
- bool initially_locked = true)
- : m_mutex(mx), m_state(read_write_lock_state::unlocked)
- {
- if (initially_locked)
- lock();
- }
-
- ~scoped_timed_read_lock()
- {
- if (m_state != read_write_lock_state::unlocked)
- unlock();
- }
-
- void lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<TimedReadWriteMutex>::read_lock(m_mutex);
- m_state = read_write_lock_state::read_locked;
- }
-
- bool try_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TimedReadWriteMutex>::try_read_lock(m_mutex))
- {
- m_state = read_write_lock_state::read_locked;
- return true;
- }
- return false;
- }
-
- bool timed_lock(const xtime &xt)
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TimedReadWriteMutex>::timed_read_lock(m_mutex,xt))
- {
- m_state = read_write_lock_state::read_locked;
- return true;
- }
- return false;
- }
-
- void unlock()
- {
- if (m_state != read_write_lock_state::read_locked) throw lock_error();
- read_write_lock_ops<TimedReadWriteMutex>::read_unlock(m_mutex);
-
- m_state = read_write_lock_state::unlocked;
- }
-
- bool locked() const
- {
- return m_state != read_write_lock_state::unlocked;
- }
-
- operator const void*() const
- {
- return (m_state != read_write_lock_state::unlocked) ? this : 0;
- }
-
- read_write_lock_state::read_write_lock_state_enum state() const
- {
- return m_state;
- }
-
-private:
-
- TimedReadWriteMutex& m_mutex;
- read_write_lock_state::read_write_lock_state_enum m_state;
-};
-
-template <typename TimedReadWriteMutex>
-class scoped_timed_write_lock : private noncopyable
-{
-public:
-
- typedef TimedReadWriteMutex mutex_type;
-
- explicit scoped_timed_write_lock(
- TimedReadWriteMutex& mx,
- bool initially_locked = true)
- : m_mutex(mx), m_state(read_write_lock_state::unlocked)
- {
- if (initially_locked)
- lock();
- }
-
- ~scoped_timed_write_lock()
- {
- if (m_state != read_write_lock_state::unlocked)
- unlock();
- }
-
- void lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- read_write_lock_ops<TimedReadWriteMutex>::write_lock(m_mutex);
- m_state = read_write_lock_state::write_locked;
- }
-
- bool try_lock()
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TimedReadWriteMutex>::try_write_lock(m_mutex))
- {
- m_state = read_write_lock_state::write_locked;
- return true;
- }
- return false;
- }
-
- bool timed_lock(const xtime &xt)
- {
- if (m_state != read_write_lock_state::unlocked) throw lock_error();
- if(read_write_lock_ops<TimedReadWriteMutex>::timed_write_lock(m_mutex,xt))
- {
- m_state = read_write_lock_state::write_locked;
- return true;
- }
- return false;
- }
-
- void unlock()
- {
- if (m_state != read_write_lock_state::write_locked) throw lock_error();
- read_write_lock_ops<TimedReadWriteMutex>::write_unlock(m_mutex);
-
- m_state = read_write_lock_state::unlocked;
- }
-
- bool locked() const
- {
- return m_state != read_write_lock_state::unlocked;
- }
-
- operator const void*() const
- {
- return (m_state != read_write_lock_state::unlocked) ? this : 0;
- }
-
- read_write_lock_state::read_write_lock_state_enum state() const
- {
- return m_state;
- }
-
-private:
-
- TimedReadWriteMutex& m_mutex;
- read_write_lock_state::read_write_lock_state_enum m_state;
-};
-
-} // namespace thread
-} // namespace detail
-} // namespace boost
-
-#endif
-
-// Change Log:
-// 10 Mar 02
-// Original version.
-// 4 May 04 GlassfordM
-// Implement lock promotion and demotion (add member functions demote(),
-// try_demote(), timed_demote(), try_promote(), timed_promote(); note
-// that there is intentionally no promote() member function).
-// Add set_lock() member function.
-// Change try lock & timed lock constructor parameters for consistency.
-// Rename to improve consistency and eliminate abbreviations:
-// Use "read" and "write" instead of "shared" and "exclusive".
-// Change "rd" to "read", "wr" to "write", "rw" to "read_write".
-// Add mutex_type typdef.
Modified: branches/hash/boost/thread/exceptions.hpp
==============================================================================
--- branches/hash/boost/thread/exceptions.hpp (original)
+++ branches/hash/boost/thread/exceptions.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -1,5 +1,6 @@
// Copyright (C) 2001-2003
// William E. Kempf
+// Copyright (C) 2007 Anthony Williams
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -35,6 +36,17 @@
int m_sys_err;
};
+ class condition_error:
+ public std::exception
+ {
+ public:
+ const char* what() const throw()
+ {
+ return "Condition error";
+ }
+ };
+
+
class BOOST_THREAD_DECL lock_error : public thread_exception
{
public:
Modified: branches/hash/boost/thread/pthread/mutex.hpp
==============================================================================
--- branches/hash/boost/thread/pthread/mutex.hpp (original)
+++ branches/hash/boost/thread/pthread/mutex.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -14,6 +14,7 @@
#include <unistd.h>
#include <errno.h>
#include "timespec.hpp"
+#include "pthread_mutex_scoped_lock.hpp"
#ifdef _POSIX_TIMEOUTS
#if _POSIX_TIMEOUTS >= 0
@@ -61,6 +62,13 @@
BOOST_ASSERT(!res || res==EBUSY);
return !res;
}
+
+ typedef pthread_mutex_t* native_handle_type;
+ native_handle_type native_handle() const
+ {
+ return &m;
+ }
+
typedef unique_lock<mutex> scoped_lock;
typedef scoped_lock scoped_try_lock;
};
@@ -75,25 +83,6 @@
#ifndef BOOST_PTHREAD_HAS_TIMEDLOCK
pthread_cond_t cond;
bool is_locked;
-
- struct pthread_mutex_scoped_lock
- {
- pthread_mutex_t* m;
- explicit pthread_mutex_scoped_lock(pthread_mutex_t* m_):
- m(m_)
- {
- int const res=pthread_mutex_lock(m);
- BOOST_ASSERT(!res);
- }
- ~pthread_mutex_scoped_lock()
- {
- int const res=pthread_mutex_unlock(m);
- BOOST_ASSERT(!res);
- }
-
- };
-
-
#endif
public:
timed_mutex()
@@ -159,7 +148,7 @@
#else
void lock()
{
- pthread_mutex_scoped_lock const _(&m);
+ boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
while(is_locked)
{
int const cond_res=pthread_cond_wait(&cond,&m);
@@ -170,7 +159,7 @@
void unlock()
{
- pthread_mutex_scoped_lock const _(&m);
+ boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
is_locked=false;
int const res=pthread_cond_signal(&cond);
BOOST_ASSERT(!res);
@@ -178,7 +167,7 @@
bool try_lock()
{
- pthread_mutex_scoped_lock const _(&m);
+ boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
if(is_locked)
{
return false;
@@ -190,7 +179,7 @@
bool timed_lock(system_time const & abs_time)
{
struct timespec const timeout=detail::get_timespec(abs_time);
- pthread_mutex_scoped_lock const _(&m);
+ boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
while(is_locked)
{
int const cond_res=pthread_cond_timedwait(&cond,&m,&timeout);
Modified: branches/hash/boost/thread/pthread/recursive_mutex.hpp
==============================================================================
--- branches/hash/boost/thread/pthread/recursive_mutex.hpp (original)
+++ branches/hash/boost/thread/pthread/recursive_mutex.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -15,6 +15,7 @@
#include <boost/date_time/posix_time/conversion.hpp>
#include <errno.h>
#include "timespec.hpp"
+#include "pthread_mutex_scoped_lock.hpp"
#ifdef _POSIX_TIMEOUTS
#if _POSIX_TIMEOUTS >= 0
@@ -93,25 +94,6 @@
bool is_locked;
pthread_t owner;
unsigned count;
-
- struct pthread_mutex_scoped_lock
- {
- pthread_mutex_t* m;
- explicit pthread_mutex_scoped_lock(pthread_mutex_t* m_):
- m(m_)
- {
- int const res=pthread_mutex_lock(m);
- BOOST_ASSERT(!res);
- }
- ~pthread_mutex_scoped_lock()
- {
- int const res=pthread_mutex_unlock(m);
- BOOST_ASSERT(!res);
- }
-
- };
-
-
#endif
public:
recursive_timed_mutex()
@@ -201,7 +183,7 @@
#else
void lock()
{
- pthread_mutex_scoped_lock const _(&m);
+ boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
if(is_locked && owner==pthread_self())
{
++count;
@@ -220,7 +202,7 @@
void unlock()
{
- pthread_mutex_scoped_lock const _(&m);
+ boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
if(!--count)
{
is_locked=false;
@@ -231,7 +213,7 @@
bool try_lock()
{
- pthread_mutex_scoped_lock const _(&m);
+ boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
if(is_locked && owner!=pthread_self())
{
return false;
@@ -245,7 +227,7 @@
bool timed_lock(system_time const & abs_time)
{
struct timespec const timeout=detail::get_timespec(abs_time);
- pthread_mutex_scoped_lock const _(&m);
+ boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
if(is_locked && owner==pthread_self())
{
++count;
Modified: branches/hash/boost/thread/pthread/shared_mutex.hpp
==============================================================================
--- branches/hash/boost/thread/pthread/shared_mutex.hpp (original)
+++ branches/hash/boost/thread/pthread/shared_mutex.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -11,7 +11,6 @@
#include <boost/static_assert.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
-#include <boost/thread/xtime.hpp>
namespace boost
{
@@ -95,7 +94,7 @@
return true;
}
- if(!shared_cond.timed_wait(lock,get_xtime(timeout)))
+ if(!shared_cond.timed_wait(lock,timeout))
{
return false;
}
@@ -157,7 +156,7 @@
state.exclusive=true;
return true;
}
- if(!exclusive_cond.timed_wait(lock,get_xtime(timeout)))
+ if(!exclusive_cond.timed_wait(lock,timeout))
{
return false;
}
@@ -216,7 +215,7 @@
return true;
}
- if(!shared_cond.timed_wait(lock,get_xtime(timeout)))
+ if(!shared_cond.timed_wait(lock,timeout))
{
return false;
}
Modified: branches/hash/boost/thread/thread.hpp
==============================================================================
--- branches/hash/boost/thread/thread.hpp (original)
+++ branches/hash/boost/thread/thread.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -17,7 +17,6 @@
#if defined(BOOST_HAS_PTHREADS)
# include <pthread.h>
-# include <boost/thread/condition.hpp>
#elif defined(BOOST_HAS_MPTASKS)
# include <Multiprocessing.h>
#endif
Modified: branches/hash/boost/thread/thread_time.hpp
==============================================================================
--- branches/hash/boost/thread/thread_time.hpp (original)
+++ branches/hash/boost/thread/thread_time.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -19,18 +19,18 @@
return system_time(boost::posix_time::pos_infin);
}
- inline unsigned get_milliseconds_until(system_time const& target_time)
+ inline unsigned long get_milliseconds_until(system_time const& target_time)
{
if(target_time.is_pos_infinity())
{
- return ~0u;
+ return ~(unsigned long)0;
}
system_time const now=get_system_time();
if(target_time<=now)
{
return 0;
}
- return (target_time-now).total_milliseconds()+1;
+ return static_cast<unsigned long>((target_time-now).total_milliseconds()+1);
}
}
Modified: branches/hash/boost/thread/win32/basic_timed_mutex.hpp
==============================================================================
--- branches/hash/boost/thread/win32/basic_timed_mutex.hpp (original)
+++ branches/hash/boost/thread/win32/basic_timed_mutex.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -13,6 +13,7 @@
#include "thread_primitives.hpp"
#include "interlocked_read.hpp"
#include <boost/thread/thread_time.hpp>
+#include <boost/detail/interlocked.hpp>
namespace boost
{
@@ -112,7 +113,7 @@
void unlock()
{
long const offset=lock_flag_value+1;
- long old_count=BOOST_INTERLOCKED_EXCHANGE_ADD(&active_count,-offset);
+ long old_count=BOOST_INTERLOCKED_EXCHANGE_ADD(&active_count,(~offset)+1);
if(old_count>offset)
{
Modified: branches/hash/boost/thread/win32/interlocked_read.hpp
==============================================================================
--- branches/hash/boost/thread/win32/interlocked_read.hpp (original)
+++ branches/hash/boost/thread/win32/interlocked_read.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -30,6 +30,17 @@
_ReadWriteBarrier();
return res;
}
+
+ inline void interlocked_write_release(long volatile* x,long value)
+ {
+ _ReadWriteBarrier();
+ *x=value;
+ }
+ inline void interlocked_write_release(void* volatile* x,void* value)
+ {
+ _ReadWriteBarrier();
+ *x=value;
+ }
}
}
@@ -49,6 +60,14 @@
{
return BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(x,0,0);
}
+ inline void interlocked_write_release(long volatile* x,long value)
+ {
+ BOOST_INTERLOCKED_EXCHANGE(x,value);
+ }
+ inline void interlocked_write_release(void* volatile* x,void* value)
+ {
+ BOOST_INTERLOCKED_EXCHANGE_POINTER(x,value);
+ }
}
}
Modified: branches/hash/boost/thread/xtime.hpp
==============================================================================
--- branches/hash/boost/thread/xtime.hpp (original)
+++ branches/hash/boost/thread/xtime.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -1,5 +1,6 @@
// Copyright (C) 2001-2003
// William E. Kempf
+// Copyright (C) 2007 Anthony Williams
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -39,6 +40,18 @@
xtime_sec_t sec;
xtime_nsec_t nsec;
+
+ operator system_time() const
+ {
+ return boost::posix_time::from_time_t(0)+
+ boost::posix_time::seconds(static_cast<long>(sec))+
+#ifdef BOOST_DATE_TIME_HAS_NANOSECONDS
+ boost::posix_time::nanoseconds(nsec);
+#else
+ boost::posix_time::microseconds((nsec+500)/1000);
+#endif
+ }
+
};
int BOOST_THREAD_DECL xtime_get(struct xtime* xtp, int clock_type);
@@ -56,8 +69,8 @@
xtime res={0};
boost::posix_time::time_duration const time_since_epoch=abs_time-boost::posix_time::from_time_t(0);
- res.sec=time_since_epoch.total_seconds();
- res.nsec=time_since_epoch.fractional_seconds()*(1000000000/time_since_epoch.ticks_per_second());
+ res.sec=static_cast<xtime::xtime_sec_t>(time_since_epoch.total_seconds());
+ res.nsec=static_cast<xtime::xtime_nsec_t>(time_since_epoch.fractional_seconds()*(1000000000/time_since_epoch.ticks_per_second()));
return res;
}
Modified: branches/hash/boost/utility/value_init.hpp
==============================================================================
--- branches/hash/boost/utility/value_init.hpp (original)
+++ branches/hash/boost/utility/value_init.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -31,6 +31,16 @@
#include <cstring>
#include <new>
+#ifdef BOOST_MSVC
+#pragma warning(push)
+#if _MSC_VER >= 1310
+// When using MSVC 7.1 or higher, placement new, "new (&x) T()", may trigger warning C4345:
+// "behavior change: an object of POD type constructed with an initializer of the form ()
+// will be default-initialized". There is no need to worry about this, though.
+#pragma warning(disable: 4345)
+#endif
+#endif
+
namespace boost {
namespace vinit_detail {
@@ -89,6 +99,11 @@
mutable typename ::boost::aligned_storage<sizeof(T), ::boost::alignment_of<T>::value>::type x;
} ;
+#ifdef BOOST_MSVC
+// Restores the state of warning C4345.
+#pragma warning(pop)
+#endif
+
#else
namespace boost {
Modified: branches/hash/boost/xpressive/detail/core/matcher/attr_matcher.hpp
==============================================================================
--- branches/hash/boost/xpressive/detail/core/matcher/attr_matcher.hpp (original)
+++ branches/hash/boost/xpressive/detail/core/matcher/attr_matcher.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -71,7 +71,7 @@
{
typedef typename Matcher::value_type::second_type const* result_type;
- attr_matcher(int slot, Matcher &matcher, Traits const& traits)
+ attr_matcher(int slot, Matcher const &matcher, Traits const& traits)
: slot_(slot-1)
{
char_translate<Traits, ICase> trans(traits);
Modified: branches/hash/boost/xpressive/detail/detail_fwd.hpp
==============================================================================
--- branches/hash/boost/xpressive/detail/detail_fwd.hpp (original)
+++ branches/hash/boost/xpressive/detail/detail_fwd.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -163,9 +163,6 @@
template<typename Modifier>
struct modifier_op;
- template<typename Left, typename Right>
- struct modifier_sequencer;
-
struct icase_modifier;
template<typename BidiIter, typename ICase, typename Traits>
@@ -174,9 +171,6 @@
template<typename BidiIter>
struct regex_impl;
- template<typename BidiIter>
- struct regex_matcher;
-
struct epsilon_matcher;
template<typename BidiIter>
@@ -194,9 +188,6 @@
template<typename Xpr>
struct lookbehind_matcher;
- template<typename Cond>
- struct assert_word_placeholder;
-
template<bool IsBoundary>
struct word_boundary;
Modified: branches/hash/boost/xpressive/detail/utility/symbols.hpp
==============================================================================
--- branches/hash/boost/xpressive/detail/utility/symbols.hpp (original)
+++ branches/hash/boost/xpressive/detail/utility/symbols.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -24,6 +24,7 @@
#include <boost/range/result_iterator.hpp>
#include <boost/range/begin.hpp>
#include <boost/range/end.hpp>
+#include <boost/range/value_type.hpp>
#include <boost/shared_ptr.hpp>
namespace boost { namespace xpressive { namespace detail
@@ -116,7 +117,9 @@
result_type result;
};
node* hi;
+ #ifdef BOOST_DISABLE_THREADS
long tau;
+ #endif
};
///////////////////////////////////////////////////////////////////////////////
Modified: branches/hash/boost/xpressive/proto/context/default.hpp
==============================================================================
--- branches/hash/boost/xpressive/proto/context/default.hpp (original)
+++ branches/hash/boost/xpressive/proto/context/default.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -127,7 +127,7 @@
//BOOST_MPL_ASSERT((is_same<void(*)(), result_of_fixup<void(* const &)()>::type>));
//BOOST_MPL_ASSERT((is_same<void(*)(), result_of_fixup<void(&)()>::type>));
- #if BOOST_WORKAROUND(BOOST_MSVC, == 1400)
+ #if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
template<typename T> T &make_ref_(T &t);
template<typename T> T const &make_ref_(T const &t);
#define BOOST_PROTO_REF(x) detail::make_ref_(x)
Modified: branches/hash/boost/xpressive/proto/traits.hpp
==============================================================================
--- branches/hash/boost/xpressive/proto/traits.hpp (original)
+++ branches/hash/boost/xpressive/proto/traits.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -49,7 +49,7 @@
#define BOOST_PROTO_IS_ARRAY_(T) boost::is_array<T>
#endif
- #if BOOST_WORKAROUND( BOOST_MSVC, == 1400 )
+ #if BOOST_WORKAROUND( BOOST_MSVC, >= 1400 )
#pragma warning(push)
#pragma warning(disable: 4180) // warning C4180: qualifier applied to function type has no meaning; ignored
#endif
Modified: branches/hash/boost/xpressive/sub_match.hpp
==============================================================================
--- branches/hash/boost/xpressive/sub_match.hpp (original)
+++ branches/hash/boost/xpressive/sub_match.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -70,7 +70,13 @@
typedef typename detail::string_type<value_type>::type string_type;
typedef BidiIter iterator;
- explicit sub_match(BidiIter first = BidiIter(), BidiIter second = BidiIter(), bool matched_ = false)
+ sub_match()
+ : std::pair<BidiIter, BidiIter>()
+ , matched(false)
+ {
+ }
+
+ sub_match(BidiIter first, BidiIter second, bool matched_ = false)
: std::pair<BidiIter, BidiIter>(first, second)
, matched(matched_)
{
Modified: branches/hash/boost/xpressive/xpressive_typeof.hpp
==============================================================================
--- branches/hash/boost/xpressive/xpressive_typeof.hpp (original)
+++ branches/hash/boost/xpressive/xpressive_typeof.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -19,7 +19,7 @@
#ifndef BOOST_NO_STL_LOCALE
# include <boost/typeof/std/locale.hpp>
#endif
-//#include <boost/xpressive/proto/proto_typeof.hpp>
+#include <boost/xpressive/proto/proto_typeof.hpp>
#include <boost/xpressive/xpressive_fwd.hpp>
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
@@ -30,9 +30,9 @@
BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::set_initializer)
BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::keeper_tag)
BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::modifier_tag)
+BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::lookahead_tag)
+BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::lookbehind_tag)
BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::generic_quant_tag, (unsigned int)(unsigned int))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::lookahead_tag, (bool))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::lookbehind_tag, (bool))
BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::basic_regex, (typename))
///////////////////////////////////////////////////////////////////////////////
Modified: branches/hash/doc/src/boost.xml
==============================================================================
--- branches/hash/doc/src/boost.xml (original)
+++ branches/hash/doc/src/boost.xml 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -731,17 +731,18 @@
<part id="tools">
<title>Boost Tools</title>
- <para>
- Boost developers, testers, and maintainers have developed various programs to
- help with the administration of the Boost Libraries. Like everything else about
- Boost, these tools are available in source form, and are part of the regular
- Boost distribution.
- </para>
- <para>
- Users may find these tools useful when porting Boost libraries to a new platform,
- or for use with their own applications.
- </para>
-
+ <partintro>
+ <para>
+ Boost developers, testers, and maintainers have developed various programs to
+ help with the administration of the Boost Libraries. Like everything else about
+ Boost, these tools are available in source form, and are part of the regular
+ Boost distribution.
+ </para>
+ <para>
+ Users may find these tools useful when porting Boost libraries to a new platform,
+ or for use with their own applications.
+ </para>
+ </partintro>
<xi:include href="../../tools/boostbook/doc/boostbook.xml"/>
<xi:include href="quickbook.xml"/>
<xi:include href="bjam.xml"/>
Modified: branches/hash/libs/asio/example/allocation/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/allocation/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/allocation/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -29,7 +29,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/buffers/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/buffers/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/buffers/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -29,7 +29,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/chat/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/chat/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/chat/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -30,7 +30,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/echo/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/echo/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/echo/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -30,7 +30,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/http/client/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/http/client/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/http/client/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -29,7 +29,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/http/server/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/http/server/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/http/server/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -38,7 +38,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/http/server2/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/http/server2/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/http/server2/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -38,7 +38,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/http/server3/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/http/server3/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/http/server3/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -37,7 +37,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/invocation/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/invocation/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/invocation/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -29,7 +29,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/iostreams/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/iostreams/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/iostreams/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -29,7 +29,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/multicast/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/multicast/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/multicast/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -29,7 +29,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/serialization/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/serialization/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/serialization/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -30,7 +30,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/services/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/services/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/services/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -31,7 +31,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/services/basic_logger.hpp
==============================================================================
--- branches/hash/libs/asio/example/services/basic_logger.hpp (original)
+++ branches/hash/libs/asio/example/services/basic_logger.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -53,9 +53,9 @@
}
/// Get the io_service associated with the object.
- boost::asio::io_service& io_service()
+ boost::asio::io_service& get_io_service()
{
- return service_.io_service();
+ return service_.get_io_service();
}
/// Set the output file for all logger instances.
Modified: branches/hash/libs/asio/example/socks4/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/socks4/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/socks4/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -29,7 +29,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/ssl/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/ssl/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/ssl/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -40,7 +40,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/timeouts/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/timeouts/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/timeouts/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -29,7 +29,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/timers/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/timers/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/timers/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -29,7 +29,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/example/tutorial/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/example/tutorial/Jamfile.v2 (original)
+++ branches/hash/libs/asio/example/tutorial/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -30,7 +30,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/asio/test/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/test/Jamfile.v2 (original)
+++ branches/hash/libs/asio/test/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -24,6 +24,7 @@
}
local USE_SELECT =
+ <define>BOOST_ASIO_DISABLE_DEV_POLL
<define>BOOST_ASIO_DISABLE_EPOLL
<define>BOOST_ASIO_DISABLE_KQUEUE
<define>BOOST_ASIO_DISABLE_IOCP
Modified: branches/hash/libs/asio/test/ssl/Jamfile.v2
==============================================================================
--- branches/hash/libs/asio/test/ssl/Jamfile.v2 (original)
+++ branches/hash/libs/asio/test/ssl/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -40,7 +40,7 @@
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
- <os>NT:<define>_WIN32_WINNT=0x0500
+ <os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
Modified: branches/hash/libs/config/test/Jamfile.v2
==============================================================================
--- branches/hash/libs/config/test/Jamfile.v2 (original)
+++ branches/hash/libs/config/test/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -1,7 +1,7 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
-# This file was automatically generated on Sat Aug 25 12:32:22 2007
+# This file was automatically generated on Fri Oct 19 13:34:11 2007
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -357,5 +357,3 @@
[ run no_wchar_t_pass.cpp ]
[ compile-fail no_wchar_t_fail.cpp ] ;
-
-
Modified: branches/hash/libs/config/test/config_info.cpp
==============================================================================
--- branches/hash/libs/config/test/config_info.cpp (original)
+++ branches/hash/libs/config/test/config_info.cpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -10,6 +10,9 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
+//
+// Revision $Id$
+//
#include <boost/config.hpp>
#include <boost/version.hpp>
@@ -1012,6 +1015,9 @@
+
+
+
// END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL);
Modified: branches/hash/libs/config/test/config_test.cpp
==============================================================================
--- branches/hash/libs/config/test/config_test.cpp (original)
+++ branches/hash/libs/config/test/config_test.cpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -1,17 +1,19 @@
-// This file was automatically generated on Sat Aug 25 12:32:22 2007
+// This file was automatically generated on Fri Oct 19 13:34:11 2007
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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)
-// See http://www.boost.org/libs/config for the most recent version.
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
// Test file for config setup
// This file should compile, if it does not then
// one or more macros need to be defined.
// see boost_*.ipp for more details
-
// Do not edit this file, it was generated automatically by
#include <boost/config.hpp>
@@ -1147,4 +1149,3 @@
return error_count;
}
-
Modified: branches/hash/libs/config/test/math_info.cpp
==============================================================================
--- branches/hash/libs/config/test/math_info.cpp (original)
+++ branches/hash/libs/config/test/math_info.cpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -280,6 +280,12 @@
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
"Macros from <math.h>" << std::endl;
+#ifdef __BORLANDC__
+ // Turn off hardware exceptions so we don't just abort
+ // when calling numeric_limits members.
+ _control87(MCW_EM,MCW_EM);
+#endif
+
PRINT_EXPRESSION(HUGE_VAL);
#ifdef HUGE_VALF
PRINT_EXPRESSION(HUGE_VALF);
Modified: branches/hash/libs/config/tools/generate.cpp
==============================================================================
--- branches/hash/libs/config/tools/generate.cpp (original)
+++ branches/hash/libs/config/tools/generate.cpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -30,7 +30,8 @@
"// Boost Software License, Version 1.0. (See accompanying file \n"
"// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n"
"\n"
-"// See http://www.boost.org/libs/config for the most recent version.");
+"// See http://www.boost.org/libs/config for the most recent version."
+"//\n// Revision $Id$\n//\n");
std::stringstream config_test1;
std::stringstream config_test1a;
@@ -128,9 +129,9 @@
"path-constant DOT : . ;\n"
"include $(DOT)/options_v2.jam ;\n\n"
"run config_info.cpp ;\n"
- "run math_info.cpp : : : <toolset>borland:<runtime-link>static ;\n"
+ "run math_info.cpp : : : <toolset>borland:<runtime-link>static <toolset>borland:<link>static ;\n"
"run config_test.cpp ;\n"
- "run limits_test.cpp ;\n"
+ "run limits_test.cpp ../../test/build//boost_test_exec_monitor ;\n"
"run abi/abi_test.cpp abi/main.cpp ;\n\n";
ofs << jamfile_v2.str() << std::endl;
Modified: branches/hash/libs/filesystem/build/Jamfile.v2
==============================================================================
--- branches/hash/libs/filesystem/build/Jamfile.v2 (original)
+++ branches/hash/libs/filesystem/build/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -25,6 +25,9 @@
:
<link>shared:<define>BOOST_ALL_DYN_LINK=1 # tell source we're building dll's
<link>static:<define>BOOST_All_STATIC_LINK=1 # tell source we're building static lib's
+ :
+ :
+ <library>../../system/build//boost_system
;
install dist-lib
Modified: branches/hash/libs/filesystem/test/operations_test.cpp
==============================================================================
--- branches/hash/libs/filesystem/test/operations_test.cpp (original)
+++ branches/hash/libs/filesystem/test/operations_test.cpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -53,6 +53,10 @@
using ::difftime; using ::time; using ::tm; using ::mktime; using ::system; }
# endif
+#ifdef BOOST_WINDOWS_API
+# include <windows.h>
+#endif
+
#define CHECK_EXCEPTION(Functor,Expect) throws_fs_error(Functor,Expect,__LINE__)
namespace
@@ -62,6 +66,8 @@
bool report_throws;
fs::directory_iterator end_itr;
+ unsigned short language_id; // 0 except for Windows
+
const char * temp_dir_name = "temp_fs_test_dir";
void create_file( const fs::path & ph, const std::string & contents )
@@ -141,7 +147,7 @@
{
exception_thrown = true;
if ( report_throws ) std::cout << x.what() << std::endl;
- if ( platform == "Windows" )
+ if ( platform == "Windows" && language_id == 0x0409 ) // English (United States)
BOOST_CHECK( std::strcmp( x.what(),
"boost::filesystem::create_directory" ) == 0 );
}
@@ -156,7 +162,7 @@
{
exception_thrown = true;
if ( report_throws ) std::cout << x.what() << std::endl;
- if ( platform == "Windows" )
+ if ( platform == "Windows" && language_id == 0x0409 ) // English (United States)
BOOST_CHECK( std::strcmp( x.what(),
"boost::filesystem::create_directory: The system cannot find the path specified" ) == 0 );
}
@@ -171,7 +177,7 @@
{
exception_thrown = true;
if ( report_throws ) std::cout << x.what() << std::endl;
- if ( platform == "Windows" )
+ if ( platform == "Windows" && language_id == 0x0409 ) // English (United States)
{
bool ok ( std::strcmp( x.what(),
"boost::filesystem::create_directory: The system cannot find the path specified: \"no-such-dir\\foo\\bar\"" ) == 0 );
@@ -193,7 +199,7 @@
{
exception_thrown = true;
if ( report_throws ) std::cout << x.what() << std::endl;
- if ( platform == "Windows" )
+ if ( platform == "Windows" && language_id == 0x0409 ) // English (United States)
{
bool ok ( std::strcmp( x.what(),
"boost::filesystem::create_directory: The system cannot find the path specified: \"no-such-dir\\foo\\bar\"" ) == 0 );
@@ -263,6 +269,7 @@
platform = "POSIX";
# elif defined( BOOST_WINDOWS_API )
platform = "Windows";
+ language_id = ::GetUserDefaultUILanguage();
# else
platform = ( platform == "Win32" || platform == "Win64" || platform == "Cygwin" )
? "Windows"
Modified: branches/hash/libs/functional/hash/doc/portability.qbk
==============================================================================
--- branches/hash/libs/functional/hash/doc/portability.qbk (original)
+++ branches/hash/libs/functional/hash/doc/portability.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -10,7 +10,7 @@
__boost_hash__ is written to be as portable as possible, but unfortunately, several
older compilers don't support argument dependent lookup (ADL) - the mechanism
used for customisation. On those compilers custom overloads for `hash_value`
-need to be declared in the boost namespace.
+needs to be declared in the boost namespace.
On a strictly standards compliant compiler, an overload defined in the
boost namespace won't be found when __boost_hash__ is instantiated,
Modified: branches/hash/libs/functional/hash/doc/ref.xml
==============================================================================
--- branches/hash/libs/functional/hash/doc/ref.xml (original)
+++ branches/hash/libs/functional/hash/doc/ref.xml 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -406,8 +406,6 @@
</method>
</struct-specialization>
- <free-function-group name="Support functions (Boost extension).">
-
<!--
boost::hash_combine
-->
@@ -502,10 +500,6 @@
</para></throws>
</overloaded-function>
- </free-function-group>
-
- <free-function-group name="Overloadable hash implementation (Boost extension).">
-
<!--
boost::hash_value - integers
-->
@@ -803,7 +797,6 @@
</informaltable>
</returns>
</overloaded-function>
- </free-function-group>
</namespace>
</header>
</library-reference>
Modified: branches/hash/libs/functional/hash/test/hash_number_test.cpp
==============================================================================
--- branches/hash/libs/functional/hash/test/hash_number_test.cpp (original)
+++ branches/hash/libs/functional/hash/test/hash_number_test.cpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -156,7 +156,6 @@
NUMERIC_TEST(float, float)
NUMERIC_TEST(double, double)
- NUMERIC_TEST(long double, ldouble)
bool_test();
Modified: branches/hash/libs/graph/example/matching_example.cpp
==============================================================================
--- branches/hash/libs/graph/example/matching_example.cpp (original)
+++ branches/hash/libs/graph/example/matching_example.cpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -70,7 +70,8 @@
// matching returned is not actually a maximum cardinality matching
// in the graph.
- assert(checked_edmonds_maximum_cardinality_matching(g, &mate[0]));
+ bool success = checked_edmonds_maximum_cardinality_matching(g, &mate[0]);
+ assert(success);
std::cout << "In the following graph:" << std::endl << std::endl;
@@ -96,7 +97,8 @@
add_edge(12,13,g);
add_edge(16,17,g);
- assert(checked_edmonds_maximum_cardinality_matching(g, &mate[0]));
+ success = checked_edmonds_maximum_cardinality_matching(g, &mate[0]);
+ assert(success);
std::cout << "In the following graph:" << std::endl << std::endl;
Modified: branches/hash/libs/interprocess/doc/Jamfile.v2
==============================================================================
--- branches/hash/libs/interprocess/doc/Jamfile.v2 (original)
+++ branches/hash/libs/interprocess/doc/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -26,8 +26,8 @@
<doxygen:param>HIDE_UNDOC_MEMBERS=YES
<doxygen:param>EXTRACT_PRIVATE=NO
<doxygen:param>EXPAND_ONLY_PREDEF=YES
- <xsl:param>"boost.doxygen.reftitle=\"Boost.Interprocess Reference\""
- <xsl:param>"boost.doxygen.refid=\"reference\""
+ <xsl:param>"boost.doxygen.reftitle=Boost.Interprocess Reference"
+ <xsl:param>"boost.doxygen.refid=reference"
;
xml interprocess : interprocess.qbk ;
Modified: branches/hash/libs/interprocess/doc/interprocess.qbk
==============================================================================
--- branches/hash/libs/interprocess/doc/interprocess.qbk (original)
+++ branches/hash/libs/interprocess/doc/interprocess.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -1949,7 +1949,11 @@
[*Returns:] If acquires upgradable ownership, returns true. Otherwise
returns false.
-[*Throws:] An exception derived from *interprocess_exception* on error.[endsect][endsect]
+[*Throws:] An exception derived from *interprocess_exception* on error.
+
+[endsect]
+
+[endsect]
[section:upgradable_mutexes_mutex_interprocess_mutexes Boost.Interprocess Upgradable Mutex Types And Headers]
Modified: branches/hash/libs/intrusive/test/itestvalue.hpp
==============================================================================
--- branches/hash/libs/intrusive/test/itestvalue.hpp (original)
+++ branches/hash/libs/intrusive/test/itestvalue.hpp 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -19,6 +19,7 @@
#include <boost/intrusive/slist_hook.hpp>
#include <boost/intrusive/unordered_set_hook.hpp>
#include <boost/intrusive/options.hpp>
+#include <boost/functional/hash.hpp>
#include "smart_ptr.hpp"
namespace boost{
Modified: branches/hash/libs/maintainers.txt
==============================================================================
--- branches/hash/libs/maintainers.txt (original)
+++ branches/hash/libs/maintainers.txt 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -25,7 +25,7 @@
interprocess Ion Gaztanaga <igaztanaga -at- gmail.com>
intrusive Ion Gaztanaga <igaztanaga -at- gmail.com>
io Daryle Walker <darylew -at- hotmail.com>
-iostreams Jonathan Turkanis <technews -at- kangaroologic.com>
+iostreams Jonathan Turkanis <turkanis -at- coderage.com>
iterator David Abrahams <dave -at- boost-consulting.com>, Thomas Witt <witt - at - acm.org>
lambda Jaakko Jarvi <jarvi -at- cs.tamu.edu>
logic Douglas Gregor <dgregor -at- cs.indiana.edu>
@@ -46,7 +46,7 @@
python David Abrahams <dave -at- boost-consulting.com>
random Jens Maurer <Jens.Maurer -at- gmx.net>
range Thorsten Ottosen <nesotto -at- cs.auc.dk>
-rational Jonathan Turkanis <technews -at- kangaroologic.com>
+rational Jonathan Turkanis <turkanis -at- coderage.com>
regex John Maddock <john -at- johnmaddock.co.uk>
serialization Robert Ramey <ramey -at- rrsd.com>
signals Douglas Gregor <dgregor -at- cs.indiana.edu>
Modified: branches/hash/libs/math/doc/complex/Jamfile.v2
==============================================================================
--- branches/hash/libs/math/doc/complex/Jamfile.v2 (original)
+++ branches/hash/libs/math/doc/complex/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -44,6 +44,7 @@
<format>pdf:<xsl:param>xep.extensions=1
# TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
<format>pdf:<xsl:param>fop.extensions=0
+ <format>pdf:<xsl:param>fop1.extensions=0
# No indent on body text:
<format>pdf:<xsl:param>body.start.indent=0pt
# Margin size:
@@ -76,3 +77,4 @@
+
Modified: branches/hash/libs/math/doc/gcd/Jamfile.v2
==============================================================================
--- branches/hash/libs/math/doc/gcd/Jamfile.v2 (original)
+++ branches/hash/libs/math/doc/gcd/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -44,6 +44,7 @@
<format>pdf:<xsl:param>xep.extensions=1
# TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
<format>pdf:<xsl:param>fop.extensions=0
+ <format>pdf:<xsl:param>fop1.extensions=0
# No indent on body text:
<format>pdf:<xsl:param>body.start.indent=0pt
# Margin size:
@@ -66,3 +67,4 @@
;
+
Modified: branches/hash/libs/math/doc/html/index.html
==============================================================================
--- branches/hash/libs/math/doc/html/index.html (original)
+++ branches/hash/libs/math/doc/html/index.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -22,8 +22,10 @@
<div>
<div><h2 class="title">
<a name="boost_math"></a>Boost.Math</h2></div>
+<div><p class="copyright">Copyright © 2007 Paul A. Bristow, Hubert Holin, John Maddock, Daryle
+ Walker and Xiaogang Zhang</p></div>
<div><div class="legalnotice">
-<a name="id437518"></a><p>
+<a name="id437531"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -144,7 +146,7 @@
</td>
<td>
<p>
- Octonions, like quaternions,
+ Octonions, like quaternions,
are a relative of complex numbers.
</p>
<p>
@@ -304,8 +306,7 @@
</p>
<p>
Quaternions (and their kin) are described in far more details in this
- other document (with
- errata and addenda).
+ other document (with errata and addenda).
</p>
<p>
Some traditional constructs, such as the exponential, carry over without
@@ -362,7 +363,7 @@
</table></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: October 11, 2007 at 12:47:11 +0100</small></p></td>
+<td align="left"><p><small>Last revised: October 16, 2007 at 10:32:28 +0100</small></p></td>
<td align="right"><small></small></td>
</tr></table>
<hr>
Modified: branches/hash/libs/math/doc/math.qbk
==============================================================================
--- branches/hash/libs/math/doc/math.qbk (original)
+++ branches/hash/libs/math/doc/math.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -1,5 +1,6 @@
[article Boost.Math
[quickbook 1.4]
+ [copyright 2007 Paul A. Bristow, Hubert Holin, John Maddock, Daryle Walker and Xiaogang Zhang]
[license
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
@@ -66,7 +67,7 @@
[[[@../octonion/html/index.html Octonions]]
[
-Octonions, like [@../../quaternions/html/index.html quaternions], are a relative of complex numbers.
+Octonions, like [@../quaternions/html/index.html quaternions], are a relative of complex numbers.
Octonions see some use in theoretical physics.
@@ -160,8 +161,8 @@
things is by using the formula ['[^i*i = j*j = k*k = -1]].
Quaternions (and their kin) are described in far more details in this
-other [@../../../quaternion/TQE.pdf document]
-(with [@../../../quaternion/TQE_EA.pdf errata and addenda]).
+other [@../../quaternion/TQE.pdf document]
+(with [@../../quaternion/TQE_EA.pdf errata and addenda]).
Some traditional constructs, such as the exponential, carry over without
too much change into the realms of quaternions, but other, such as taking
Modified: branches/hash/libs/math/doc/octonion/Jamfile.v2
==============================================================================
--- branches/hash/libs/math/doc/octonion/Jamfile.v2 (original)
+++ branches/hash/libs/math/doc/octonion/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -44,6 +44,7 @@
<format>pdf:<xsl:param>xep.extensions=1
# TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
<format>pdf:<xsl:param>fop.extensions=0
+ <format>pdf:<xsl:param>fop1.extensions=0
# No indent on body text:
<format>pdf:<xsl:param>body.start.indent=0pt
# Margin size:
@@ -66,3 +67,4 @@
;
+
Modified: branches/hash/libs/math/doc/quaternion/Jamfile.v2
==============================================================================
--- branches/hash/libs/math/doc/quaternion/Jamfile.v2 (original)
+++ branches/hash/libs/math/doc/quaternion/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -44,6 +44,7 @@
<format>pdf:<xsl:param>xep.extensions=1
# TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
<format>pdf:<xsl:param>fop.extensions=0
+ <format>pdf:<xsl:param>fop1.extensions=0
# No indent on body text:
<format>pdf:<xsl:param>body.start.indent=0pt
# Margin size:
@@ -66,3 +67,4 @@
;
+
Modified: branches/hash/libs/math/doc/sf_and_dist/Jamfile.v2
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/Jamfile.v2 (original)
+++ branches/hash/libs/math/doc/sf_and_dist/Jamfile.v2 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -44,6 +44,7 @@
<format>pdf:<xsl:param>xep.extensions=1
# TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
<format>pdf:<xsl:param>fop.extensions=0
+ <format>pdf:<xsl:param>fop1.extensions=0
# No indent on body text:
<format>pdf:<xsl:param>body.start.indent=0pt
# Margin size:
@@ -66,3 +67,4 @@
;
+
Modified: branches/hash/libs/math/doc/sf_and_dist/background.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/background.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/background.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -75,5 +75,11 @@
[endsect]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
Modified: branches/hash/libs/math/doc/sf_and_dist/bessel_ik.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/bessel_ik.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/bessel_ik.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -189,3 +189,9 @@
[endsect]
+[/
+ Copyright 2006 John Maddock, Paul A. Bristow and Xiaogang Zhang.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
Modified: branches/hash/libs/math/doc/sf_and_dist/bessel_introduction.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/bessel_introduction.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/bessel_introduction.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -116,3 +116,9 @@
[endsect]
+[/
+ Copyright 2006 John Maddock, Paul A. Bristow and Xiaogang Zhang.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
Modified: branches/hash/libs/math/doc/sf_and_dist/bessel_jy.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/bessel_jy.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/bessel_jy.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -54,7 +54,7 @@
[h4 Testing]
There are two sets of test values: spot values calculated using
-[@http//:functions.wolfram.com functions.wolfram.com],
+[@http://functions.wolfram.com functions.wolfram.com],
and a much larger set of tests computed using
a simplified version of this implementation
(with all the special case handling removed).
@@ -129,7 +129,7 @@
some remarkably inaccurate results with some of the test data (no significant figures
correct), and even GSL performs badly with some inputs to J[sub v]. Note that
by way of double-checking these results, the worst performing __cephes and GSL cases
-were recomputed using [@http//:functions.wolfram.com functions.wolfram.com],
+were recomputed using [@http://functions.wolfram.com functions.wolfram.com],
and the result checked against our test data: no errors in the test data were found.
[h4 Implementation]
@@ -253,3 +253,9 @@
[endsect]
+[/
+ Copyright 2006 John Maddock, Paul A. Bristow and Xiaogang Zhang.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
Modified: branches/hash/libs/math/doc/sf_and_dist/bessel_spherical.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/bessel_spherical.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/bessel_spherical.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -79,3 +79,9 @@
[endsect]
+[/
+ Copyright 2006 John Maddock, Paul A. Bristow and Xiaogang Zhang.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
Modified: branches/hash/libs/math/doc/sf_and_dist/concepts.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/concepts.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/concepts.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -16,7 +16,7 @@
Finally there is a high precision __lanczos suitable for use with `boost::math::ntl::RR`,
used at 1000-bit precision in
-[@../tools/ntl_rr_lanczos.hpp libs/math/tools/ntl_rr_lanczos.hpp].
+[@../../../tools/ntl_rr_lanczos.hpp libs/math/tools/ntl_rr_lanczos.hpp].
The approximation has a theoretical precision of > 90 decimal digits,
and an experimental precision of > 100 decimal digits. To use that
approximation, just include that header before any of the special
@@ -116,7 +116,7 @@
# The function `epsilon` can be synthesised from the others, so no
explicit specialisation is required provided the precision
of RealType does not vary at runtime (see the header
-[@../../../../../boost/math/tools/ntl.hpp boost/math/tools/ntl.hpp]
+[@../../../../../boost/math/bindings/rr.hpp boost/math/bindings/rr.hpp]
for an example where the precision does vary at runtime).
# The functions `digits`, `max_value` and `min_value`, all get synthesised
automatically from `std::numeric_limits`. However, if `numeric_limits`
@@ -185,7 +185,7 @@
You may be able to adapt an existing approximation from
[@../../../../../boost/math/special_functions/lanczos.hpp
boost/math/special_functions/lanczos.hpp] or
-[@../tools/ntl_rr_lanczos.hpp libs/math/tools/ntl_rr_lanczos.hpp]:
+[@../../../tools/ntl_rr_lanczos.hpp libs/math/tools/ntl_rr_lanczos.hpp]:
you will need change
static_cast's to lexical_cast's, and the constants to /strings/
(in order to ensure the coefficients aren't truncated to long double)
@@ -280,7 +280,7 @@
been brought into the current scope with a using declaration.
There is a test program
-[@../../../teststd_real_concept_check.cpp libs/math/test/std_real_concept_check.cpp]
+[@../../../test/std_real_concept_check.cpp libs/math/test/std_real_concept_check.cpp]
that instantiates every template in this library with type
`std_real_concept` to verify it's usage of standard library functions.
@@ -335,7 +335,7 @@
for distribution types.
The test program
-[@../../../test/distribution_concept_check.cpp distribution_concept_check.cpp]
+[@../../../test/compile_test/distribution_concept_check.cpp distribution_concept_check.cpp]
is responsible for using `DistributionConcept` to verify that all the
distributions in this library conform to the
[link math_toolkit.using_udt.dist_concept Distribution concept].
Modified: branches/hash/libs/math/doc/sf_and_dist/contact_info.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/contact_info.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/contact_info.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -15,3 +15,11 @@
pbristow - at - hetp.u-net.com.
[endsect]
+
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/bernoulli.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/bernoulli.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/bernoulli.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -109,3 +109,10 @@
[endsect][/section:bernoulli_dist bernoulli]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/binomial_example.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/binomial_example.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/binomial_example.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -322,3 +322,11 @@
[endsect] [/section:binom_size_eg Estimating Sample Sizes for a Binomial Distribution.]
[endsect][/section:binom_eg Binomial Distribution]
+
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/chi_squared_examples.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/chi_squared_examples.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/chi_squared_examples.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -178,7 +178,7 @@
process to an established one.
The code for this example is contained in
-[@../../../chi_square_std_dev_test.cpp chi_square_std_dev_test.cpp], and
+[@../../../example/chi_square_std_dev_test.cpp chi_square_std_dev_test.cpp], and
we'll begin by defining the procedure that will print out the test
statistics:
@@ -372,7 +372,7 @@
note that the method used works on variance, and not standard deviation
as is usual for the Chi Squared Test.
-The code for this example is located in [@../../../chi_square_std_dev_test.cpp
+The code for this example is located in [@../../../example/chi_square_std_dev_test.cpp
chi_square_std_dev_test.cpp].
We begin by defining a procedure to print out the sample sizes required
@@ -490,3 +490,11 @@
[endsect][/section:chi_sq_size Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation]
[endsect][/section:cs_eg Chi Squared Distribution]
+
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/distribution_construction.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/distribution_construction.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/distribution_construction.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -7,3 +7,11 @@
[distribution_construction2]
[endsect] [/section:dist_construct_eg Distribution Construction Example]
+
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/f_dist_example.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/f_dist_example.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/f_dist_example.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -13,7 +13,7 @@
NIST Ceramics Division in 1996 in connection with a NIST/industry
ceramics consortium for strength optimization of ceramic strength.
-The example program is [@../example/f_test.cpp f_test.cpp],
+The example program is [@../../../example/f_test.cpp f_test.cpp],
program output has been deliberately made as similar as possible
to the DATAPLOT output in the corresponding
[@http://www.itl.nist.gov/div898/handbook/eda/section3/eda359.htm
@@ -210,3 +210,11 @@
for the better in our standard deviation.
[endsect][/section:f_eg F Distribution]
+
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/find_location_and_scale.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/find_location_and_scale.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/find_location_and_scale.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -30,3 +30,10 @@
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/gamma.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/gamma.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/gamma.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -129,3 +129,10 @@
[endsect][/section:normal_dist Normal]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/lognormal.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/lognormal.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/lognormal.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -110,3 +110,10 @@
[endsect][/section:normal_dist Normal]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/nag_library.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/nag_library.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/nag_library.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -51,3 +51,10 @@
[endsect] [/section:nag_library Comparison with C, R, FORTRAN-style Free Functions]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/negative_binomial_example.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/negative_binomial_example.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/negative_binomial_example.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -182,3 +182,11 @@
[endsect] [/section:negative_binomial_example1 Negative Binomial example 2.]
[endsect] [/section:neg_binom_eg Negative Binomial Distribution Examples]
+
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/normal_example.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/normal_example.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/normal_example.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,3 +27,10 @@
[endsect] [/section:normal_misc Some Miscellaneous Examples of the Normal Distribution]
[endsect] [/section:normal_example Normal Distribution Examples]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/pareto.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/pareto.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/pareto.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -105,3 +105,10 @@
[endsect][/section:pareto pareto]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/rayleigh.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/rayleigh.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/rayleigh.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -110,3 +110,10 @@
[endsect][/section:Rayleigh Rayleigh]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/students_t_examples.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/students_t_examples.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/students_t_examples.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -773,3 +773,10 @@
[endsect][/section:st_eg Student's t]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/triangular.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/triangular.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/triangular.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -154,9 +154,15 @@
* Evans, M.; Hastings, N.; and Peacock, B. "Triangular Distribution." Ch. 40 in Statistical Distributions, 3rd ed. New York: Wiley, pp. 187-188, 2000, ISBN - 0471371246]
* [@http://www.brighton-webs.co.uk/distributions/triangular.asp Brighton Webs Ltd. BW D-Calc 1.0 Distribution Calculator]
* [@http://www.worldscibooks.com/mathematics/etextbook/5720/5720_chap1.pdf The Triangular Distribution including its history.]
-* [@www.measurement.sk/2002/S1/Wimmer2.pdf Gejza Wimmer, Viktor Witkovsky and Tomas Duby,
+* [@http://www.measurement.sk/2002/S1/Wimmer2.pdf Gejza Wimmer, Viktor Witkovsky and Tomas Duby,
Measurement Science Review, Volume 2, Section 1, 2002, Proper Rounding Of The Measurement Results Under The Assumption Of Triangular Distribution.]
[endsect][/section:triangular_dist triangular]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/uniform.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/uniform.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/uniform.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -125,3 +125,10 @@
[endsect][/section:uniform_dist Uniform]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
+
Modified: branches/hash/libs/math/doc/sf_and_dist/distributions/weibull.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/distributions/weibull.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/distributions/weibull.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -119,3 +119,9 @@
[endsect][/section:weibull Weibull]
+[/
+ Copyright 2006 John Maddock and Paul A. Bristow.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt).
+]
Modified: branches/hash/libs/math/doc/sf_and_dist/ellint_legendre.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/ellint_legendre.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/ellint_legendre.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -188,7 +188,7 @@
[heading Testing]
The tests use a mixture of spot test values calculated using the online
-calculator at [@functions.wolfram.com
+calculator at [http://@functions.wolfram.com
functions.wolfram.com], and random test data generated using
NTL::RR at 1000-bit precision and this implementation.
@@ -296,7 +296,7 @@
[heading Testing]
The tests use a mixture of spot test values calculated using the online
-calculator at [@functions.wolfram.com
+calculator at [@http://functions.wolfram.com
functions.wolfram.com], and random test data generated using
NTL::RR at 1000-bit precision and this implementation.
Modified: branches/hash/libs/math/doc/sf_and_dist/error_handling.qbk
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/error_handling.qbk (original)
+++ branches/hash/libs/math/doc/sf_and_dist/error_handling.qbk 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -1,6 +1,6 @@
[section:error_handling Error Handling]
-[def __format [@../../../libs/format/index.html Boost.Format]]
+[def __format [@../../../../format/index.html Boost.Format]]
[heading Quick Reference]
@@ -159,7 +159,7 @@
This behaviour is chosen to assist compatibility with the behaviour of
['ISO/IEC 9899:1999 Programming languages - C]
and with the
-[@www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Draft Technical Report on C++ Library Extensions, 2005-06-24, section 5.2.1, paragraph 6]:
+[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Draft Technical Report on C++ Library Extensions, 2005-06-24, section 5.2.1, paragraph 6]:
[:['"Each of the functions declared above shall return a NaN (Not a Number)
if any argument value is a NaN, but it shall not report a domain error.
Modified: branches/hash/libs/math/doc/sf_and_dist/html/index.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/index.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/index.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -40,7 +40,7 @@
<div><p class="copyright">Copyright © 2006 -2007 John Maddock, Paul A. Bristow, Hubert Holin
and Xiaogang Zhang</p></div>
<div><div class="legalnotice">
-<a name="id489799"></a><p>
+<a name="id435870"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -351,7 +351,7 @@
<dt><span class="section"> Performance</span></dt>
<dd><dl>
<dt><span class="section"> Performance Overview</span></dt>
-<dt><span class="section"> Interpretting these Results</span></dt>
+<dt><span class="section"> Interpreting these Results</span></dt>
<dt><span class="section"><a href="math_toolkit/perf/getting_best.html"> Getting the Best Performance
from this Library</a></span></dt>
<dt><span class="section"> Comparing Compilers</span></dt>
@@ -385,7 +385,7 @@
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: October 09, 2007 at 11:19:03 GMT</small></p></td>
+<td align="left"><p><small>Last revised: October 18, 2007 at 18:09:14 GMT</small></p></td>
<td align="right"><small></small></td>
</tr></table>
<hr>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -33,7 +33,7 @@
and reflect more the general implementation philosophy used.
</p>
<a name="math_toolkit.backgrounders.implementation.implemention_philosophy"></a><h5>
-<a name="id782879"></a>
+<a name="id782848"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.implemention_philosophy">Implemention
philosophy</a>
</h5>
@@ -85,7 +85,7 @@
These could still provide sufficient accuracy for some speed-critical applications.
</p>
<a name="math_toolkit.backgrounders.implementation.accuracy_and_representation_of_test_values"></a><h5>
-<a name="id782990"></a>
+<a name="id782959"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.accuracy_and_representation_of_test_values">Accuracy
and Representation of Test Values</a>
</h5>
@@ -130,7 +130,7 @@
binary value).
</p>
<a name="math_toolkit.backgrounders.implementation.tolerance_of_tests"></a><h5>
-<a name="id783222"></a>
+<a name="id783191"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.tolerance_of_tests">Tolerance
of Tests</a>
</h5>
@@ -156,7 +156,7 @@
first that the suffix L is present, and then that the tolerance is big enough.
</p>
<a name="math_toolkit.backgrounders.implementation.handling_unsuitable_arguments"></a><h5>
-<a name="id783282"></a>
+<a name="id783250"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.handling_unsuitable_arguments">Handling
Unsuitable Arguments</a>
</h5>
@@ -212,7 +212,7 @@
<p>
This implementation is believed to follow these proposals and to assist compatibility
with <span class="emphasis"><em>ISO/IEC 9899:1999 Programming languages - C</em></span> and
- with the <a href="../../www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Draft
+ with the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Draft
Technical Report on C++ Library Extensions, 2005-06-24, section 5.2.1, paragraph
5</a>. <a href="../main_overview/error_handling.html" title="Error Handling">See
also domain_error</a>.
@@ -242,7 +242,7 @@
</p></td></tr>
</table></div>
<a name="math_toolkit.backgrounders.implementation.handling_of_functions_that_are_not_mathematically_defined"></a><h5>
-<a name="id783506"></a>
+<a name="id783475"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.handling_of_functions_that_are_not_mathematically_defined">Handling
of Functions that are Not Mathematically defined</a>
</h5>
@@ -276,7 +276,7 @@
</p></td></tr>
</table></div>
<a name="math_toolkit.backgrounders.implementation.median_of_distributions"></a><h5>
-<a name="id783647"></a>
+<a name="id783616"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.median_of_distributions">Median
of distributions</a>
</h5>
@@ -309,7 +309,7 @@
Basic Statistics.</a> give more detail, in particular for discrete distributions.
</p>
<a name="math_toolkit.backgrounders.implementation.handling_of_floating_point_infinity"></a><h5>
-<a name="id783792"></a>
+<a name="id783760"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.handling_of_floating_point_infinity">Handling
of Floating-Point Infinity</a>
</h5>
@@ -347,7 +347,7 @@
handling policies</a>.
</p>
<a name="math_toolkit.backgrounders.implementation.scale__shape_and_location"></a><h5>
-<a name="id783940"></a>
+<a name="id783909"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.scale__shape_and_location">Scale,
Shape and Location</a>
</h5>
@@ -375,7 +375,7 @@
functions, they can be added if required.
</p>
<a name="math_toolkit.backgrounders.implementation.notes_on_implementation_of_specific_functions__amp__distributions"></a><h5>
-<a name="id784406"></a>
+<a name="id784375"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.notes_on_implementation_of_specific_functions__amp__distributions">Notes
on Implementation of Specific Functions & Distributions</a>
</h5>
@@ -387,7 +387,7 @@
0 and upper = 1 would be more suitable.
</li></ul></div>
<a name="math_toolkit.backgrounders.implementation.rational_approximations_used"></a><h5>
-<a name="id784447"></a>
+<a name="id784416"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.rational_approximations_used">Rational
Approximations Used</a>
</h5>
@@ -430,7 +430,7 @@
to the "true" minimax solution.
</p>
<a name="math_toolkit.backgrounders.implementation.representation_of_mathematical_constants"></a><h5>
-<a name="id784563"></a>
+<a name="id784512"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.representation_of_mathematical_constants">Representation
of Mathematical Constants</a>
</h5>
@@ -495,7 +495,7 @@
</span><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">();</span> <span class="comment">// Context does not allow for disambiguation of overloaded function
</span></pre>
<a name="math_toolkit.backgrounders.implementation.thread_safety"></a><h5>
-<a name="id785109"></a>
+<a name="id785058"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.thread_safety">Thread
safety</a>
</h5>
@@ -520,7 +520,7 @@
the right thing here at some point.
</p>
<a name="math_toolkit.backgrounders.implementation.sources_of_test_data"></a><h5>
-<a name="id785174"></a>
+<a name="id785123"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.sources_of_test_data">Sources
of Test Data</a>
</h5>
@@ -564,13 +564,13 @@
the underlying special function is known to be difficult to implement.
</p>
<a name="math_toolkit.backgrounders.implementation.creating_and_managing_the_equations"></a><h5>
-<a name="id785284"></a>
+<a name="id785234"></a>
<a href="implementation.html#math_toolkit.backgrounders.implementation.creating_and_managing_the_equations">Creating
and Managing the Equations</a>
</h5>
<p>
The primary source for the equations is now MathML:
- see the *.mml files in libs/math/doc/equations/.
+ see the *.mml files in libs/math/doc/sf_and_dist/equations/.
</p>
<p>
These are most easily edited by a GUI editor such as Mathcast,
@@ -598,114 +598,12 @@
</p>
<pre class="programlisting">cat filename | tr -d "\r\n" | sed -e 's/.*\(<math[^>]*>.*</math>\).*/\1/' > newfile</pre>
<p>
- Setting up fonts for SVGMath is currently rather tricky, on a windows system
- JM's font setup looks like this:
+ Setting up fonts for SVGMath is currently rather tricky, on a Windows XP
+ system JM's font setup looks like this.
</p>
-<pre class="programlisting"><!-- MathML-to-SVG configuration file -->
-<config verbose<code class="literal">"true">
- <!-- Fallback font family -->
- <fallback family</code>"Lucida Sans Unicode"/>
-
- <!-- Default values for MathML properties. -->
- <!-- Most of these are defined in the MathML Rec - change with care -->
- <defaults displaystyle<code class="literal">"false"
- mathsize</code>"12pt"
- scriptminsize<code class="literal">"8pt"
- scriptsizemultiplier</code>"0.71"
- veryverythinmathspace<code class="literal">"0.0555556em"
- verythinmathspace</code>"0.111111em"
- thinmathspace<code class="literal">"0.166667em"
- mediummathspace</code>"0.222222em"
- thickmathspace<code class="literal">"0.277778em"
- verythickmathspace</code>"0.333333em"
- veryverythickmathspace<code class="literal">"0.388889em"
- rowspacing</code>"1.0ex"
- columnspacing<code class="literal">"0.8em"
- framespacing</code>"0.4em 0.5ex"/>
-
- <!-- Additional styling for individual operators -->
- <!-- Make differentials italic -->
- <operator-style operator<code class="literal">"&#x2145;" fontstyle</code>"italic"/>
- <operator-style operator<code class="literal">"&#x2146;" fontstyle</code>"italic"/>
-
- <!-- Font families -->
- <family name<code class="literal">"Times New Roman">
- <font ttf</code>"C:\WINDOWS\Fonts\times.ttf"/>
- <font weight<code class="literal">"bold" ttf</code>"C:\WINDOWS\Fonts\timesbd.ttf"/>
- <font style<code class="literal">"italic" ttf</code>"C:\WINDOWS\Fonts\timesi.ttf"/>
- <font weight<code class="literal">"bold" style</code>"italic" ttf<code class="literal">"C:\WINDOWS\Fonts\timesbi.ttf"\/>
- <\/family>
-
- <family name</code>"Arial">
- <font ttf<code class="literal">"C:\WINDOWS\Fonts\arial.ttf"\/>
- <font weight</code>"bold" ttf<code class="literal">"C:\WINDOWS\Fonts\arialbd.ttf"\/>
- <font style</code>"italic" ttf<code class="literal">"C:\WINDOWS\Fonts\ariali.ttf"\/>
- <font weight</code>"bold" style<code class="literal">"italic" ttf</code>"C:\WINDOWS\Fonts\arialbi.ttf"/>
- </family>
-
- <family name<code class="literal">"Courier New">
- <font ttf</code>"C:\WINDOWS\Fonts\cour.ttf"/>
- <font weight<code class="literal">"bold" ttf</code>"C:\WINDOWS\Fonts\courbd.ttf"/>
- <font style<code class="literal">"italic" ttf</code>"C:\WINDOWS\Fonts\couri.ttf"/>
- <font weight<code class="literal">"bold" style</code>"italic" ttf<code class="literal">"C:\WINDOWS\Fonts\courbi.ttf"\/>
- <\/family>
-
- <family name</code>"Euclid Fraktur">
- <font ttf<code class="literal">"C:\WINDOWS\Fonts\eufrak.ttf"\/>
- <font weight</code>"bold" ttf<code class="literal">"C:\WINDOWS\Fonts\eufrakb.ttf"\/>
- <\/family>
-
- <family name</code>"Monotype Corsiva">
- <font ttf<code class="literal">"C:\WINDOWS\Fonts\mtcorsva.ttf"\/>
- <\/family>
-
- <family name</code>"Lucida Sans Unicode">
- <font ttf<code class="literal">"C:\WINDOWS\Fonts\lsansuni.ttf"\/>
- <\/family>
-
- <!-- Math variant definitions -->
- <!-- Serif -->
- <mathvariant name</code>"normal"
- family<code class="literal">"Times New Roman, Lucida Sans Unicode"\/>
- <mathvariant name</code>"bold"
- family<code class="literal">"Times New Roman, Lucida Sans Unicode" weight</code>"bold"/>
- <mathvariant name<code class="literal">"italic"
- family</code>"Times New Roman, Lucida Sans Unicode" style<code class="literal">"italic"\/>
- <mathvariant name</code>"bold-italic"
- family<code class="literal">"Times New Roman, Lucida Sans Unicode" weight</code>"bold" style<code class="literal">"italic"\/>
-
- <!-- Sans-Serif -->
- <mathvariant name</code>"sans-serif"
- family<code class="literal">"Arial, Lucida Sans Unicode"\/>
- <mathvariant name</code>"bold-sans-serif"
- family<code class="literal">"Arial, Lucida Sans Unicode" weight</code>"bold"/>
- <mathvariant name<code class="literal">"sans-serif-italic"
- family</code>"Arial, Lucida Sans Unicode" style<code class="literal">"italic"\/>
- <mathvariant name</code>"sans-serif-bold-italic"
- family<code class="literal">"Arial, Lucida Sans Unicode" weight</code>"bold" style<code class="literal">"italic"\/>
-
- <!-- Fraktur -->
- <mathvariant name</code>"fraktur"
- family<code class="literal">"Euclid Fraktur, Lucida Sans Unicode"\/>
- <mathvariant name</code>"bold-fraktur"
- family<code class="literal">"Euclid Fraktur, Lucida Sans Unicode" weight</code>"bold"/>
-
- <!-- Script -->
- <mathvariant name<code class="literal">"script"
- family</code>"Monotype Corsiva, Lucida Sans Unicode"/>
- <mathvariant name<code class="literal">"bold-script"
- family</code>"Monotype Corsiva, Lucida Sans Unicode" weight<code class="literal">"bold"\/>
-
- <!-- Monospace -->
- <mathvariant name</code>"monospace" family<code class="literal">"Courier New, Lucida Sans Unicode"\/>
-
- <!-- Double-struck -->
- <mathvariant name</code>"double-struck" family="Lucida Sans Unicode"/>
-</config>
-</pre>
<p>
- Note that unlike the sample config file supplied with SVGMath this does not
- make use of the Mathematica 7 font as this lacks sufficient Unicode information
+ Note that unlike the sample config file supplied with SVGMath, this does
+ not make use of the Mathematica 7 font as this lacks sufficient Unicode information
for it to be used with either SVGMath or XEP "as is".
</p>
<p>
@@ -718,202 +616,24 @@
</p>
<pre class="programlisting">java -jar 'C:\download\open\batik-1.7\batik-rasterizer.jar' -dpi 120 *.svg</pre>
<p>
- The PDF is generated using:
+ The PDF is generated into \pdf\math.pdf using a command from a shell or command
+ window with current directory \math_toolkit\libs\math\doc\sf_and_dist, typically:
</p>
-<pre class="programlisting">$bjam -a pdf xsl:param<code class="literal">admon.graphics.extension</code>".svg" \
->xsl:param=use.role.for.mediaobject=1 xsl:param=preferred.mediaobject.role=print</pre>
+<pre class="programlisting">bjam -a pdf</pre>
<p>
Note that XEP will have to be configured to <span class="bold"><strong>use and
- embed</strong></span> whatever fonts are used by the SVG equations. JM's XEP config
- file looks like:
+ embed</strong></span> whatever fonts are used by the SVG equations (if necessary
+ editing the sample xep.xml provided by the XEP installation).
+ </p>
+<p>
+ (html is generated at math_toolkit\libs\math\doc\sf_and_dist\html\index.html
+ using just bjam -a).
+ </p>
+<p>
+ JM's XEP config file looks like this. PAB
+ had to alter his because the Lucida Sans Unicode font had a different name.
+ Changes are very likely to be required if you are not using Windows.
</p>
-<pre class="programlisting"><?xml version<code class="literal">"1.0" encoding</code>"UTF-8"?>
-<config>
-
- <!-- <code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code>= -->
- <!-- Formatter options -->
- <!-- <code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code>= -->
- <options>
- <option name<code class="literal">"LICENSE" value</code>"license.xml"/>
- <option name<code class="literal">"TMPDIR" value</code>"none"/>
- <option name<code class="literal">"BROKENIMAGE" value</code>"images/404.gif"/>
- <option name<code class="literal">"LOGO" value</code>"images/logo-renderx.svg"/>
-
- <!-- Backend options -->
- <generator-options format<code class="literal">"PDF">
- <!-- <option name</code>"COMPRESS" value<code class="literal">"false"\/> -->
- <!-- <option name</code>"PDF_VERSION" value<code class="literal">"1.3"\/> -->
- <\/generator-options>
-
- <generator-options format</code>"PostScript">
- <!-- <option name<code class="literal">"LANGUAGE_LEVEL" value</code>"2"/> -->
- <!-- <option name<code class="literal">"CLONE_EPS" value</code>"true"/> -->
- </generator-options>
-
- <generator-options format<code class="literal">"AFP">
- <option name</code>"AFPCodepageTxt" value<code class="literal">"Cp500"\/>
- <option name</code>"AFPCodepage" value<code class="literal">"T1V10500"\/>
- <option name</code>"AFPLogLevel" value<code class="literal">"0"\/>
- <option name</code>"USE_PTOCA_LEVEL" value<code class="literal">"3"\/>
- <option name</code>"USE_BCOCA_LEVEL" value<code class="literal">"1"\/>
- <option name</code>"USE_GOCA_LEVEL" value<code class="literal">"1"\/>
- <option name</code>"RESOLUTION" value<code class="literal">"1440"\/>
- <!-- <option name</code>"AFPGrayImage" value<code class="literal">"yes"\/> -->
- <option name</code>"USE_SHADING_PATTERNS" value<code class="literal">"yes"\/>
- <option name</code>"USE_REPLICATE_AND_TRIM" value<code class="literal">"yes"\/>
- <option name</code>"SHADING_PATTERN_RESOLUTION" value<code class="literal">"0.25"\/>
- <option name</code>"TRY_USING_TIFF_COMPRESSION" value<code class="literal">"yes"\/>
- <option name</code>"AFPFont,Helvetica" value<code class="literal">"C0H200.0, C0H300.0, C0H400.0, C0H500.0, C0H201.0, C0H301.0, C0H401.0, C0H501.0, 278"\/>
- <option name</code>"AFPFont,Times" value<code class="literal">"C0N200.0, C0N300.0, C0N400.0, C0N500.0, C0N201.0, C0N301.0, C0N401.0, C0N501.0, 250"\/>
- <option name</code>"AFPFont,Courier" value<code class="literal">"C04200.0, C04300.0, C04400.0, C04500.0, C04201.0, C04301.0, C04401.0, C04501.0, 600"\/>
- <option name</code>"AFPFont,Arial" value<code class="literal">"C0H200.0, C0H300.0, C0H400.0, C0H500.0, C0H201.0, C0H301.0, C0H401.0, C0H501.0, 278"\/>
- <option name</code>"AFPFont,Times New Roman" value<code class="literal">"C0N200.0, C0N300.0, C0N400.0, C0N500.0, C0N201.0, C0N301.0, C0N401.0, C0N501.0, 250"\/>
- <option name</code>"AFPFont,Verdana" value<code class="literal">"C0VE0.0, C0VEI.0, C0VEB.0, C0VEZ.0, C0H201.0, C0H301.0, C0H401.0, C0H501.0,278"\/>
- <option name</code>"AFPFont,Interstate" value<code class="literal">"C0IS0.0, C0ISB.0, C0IS0.0, C0ISB.0, C0H201.0, C0H301.0, C0H401.0, C0H501.0, 278"\/>
- <\/generator-options>
- <\/options>
-
- <!-- =</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">= -->
- <!-- Fonts -->
- <!-- =</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">= -->
-
- <fonts xml:base</code>"fonts/" default-family<code class="literal">"Helvetica">
-
- <!-- Base Adobe fonts. -->
- <font-group label</code>"Base 14" embed<code class="literal">"false">
- <font-family name</code>"Courier">
- <font><font-data afm<code class="literal">"Courier.afm"\/><\/font>
- <font style</code>"oblique"><font-data afm<code class="literal">"Courier-Oblique.afm"\/><\/font>
- <font weight</code>"bold"><font-data afm<code class="literal">"Courier-Bold.afm"\/><\/font>
- <font weight</code>"bold" style<code class="literal">"oblique"><font-data afm</code>"Courier-BoldOblique.afm"/></font>
- </font-family>
-
- <font-family name<code class="literal">"Helvetica">
- <font><font-data afm</code>"Helvetica.afm"/></font>
- <font style<code class="literal">"oblique"><font-data afm</code>"Helvetica-Oblique.afm"/></font>
- <font weight<code class="literal">"bold"><font-data afm</code>"Helvetica-Bold.afm"/></font>
- <font weight<code class="literal">"bold" style</code>"oblique"><font-data afm<code class="literal">"Helvetica-BoldOblique.afm"\/><\/font>
- <\/font-family>
-
- <font-family name</code>"Times" ligatures<code class="literal">"fi fl">
- <font><font-data afm</code>"Times-Roman.afm"/></font>
- <font style<code class="literal">"italic"><font-data afm</code>"Times-Italic.afm"/></font>
- <font weight<code class="literal">"bold"><font-data afm</code>"Times-Bold.afm"/></font>
- <font weight<code class="literal">"bold" style</code>"italic"><font-data afm<code class="literal">"Times-BoldItalic.afm"\/><\/font>
- <\/font-family>
-
- <font-family name</code>"Symbol">
- <font><font-data afm<code class="literal">"Symbol.afm"\/><\/font>
- <\/font-family>
-
- <font-family name</code>"ZapfDingbats">
- <font><font-data afm<code class="literal">"ZapfDingbats.afm"\/><\/font>
- <\/font-family>
- <\/font-group>
-
- <!-- Other Type1 fonts -->
- <font-group label</code>"Assorted Type 1" embed<code class="literal">"true">
- <font-family name</code>"OmegaSerifIPA">
- <font><font-data afm<code class="literal">"IPA.afm" pfa</code>"IPA.pfa" glyph-list<code class="literal">"IPA.glyphs"\/><\/font>
- <\/font-family>
- <font-alias name</code>"OmegaIPA" value<code class="literal">"OmegaSerifIPA"\/>
- <font-alias name</code>"Phonetic" value<code class="literal">"OmegaSerifIPA"\/>
- <\/font-group>
-
- <!-- Sample configuration for Windows TrueType fonts. -->
-
- <font-group xml:base</code>"file:/C:/Windows/Fonts/" label<code class="literal">"Windows TrueType" embed</code>"true" subset<code class="literal">"true">
- <font-family name</code>"Arial">
- <font><font-data ttf<code class="literal">"arial.ttf"\/><\/font>
- <font style</code>"oblique"><font-data ttf<code class="literal">"ariali.ttf"\/><\/font>
- <font weight</code>"bold"><font-data ttf<code class="literal">"arialbd.ttf"\/><\/font>
- <font weight</code>"bold" style<code class="literal">"oblique"><font-data ttf</code>"arialbi.ttf"/></font>
- </font-family>
-
- <font-family name<code class="literal">"Times New Roman" ligatures</code>"&#xFB01; &#xFB02;">
- <font><font-data ttf<code class="literal">"times.ttf"\/><\/font>
- <font style</code>"italic"><font-data ttf<code class="literal">"timesi.ttf"\/><\/font>
- <font weight</code>"bold"><font-data ttf<code class="literal">"timesbd.ttf"\/><\/font>
- <font weight</code>"bold" style<code class="literal">"italic"><font-data ttf</code>"timesbi.ttf"/></font>
- </font-family>
-
- <font-family name<code class="literal">"Courier New">
- <font><font-data ttf</code>"cour.ttf"/></font>
- <font style<code class="literal">"oblique"><font-data ttf</code>"couri.ttf"/></font>
- <font weight<code class="literal">"bold"><font-data ttf</code>"courbd.ttf"/></font>
- <font weight<code class="literal">"bold" style</code>"oblique"><font-data ttf<code class="literal">"courbi.ttf"\/><\/font>
- <\/font-family>
-
- <font-family name</code>"Tahoma" embed<code class="literal">"true">
- <font><font-data ttf</code>"tahoma.ttf"/></font>
- <font weight<code class="literal">"bold"><font-data ttf</code>"tahomabd.ttf"/></font>
- </font-family>
-
- <font-family name<code class="literal">"Verdana" embed</code>"true">
- <font><font-data ttf<code class="literal">"verdana.ttf"\/><\/font>
- <font style</code>"oblique"><font-data ttf<code class="literal">"verdanai.ttf"\/><\/font>
- <font weight</code>"bold"><font-data ttf<code class="literal">"verdanab.ttf"\/><\/font>
- <font weight</code>"bold" style<code class="literal">"oblique"><font-data ttf</code>"verdanaz.ttf"/></font>
- </font-family>
-
- <font-family name<code class="literal">"Palatino" embed</code>"true" ligatures<code class="literal">"&#xFB00; &#xFB01; &#xFB02; &#xFB03; &#xFB04;">
- <font><font-data ttf</code>"pala.ttf"/></font>
- <font style<code class="literal">"italic"><font-data ttf</code>"palai.ttf"/></font>
- <font weight<code class="literal">"bold"><font-data ttf</code>"palab.ttf"/></font>
- <font weight<code class="literal">"bold" style</code>"italic"><font-data ttf<code class="literal">"palabi.ttf"\/><\/font>
- <\/font-family>
-
- <font-family name</code>"Lucida Sans Unicode">
- <font><font-data ttf<code class="literal">"lsansuni.ttf"\/><\/font>
- <\/font-family>
-
- <\/font-group>
-
- <!-- Required aliases -->
- <font-alias name</code>"monospace" value<code class="literal">"Courier"\/>
- <font-alias name</code>"sans-serif" value<code class="literal">"Helvetica"\/>
- <font-alias name</code>"serif" value<code class="literal">"Times"\/>
- <font-alias name</code>"cursive" value<code class="literal">"Times"\/>
- <font-alias name</code>"fantasy" value<code class="literal">"Times"\/>
- <\/fonts>
-
- <!-- =</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">= -->
- <!-- Language-specific data: hyphenation, line breaking, etc -->
- <!-- =</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">=</code><code class="literal">= -->
- <languages default-language</code>"en-US" xml:base<code class="literal">"hyphen\/">
-
- <language name</code>"English (US)" codes<code class="literal">"none en-US eng-US">
- <hyphenation pattern</code>"hyphen.tex"/>
- </language>
-
- <language name<code class="literal">"English (UK)" codes</code>"en-GB eng-GB en eng">
- <hyphenation pattern<code class="literal">"ukhyphen.tex"\/>
- <\/language>
-
- <language name</code>"Russian" codes<code class="literal">"ru rus">
- <hyphenation pattern</code>"ruhyphal.tex" encoding<code class="literal">"koi8-r"\/>
- <\/language>
-
- <language name</code>"French" codes<code class="literal">"fr fra fre">
- <hyphenation pattern</code>"frhyph_rx.tex"/>
- </language>
-
- <language name<code class="literal">"German" codes</code>"de deu ger">
- <hyphenation pattern<code class="literal">"dehyph_rx.tex"\/>
- <\/language>
-
- <language name</code>"Spanish" codes<code class="literal">"es esl spa">
- <hyphenation pattern</code>"eshyph_rx.tex"/>
- </language>
-
- <language name<code class="literal">"Polish" codes</code>"pl pol">
- <hyphenation pattern="plhyph_rx.tex"/>
- </language>
-
- </languages>
-
-</config>
-</pre>
<p>
XZ authored his equations using the venerable Latex, JM converted these to
MathML using mxlatex.
@@ -938,6 +658,25 @@
MathML is not currently present in the Docbook output, or in the generated
HTML: this needs further investigation.
</p>
+<a name="math_toolkit.backgrounders.implementation.producing_graphs"></a><h5>
+<a name="id785497"></a>
+ <a href="implementation.html#math_toolkit.backgrounders.implementation.producing_graphs">Producing
+ Graphs</a>
+ </h5>
+<p>
+ Graphs were mostly produced by a very laborious process entailing output
+ of columns of values from C++ programs to a .csv file, use of <a href="http://www.rjsweb.fsnet.co.uk/graph/" target="_top">RJS
+ Graph</a> to arrange the display and axes, and output to a .ps file,
+ followed by conversion to .png using Adobe Photoshop, or similar utility.
+ This rigmarole is <span class="bold"><strong>not</strong></span> recommended!
+ </p>
+<p>
+ We plan to carry out this process in a single step using the <a href="http://code.google.com/soc/2007/boost/about.html" target="_top">Google
+ Summer of Code 2007</a> project of Jacob Voytko (whose work so far is
+ at .\boost-sandbox\SOC\2007\visualization) that should, when completed, allow
+ output of annotated graphs as Scalable Vector Graphic .svg files directly
+ from C++ programs.
+ </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.backgrounders.lanczos"></a> The Lanczos Approximation
</h3></div></div></div>
<a name="math_toolkit.backgrounders.lanczos.motivation"></a><h5>
-<a name="id787625"></a>
+<a name="id785888"></a>
<a href="lanczos.html#math_toolkit.backgrounders.lanczos.motivation">Motivation</a>
</h5>
<p>
@@ -100,7 +100,7 @@
functions divided by large powers into single (simpler) expressions.
</p>
<a name="math_toolkit.backgrounders.lanczos.the_approximation"></a><h5>
-<a name="id788005"></a>
+<a name="id786268"></a>
<a href="lanczos.html#math_toolkit.backgrounders.lanczos.the_approximation">The
Approximation</a>
</h5>
@@ -162,7 +162,7 @@
</p></td></tr>
</table></div>
<a name="math_toolkit.backgrounders.lanczos.computing_the_coefficients"></a><h5>
-<a name="id788268"></a>
+<a name="id786531"></a>
<a href="lanczos.html#math_toolkit.backgrounders.lanczos.computing_the_coefficients">Computing
the Coefficients</a>
</h5>
@@ -206,7 +206,7 @@
multiplied by <span class="emphasis"><em>F</em></span> as the last step.
</p>
<a name="math_toolkit.backgrounders.lanczos.choosing_the_right_parameters"></a><h5>
-<a name="id788474"></a>
+<a name="id786736"></a>
<a href="lanczos.html#math_toolkit.backgrounders.lanczos.choosing_the_right_parameters">Choosing
the Right Parameters</a>
</h5>
@@ -230,7 +230,7 @@
computing to float precision with double precision arithmetic.
</p>
<div class="table">
-<a name="id788557"></a><p class="title"><b>Table 43. Optimal choices for N and g when computing with
+<a name="id786819"></a><p class="title"><b>Table 43. Optimal choices for N and g when computing with
guard digits (source: Pugh)</b></p>
<div class="table-contents"><table class="table" summary="Optimal choices for N and g when computing with
guard digits (source: Pugh)">
@@ -373,7 +373,7 @@
exactly matches the machine epsilon for the type in question.
</p>
<div class="table">
-<a name="id788884"></a><p class="title"><b>Table 44. Optimum value for N and g when computing at fixed
+<a name="id787154"></a><p class="title"><b>Table 44. Optimum value for N and g when computing at fixed
precision</b></p>
<div class="table-contents"><table class="table" summary="Optimum value for N and g when computing at fixed
precision">
@@ -538,7 +538,7 @@
is exact, and so isn't used for the gamma function.
</p>
<a name="math_toolkit.backgrounders.lanczos.references"></a><h5>
-<a name="id789162"></a>
+<a name="id787433"></a>
<a href="lanczos.html#math_toolkit.backgrounders.lanczos.references">References</a>
</h5>
<a name="godfrey"></a><a name="pugh"></a><div class="orderedlist"><ol type="1">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.backgrounders.refs"></a> References
</h3></div></div></div>
<a name="math_toolkit.backgrounders.refs.general_references"></a><h5>
-<a name="id790525"></a>
+<a name="id788836"></a>
<a href="refs.html#math_toolkit.backgrounders.refs.general_references">General
references</a>
</h5>
@@ -80,12 +80,12 @@
to the gamma function.
</p>
<p>
- <a href="../../www.open-std.org/jtc1/sc22/wg21/docs/papers/2003" target="_top">N1514, 03-0097,
- A Proposal to Add Mathematical Special Functions to the C++ Standard Library
- (version 2), Walter E. Brown</a>
+ <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003" target="_top">N1514,
+ 03-0097, A Proposal to Add Mathematical Special Functions to the C++ Standard
+ Library (version 2), Walter E. Brown</a>
</p>
<a name="math_toolkit.backgrounders.refs.calculators__that_we_found__and_used_to_cross_check___as_far_as_their_widely_varying_accuracy_allowed__"></a><h5>
-<a name="id790679"></a>
+<a name="id788989"></a>
<a href="refs.html#math_toolkit.backgrounders.refs.calculators__that_we_found__and_used_to_cross_check___as_far_as_their_widely_varying_accuracy_allowed__">Calculators*
that we found (and used to cross-check - as far as their widely-varying accuracy
allowed).</a>
@@ -95,7 +95,7 @@
Binomial Probability Distribution Calculator.
</p>
<a name="math_toolkit.backgrounders.refs.other_libraries"></a><h5>
-<a name="id790724"></a>
+<a name="id789034"></a>
<a href="refs.html#math_toolkit.backgrounders.refs.other_libraries">Other Libraries</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -81,7 +81,7 @@
<a name="zero_error"></a><p>
</p>
<a name="math_toolkit.backgrounders.relative_error.the_impossibility_of_zero_error"></a><h5>
-<a name="id787547"></a>
+<a name="id785798"></a>
<a href="relative_error.html#math_toolkit.backgrounders.relative_error.the_impossibility_of_zero_error">The
Impossibility of Zero Error</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -94,7 +94,7 @@
are located!</em></span>
</p>
<a name="math_toolkit.backgrounders.remez.the_remez_method"></a><h5>
-<a name="id789413"></a>
+<a name="id787684"></a>
<a href="remez.html#math_toolkit.backgrounders.remez.the_remez_method">The Remez
Method</a>
</h5>
@@ -174,7 +174,7 @@
</td></tr>
</table></div>
<a name="math_toolkit.backgrounders.remez.remez_step_1"></a><h5>
-<a name="id789633"></a>
+<a name="id787904"></a>
<a href="remez.html#math_toolkit.backgrounders.remez.remez_step_1">Remez Step
1</a>
</h5>
@@ -205,7 +205,7 @@
to 5.6x10<sup>-4</sup>.
</p>
<a name="math_toolkit.backgrounders.remez.remez_step_2"></a><h5>
-<a name="id789739"></a>
+<a name="id788009"></a>
<a href="remez.html#math_toolkit.backgrounders.remez.remez_step_2">Remez Step
2</a>
</h5>
@@ -234,7 +234,7 @@
In our example we perform multi-point exchange.
</p>
<a name="math_toolkit.backgrounders.remez.iteration"></a><h5>
-<a name="id789799"></a>
+<a name="id788080"></a>
<a href="remez.html#math_toolkit.backgrounders.remez.iteration">Iteration</a>
</h5>
<p>
@@ -250,7 +250,7 @@
<span class="inlinemediaobject"><img src="../../../graphs/remez-4.png" alt="remez-4"></span>
</p>
<a name="math_toolkit.backgrounders.remez.rational_approximations"></a><h5>
-<a name="id789860"></a>
+<a name="id788141"></a>
<a href="remez.html#math_toolkit.backgrounders.remez.rational_approximations">Rational
Approximations</a>
</h5>
@@ -299,7 +299,7 @@
number of terms overall.
</p>
<a name="math_toolkit.backgrounders.remez.practical_considerations"></a><h5>
-<a name="id789983"></a>
+<a name="id788263"></a>
<a href="remez.html#math_toolkit.backgrounders.remez.practical_considerations">Practical
Considerations</a>
</h5>
@@ -407,7 +407,7 @@
desired minimax solution (5x10<sup>-4</sup>).
</p>
<a name="math_toolkit.backgrounders.remez.remez_method_checklist"></a><h5>
-<a name="id790241"></a>
+<a name="id788543"></a>
<a href="remez.html#math_toolkit.backgrounders.remez.remez_method_checklist">Remez
Method Checklist</a>
</h5>
@@ -461,7 +461,7 @@
</li>
</ul></div>
<a name="math_toolkit.backgrounders.remez.references"></a><h5>
-<a name="id790344"></a>
+<a name="id788654"></a>
<a href="remez.html#math_toolkit.backgrounders.remez.references">References</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Algorithms</a>
</h4></div></div></div>
<a name="math_toolkit.dist.dist_ref.dist_algorithms.finding_the_location_and_scale_for_normal_and_similar_distributions"></a><h5>
-<a name="id615034"></a>
+<a name="id615067"></a>
<a href="dist_algorithms.html#math_toolkit.dist.dist_ref.dist_algorithms.finding_the_location_and_scale_for_normal_and_similar_distributions">Finding
the Location and Scale for Normal and similar distributions</a>
</h5>
@@ -51,7 +51,7 @@
</span><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">complement</span><span class="special">;</span> <span class="comment">// Will be needed by users who want to use complements.
</span></pre>
<a name="math_toolkit.dist.dist_ref.dist_algorithms.find_location_function"></a><h5>
-<a name="id615190"></a>
+<a name="id615222"></a>
<a href="dist_algorithms.html#math_toolkit.dist.dist_ref.dist_algorithms.find_location_function">find_location
function</a>
</h5>
@@ -83,7 +83,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.dist.dist_ref.dist_algorithms.find_scale_function"></a><h5>
-<a name="id615813"></a>
+<a name="id615845"></a>
<a href="dist_algorithms.html#math_toolkit.dist.dist_ref.dist_algorithms.find_scale_function">find_scale
function</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -89,7 +89,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/bernoulli_cdf.png" alt="bernoulli_cdf"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.member_functions"></a><h5>
-<a name="id576561"></a>
+<a name="id576606"></a>
<a href="bernoulli_dist.html#math_toolkit.dist.dist_ref.dists.bernoulli_dist.member_functions">Member
Functions</a>
</h5>
@@ -107,7 +107,7 @@
Returns the <span class="emphasis"><em>success_fraction</em></span> parameter of this distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.non_member_accessors"></a><h5>
-<a name="id576679"></a>
+<a name="id576724"></a>
<a href="bernoulli_dist.html#math_toolkit.dist.dist_ref.dists.bernoulli_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -132,7 +132,7 @@
exception and make an error message available.
</p>
<a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.accuracy"></a><h5>
-<a name="id576854"></a>
+<a name="id576899"></a>
<a href="bernoulli_dist.html#math_toolkit.dist.dist_ref.dists.bernoulli_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -140,7 +140,7 @@
and so should have errors within an epsilon or two.
</p>
<a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.implementation"></a><h5>
-<a name="id576885"></a>
+<a name="id576930"></a>
<a href="bernoulli_dist.html#math_toolkit.dist.dist_ref.dists.bernoulli_dist.implementation">Implementation</a>
</h5>
<p>
@@ -331,7 +331,7 @@
</tbody>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.references"></a><h5>
-<a name="id577256"></a>
+<a name="id577301"></a>
<a href="bernoulli_dist.html#math_toolkit.dist.dist_ref.dists.bernoulli_dist.references">References</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -135,12 +135,12 @@
from the centre (where x = half).
</p>
<a name="math_toolkit.dist.dist_ref.dists.beta_dist.member_functions"></a><h5>
-<a name="id578391"></a>
+<a name="id578426"></a>
<a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.member_functions">Member
Functions</a>
</h5>
<a name="math_toolkit.dist.dist_ref.dists.beta_dist.constructor"></a><h6>
-<a name="id578417"></a>
+<a name="id578452"></a>
<a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.constructor">Constructor</a>
</h6>
<pre class="programlisting">
@@ -169,7 +169,7 @@
yellow in the graph above).
</p>
<a name="math_toolkit.dist.dist_ref.dists.beta_dist.parameter_accessors"></a><h6>
-<a name="id578600"></a>
+<a name="id578639"></a>
<a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.parameter_accessors">Parameter
Accessors</a>
</h6>
@@ -196,7 +196,7 @@
</span><span class="identifier">assert</span><span class="special">(</span><span class="identifier">mybeta</span><span class="special">.</span><span class="identifier">beta</span><span class="special">()</span> <span class="special">==</span> <span class="number">5.</span><span class="special">);</span> <span class="comment">// mybeta.beta() returns 5
</span></pre>
<a name="math_toolkit.dist.dist_ref.dists.beta_dist.parameter_estimators"></a><h5>
-<a name="id578879"></a>
+<a name="id578918"></a>
<a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.parameter_estimators">Parameter
Estimators</a>
</h5>
@@ -253,7 +253,7 @@
Returns the value of β that gives: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">beta_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>(</span><span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">beta</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">probability</span></code>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.beta_dist.non_member_accessor_functions"></a><h5>
-<a name="id579518"></a>
+<a name="id579558"></a>
<a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.non_member_accessor_functions">Non-member
Accessor Functions</a>
</h5>
@@ -275,7 +275,7 @@
Mathworld</a>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.beta_dist.applications"></a><h5>
-<a name="id579696"></a>
+<a name="id579736"></a>
<a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.applications">Applications</a>
</h5>
<p>
@@ -288,7 +288,7 @@
statistical inference</a>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.beta_dist.related_distributions"></a><h5>
-<a name="id579742"></a>
+<a name="id579781"></a>
<a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.related_distributions">Related
distributions</a>
</h5>
@@ -314,7 +314,7 @@
Distribution</a> with its p parameter set to x.
</p>
<a name="math_toolkit.dist.dist_ref.dists.beta_dist.accuracy"></a><h5>
-<a name="id579831"></a>
+<a name="id579870"></a>
<a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -326,7 +326,7 @@
please refer to these functions for information on accuracy.
</p>
<a name="math_toolkit.dist.dist_ref.dists.beta_dist.implementation"></a><h5>
-<a name="id579909"></a>
+<a name="id579950"></a>
<a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.implementation">Implementation</a>
</h5>
<p>
@@ -608,7 +608,7 @@
</tbody>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.beta_dist.references"></a><h5>
-<a name="id581207"></a>
+<a name="id581246"></a>
<a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.references">References</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -169,12 +169,12 @@
<p>
</p>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.member_functions"></a><h5>
-<a name="id582510"></a>
+<a name="id582546"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.member_functions">Member
Functions</a>
</h5>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.construct"></a><h6>
-<a name="id582535"></a>
+<a name="id582571"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.construct">Construct</a>
</h6>
<pre class="programlisting">
@@ -192,7 +192,7 @@
otherwise calls domain_error.
</p>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.accessors"></a><h6>
-<a name="id582697"></a>
+<a name="id582733"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.accessors">Accessors</a>
</h6>
<pre class="programlisting">
@@ -210,7 +210,7 @@
was constructed.
</p>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.lower_bound_on_the_success_fraction"></a><h6>
-<a name="id582815"></a>
+<a name="id582852"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.lower_bound_on_the_success_fraction">Lower
Bound on the Success Fraction</a>
</h6>
@@ -319,7 +319,7 @@
limits illustrated in the case of the binomial. Biometrika 26 404-413.
</p>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.upper_bound_on_the_success_fraction"></a><h6>
-<a name="id583450"></a>
+<a name="id583486"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.upper_bound_on_the_success_fraction">Upper
Bound on the Success Fraction</a>
</h6>
@@ -399,7 +399,7 @@
</td></tr>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_number_of_trials_required_for_a_certain_number_of_successes"></a><h6>
-<a name="id583892"></a>
+<a name="id583929"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_number_of_trials_required_for_a_certain_number_of_successes">Estimating
the Number of Trials Required for a Certain Number of Successes</a>
</h6>
@@ -443,7 +443,7 @@
of seeing 10 events that occur with frequency one half.
</p>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_maximum_number_of_trials_to_ensure_no_more_than_a_certain_number_of_successes"></a><h6>
-<a name="id584168"></a>
+<a name="id584204"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_maximum_number_of_trials_to_ensure_no_more_than_a_certain_number_of_successes">Estimating
the Maximum Number of Trials to Ensure no more than a Certain Number
of Successes</a>
@@ -493,7 +493,7 @@
Worked Example.</a>
</p>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.non_member_accessors"></a><h5>
-<a name="id584462"></a>
+<a name="id584499"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -518,7 +518,7 @@
in the context of this distribution:
</p>
<div class="table">
-<a name="id584676"></a><p class="title"><b>Table 7. Meaning of the non-member accessors</b></p>
+<a name="id584712"></a><p class="title"><b>Table 7. Meaning of the non-member accessors</b></p>
<div class="table-contents"><table class="table" summary="Meaning of the non-member accessors">
<colgroup>
<col>
@@ -641,7 +641,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.examples"></a><h5>
-<a name="id585235"></a>
+<a name="id585272"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.examples">Examples</a>
</h5>
<p>
@@ -649,7 +649,7 @@
examples</a> are available illustrating the use of the binomial distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.accuracy"></a><h5>
-<a name="id585275"></a>
+<a name="id585312"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -659,7 +659,7 @@
please refer to these functions for information on accuracy.
</p>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.implementation"></a><h5>
-<a name="id585325"></a>
+<a name="id585362"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.implementation">Implementation</a>
</h5>
<p>
@@ -901,7 +901,7 @@
</tbody>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.binomial_dist.references"></a><h5>
-<a name="id586665"></a>
+<a name="id586702"></a>
<a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.references">References</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -90,7 +90,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/cauchy2.png" alt="cauchy2"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.member_functions"></a><h5>
-<a name="id587348"></a>
+<a name="id587384"></a>
<a href="cauchy_dist.html#math_toolkit.dist.dist_ref.dists.cauchy_dist.member_functions">Member
Functions</a>
</h5>
@@ -119,7 +119,7 @@
Returns the scale parameter of the distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.non_member_accessors"></a><h5>
-<a name="id587562"></a>
+<a name="id587599"></a>
<a href="cauchy_dist.html#math_toolkit.dist.dist_ref.dists.cauchy_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -156,7 +156,7 @@
The domain of the random variable is [-[max_value], +[min_value]].
</p>
<a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.accuracy"></a><h5>
-<a name="id587817"></a>
+<a name="id587853"></a>
<a href="cauchy_dist.html#math_toolkit.dist.dist_ref.dists.cauchy_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -165,7 +165,7 @@
have very low error rates.
</p>
<a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.implementation"></a><h5>
-<a name="id587872"></a>
+<a name="id587909"></a>
<a href="cauchy_dist.html#math_toolkit.dist.dist_ref.dists.cauchy_dist.implementation">Implementation</a>
</h5>
<p>
@@ -281,7 +281,7 @@
</tbody>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.references"></a><h5>
-<a name="id588162"></a>
+<a name="id588198"></a>
<a href="cauchy_dist.html#math_toolkit.dist.dist_ref.dists.cauchy_dist.references">References</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -89,7 +89,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/chi_square.png" alt="chi_square"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.member_functions"></a><h5>
-<a name="id588926"></a>
+<a name="id588962"></a>
<a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.member_functions">Member
Functions</a>
</h5>
@@ -175,7 +175,7 @@
NIST Engineering Statistics Handbook, Section 7.2.3.2</a>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.non_member_accessors"></a><h5>
-<a name="id589374"></a>
+<a name="id589407"></a>
<a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -195,7 +195,7 @@
The domain of the random variable is [0, +∞].
</p>
<a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.examples"></a><h5>
-<a name="id589544"></a>
+<a name="id589577"></a>
<a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.examples">Examples</a>
</h5>
<p>
@@ -203,7 +203,7 @@
are available illustrating the use of the Chi Squared Distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.accuracy"></a><h5>
-<a name="id589585"></a>
+<a name="id589617"></a>
<a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -211,7 +211,7 @@
gamma functions</a>: please refer to the accuracy data for those functions.
</p>
<a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.implementation"></a><h5>
-<a name="id589627"></a>
+<a name="id589660"></a>
<a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.implementation">Implementation</a>
</h5>
<p>
@@ -378,7 +378,7 @@
</tbody>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.references"></a><h5>
-<a name="id589971"></a>
+<a name="id590004"></a>
<a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.references">References</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -73,7 +73,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/exponential_dist.png" alt="exponential_dist"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.exp_dist.member_functions"></a><h5>
-<a name="id590540"></a>
+<a name="id590573"></a>
<a href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.member_functions">Member
Functions</a>
</h5>
@@ -95,7 +95,7 @@
Accessor function returns the lambda parameter of the distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.exp_dist.non_member_accessors"></a><h5>
-<a name="id590684"></a>
+<a name="id590718"></a>
<a href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -115,7 +115,7 @@
The domain of the random variable is [0, +∞].
</p>
<a name="math_toolkit.dist.dist_ref.dists.exp_dist.accuracy"></a><h5>
-<a name="id590856"></a>
+<a name="id590889"></a>
<a href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -126,7 +126,7 @@
should have very low error rates.
</p>
<a name="math_toolkit.dist.dist_ref.dists.exp_dist.implementation"></a><h5>
-<a name="id590933"></a>
+<a name="id590966"></a>
<a href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.implementation">Implementation</a>
</h5>
<p>
@@ -287,7 +287,7 @@
</tbody>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.exp_dist.references"></a><h5>
-<a name="id591235"></a>
+<a name="id591268"></a>
<a href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.references">references</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -96,7 +96,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/extreme_val_dist2.png" alt="extreme_val_dist2"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.extreme_dist.member_functions"></a><h5>
-<a name="id591918"></a>
+<a name="id591950"></a>
<a href="extreme_dist.html#math_toolkit.dist.dist_ref.dists.extreme_dist.member_functions">Member
Functions</a>
</h5>
@@ -124,7 +124,7 @@
Returns the scale parameter of the distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.extreme_dist.non_member_accessors"></a><h5>
-<a name="id592145"></a>
+<a name="id592178"></a>
<a href="extreme_dist.html#math_toolkit.dist.dist_ref.dists.extreme_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -144,7 +144,7 @@
The domain of the random parameter is [-∞, +∞].
</p>
<a name="math_toolkit.dist.dist_ref.dists.extreme_dist.accuracy"></a><h5>
-<a name="id592316"></a>
+<a name="id592348"></a>
<a href="extreme_dist.html#math_toolkit.dist.dist_ref.dists.extreme_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -153,7 +153,7 @@
very low error rates.
</p>
<a name="math_toolkit.dist.dist_ref.dists.extreme_dist.implementation"></a><h5>
-<a name="id592369"></a>
+<a name="id592402"></a>
<a href="extreme_dist.html#math_toolkit.dist.dist_ref.dists.extreme_dist.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -82,7 +82,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/fisher_f.png" alt="fisher_f"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.f_dist.member_functions"></a><h5>
-<a name="id593316"></a>
+<a name="id593349"></a>
<a href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.member_functions">Member
Functions</a>
</h5>
@@ -111,7 +111,7 @@
Returns the denominator degrees of freedom parameter of the distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.f_dist.non_member_accessors"></a><h5>
-<a name="id593533"></a>
+<a name="id593566"></a>
<a href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -131,7 +131,7 @@
The domain of the random variable is [0, +∞].
</p>
<a name="math_toolkit.dist.dist_ref.dists.f_dist.examples"></a><h5>
-<a name="id593704"></a>
+<a name="id593737"></a>
<a href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.examples">Examples</a>
</h5>
<p>
@@ -139,7 +139,7 @@
are available illustrating the use of the F Distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.f_dist.accuracy"></a><h5>
-<a name="id593744"></a>
+<a name="id593777"></a>
<a href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -148,7 +148,7 @@
refer to those functions for accuracy data.
</p>
<a name="math_toolkit.dist.dist_ref.dists.f_dist.implementation"></a><h5>
-<a name="id593793"></a>
+<a name="id593826"></a>
<a href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -141,7 +141,7 @@
than a dedicated Erlang Distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.gamma_dist.member_functions"></a><h5>
-<a name="id595190"></a>
+<a name="id595224"></a>
<a href="gamma_dist.html#math_toolkit.dist.dist_ref.dists.gamma_dist.member_functions">Member
Functions</a>
</h5>
@@ -169,7 +169,7 @@
Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.gamma_dist.non_member_accessors"></a><h5>
-<a name="id595398"></a>
+<a name="id595432"></a>
<a href="gamma_dist.html#math_toolkit.dist.dist_ref.dists.gamma_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -189,7 +189,7 @@
The domain of the random variable is [0,+∞].
</p>
<a name="math_toolkit.dist.dist_ref.dists.gamma_dist.accuracy"></a><h5>
-<a name="id595568"></a>
+<a name="id595603"></a>
<a href="gamma_dist.html#math_toolkit.dist.dist_ref.dists.gamma_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -201,7 +201,7 @@
refer to the accuracy data for those functions for more information.
</p>
<a name="math_toolkit.dist.dist_ref.dists.gamma_dist.implementation"></a><h5>
-<a name="id595637"></a>
+<a name="id595671"></a>
<a href="gamma_dist.html#math_toolkit.dist.dist_ref.dists.gamma_dist.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -90,7 +90,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/lognormal2.png" alt="lognormal2"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.member_functions"></a><h5>
-<a name="id596659"></a>
+<a name="id596692"></a>
<a href="lognormal_dist.html#math_toolkit.dist.dist_ref.dists.lognormal_dist.member_functions">Member
Functions</a>
</h5>
@@ -126,7 +126,7 @@
Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.non_member_accessors"></a><h5>
-<a name="id596890"></a>
+<a name="id596922"></a>
<a href="lognormal_dist.html#math_toolkit.dist.dist_ref.dists.lognormal_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -146,7 +146,7 @@
The domain of the random variable is [0,+∞].
</p>
<a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.accuracy"></a><h5>
-<a name="id597058"></a>
+<a name="id597090"></a>
<a href="lognormal_dist.html#math_toolkit.dist.dist_ref.dists.lognormal_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -155,7 +155,7 @@
function</a>, and as such should have very low error rates.
</p>
<a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.implementation"></a><h5>
-<a name="id597099"></a>
+<a name="id597132"></a>
<a href="lognormal_dist.html#math_toolkit.dist.dist_ref.dists.lognormal_dist.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -125,7 +125,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/neg_binomial_pdf2.png" alt="neg_binomial_pdf2"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.related_distributions"></a><h5>
-<a name="id598550"></a>
+<a name="id598583"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.related_distributions">Related
Distributions</a>
</h5>
@@ -202,12 +202,12 @@
<p>
</p>
<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.member_functions"></a><h5>
-<a name="id598754"></a>
+<a name="id598787"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.member_functions">Member
Functions</a>
</h5>
<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.construct"></a><h6>
-<a name="id598782"></a>
+<a name="id598814"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.construct">Construct</a>
</h6>
<pre class="programlisting">
@@ -224,7 +224,7 @@
<span class="special"><=</span> <span class="number">1</span></code>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accessors"></a><h6>
-<a name="id598938"></a>
+<a name="id598970"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accessors">Accessors</a>
</h6>
<pre class="programlisting">
@@ -242,7 +242,7 @@
was constructed.
</p>
<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.lower_bound_on_parameter_p"></a><h6>
-<a name="id599066"></a>
+<a name="id599099"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.lower_bound_on_parameter_p">Lower
Bound on Parameter p</a>
</h6>
@@ -305,7 +305,7 @@
vol. 48, no3, 605-621</a>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.upper_bound_on_parameter_p"></a><h6>
-<a name="id599432"></a>
+<a name="id599465"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.upper_bound_on_parameter_p">Upper
Bound on Parameter p</a>
</h6>
@@ -367,7 +367,7 @@
vol. 48, no3, 605-621</a>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_at_least_a_certain_number_of_failures"></a><h6>
-<a name="id599796"></a>
+<a name="id599829"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_at_least_a_certain_number_of_failures">Estimating
Number of Trials to Ensure at Least a Certain Number of Failures</a>
</h6>
@@ -420,7 +420,7 @@
probability of observing k failures or fewer.
</p>
<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_a_maximum_number_of_failures_or_less"></a><h6>
-<a name="id600106"></a>
+<a name="id600139"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_a_maximum_number_of_failures_or_less">Estimating
Number of Trials to Ensure a Maximum Number of Failures or Less</a>
</h6>
@@ -470,7 +470,7 @@
probability of observing more than k failures.
</p>
<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.non_member_accessors"></a><h5>
-<a name="id600425"></a>
+<a name="id600458"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -491,7 +491,7 @@
in the context of this distribution:
</p>
<div class="table">
-<a name="id600589"></a><p class="title"><b>Table 8. Meaning of the non-member accessors.</b></p>
+<a name="id600622"></a><p class="title"><b>Table 8. Meaning of the non-member accessors.</b></p>
<div class="table-contents"><table class="table" summary="Meaning of the non-member accessors.">
<colgroup>
<col>
@@ -621,7 +621,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accuracy"></a><h5>
-<a name="id601153"></a>
+<a name="id601186"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -631,7 +631,7 @@
please refer to these functions for information on accuracy.
</p>
<a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.implementation"></a><h5>
-<a name="id601202"></a>
+<a name="id601235"></a>
<a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -81,7 +81,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/normal.png" alt="normal"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.normal_dist.member_functions"></a><h5>
-<a name="id602896"></a>
+<a name="id602930"></a>
<a href="normal_dist.html#math_toolkit.dist.dist_ref.dists.normal_dist.member_functions">Member
Functions</a>
</h5>
@@ -114,7 +114,7 @@
be used generically).
</p>
<a name="math_toolkit.dist.dist_ref.dists.normal_dist.non_member_accessors"></a><h5>
-<a name="id603174"></a>
+<a name="id603207"></a>
<a href="normal_dist.html#math_toolkit.dist.dist_ref.dists.normal_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -136,7 +136,7 @@
and complement cdf -∞ = 1 and +∞ = 0, if RealType permits.
</p>
<a name="math_toolkit.dist.dist_ref.dists.normal_dist.accuracy"></a><h5>
-<a name="id603354"></a>
+<a name="id603385"></a>
<a href="normal_dist.html#math_toolkit.dist.dist_ref.dists.normal_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -144,7 +144,7 @@
function</a>, and as such should have very low error rates.
</p>
<a name="math_toolkit.dist.dist_ref.dists.normal_dist.implementation"></a><h5>
-<a name="id603393"></a>
+<a name="id603424"></a>
<a href="normal_dist.html#math_toolkit.dist.dist_ref.dists.normal_dist.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -82,12 +82,12 @@
pdf</a>
</p>
<a name="math_toolkit.dist.dist_ref.dists.pareto.related_distributions"></a><h5>
-<a name="id604352"></a>
+<a name="id604385"></a>
<a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.related_distributions">Related
distributions</a>
</h5>
<a name="math_toolkit.dist.dist_ref.dists.pareto.member_functions"></a><h5>
-<a name="id604376"></a>
+<a name="id604410"></a>
<a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.member_functions">Member
Functions</a>
</h5>
@@ -116,7 +116,7 @@
Returns the <span class="emphasis"><em>shape</em></span> parameter of this distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.pareto.non_member_accessors"></a><h5>
-<a name="id604611"></a>
+<a name="id604644"></a>
<a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -136,7 +136,7 @@
The supported domain of the random variable is [location, ∞].
</p>
<a name="math_toolkit.dist.dist_ref.dists.pareto.accuracy"></a><h5>
-<a name="id604783"></a>
+<a name="id604816"></a>
<a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.accuracy">Accuracy</a>
</h5>
<p>
@@ -146,7 +146,7 @@
to unity.
</p>
<a name="math_toolkit.dist.dist_ref.dists.pareto.implementation"></a><h5>
-<a name="id604837"></a>
+<a name="id604870"></a>
<a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.implementation">Implementation</a>
</h5>
<p>
@@ -314,7 +314,7 @@
</tbody>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.pareto.references"></a><h5>
-<a name="id605194"></a>
+<a name="id605226"></a>
<a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.references">References</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -124,7 +124,7 @@
<p>
</p>
<a name="math_toolkit.dist.dist_ref.dists.poisson_dist.member_functions"></a><h5>
-<a name="id605938"></a>
+<a name="id605968"></a>
<a href="poisson_dist.html#math_toolkit.dist.dist_ref.dists.poisson_dist.member_functions">Member
Functions</a>
</h5>
@@ -141,7 +141,7 @@
Returns the <span class="emphasis"><em>mean</em></span> of this distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.poisson_dist.non_member_accessors"></a><h5>
-<a name="id606064"></a>
+<a name="id606095"></a>
<a href="poisson_dist.html#math_toolkit.dist.dist_ref.dists.poisson_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -161,7 +161,7 @@
The domain of the random variable is [0, ∞].
</p>
<a name="math_toolkit.dist.dist_ref.dists.poisson_dist.accuracy"></a><h5>
-<a name="id606233"></a>
+<a name="id606264"></a>
<a href="poisson_dist.html#math_toolkit.dist.dist_ref.dists.poisson_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -175,7 +175,7 @@
using an iterative method with a lower tolerance to avoid excessive computation.
</p>
<a name="math_toolkit.dist.dist_ref.dists.poisson_dist.implementation"></a><h5>
-<a name="id606282"></a>
+<a name="id606312"></a>
<a href="poisson_dist.html#math_toolkit.dist.dist_ref.dists.poisson_dist.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -88,7 +88,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/rayleigh_cdf.png" alt="rayleigh_cdf"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.rayleigh.related_distributions"></a><h5>
-<a name="id607194"></a>
+<a name="id607225"></a>
<a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.related_distributions">Related
distributions</a>
</h5>
@@ -104,7 +104,7 @@
distribution</a>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.rayleigh.member_functions"></a><h5>
-<a name="id607270"></a>
+<a name="id607301"></a>
<a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.member_functions">Member
Functions</a>
</h5>
@@ -125,7 +125,7 @@
Returns the <span class="emphasis"><em>sigma</em></span> parameter of this distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.rayleigh.non_member_accessors"></a><h5>
-<a name="id607419"></a>
+<a name="id607449"></a>
<a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -145,7 +145,7 @@
The domain of the random variable is [0, max_value].
</p>
<a name="math_toolkit.dist.dist_ref.dists.rayleigh.accuracy"></a><h5>
-<a name="id607589"></a>
+<a name="id607620"></a>
<a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.accuracy">Accuracy</a>
</h5>
<p>
@@ -155,7 +155,7 @@
using NTL RR type with 150-bit accuracy, about 50 decimal digits.
</p>
<a name="math_toolkit.dist.dist_ref.dists.rayleigh.implementation"></a><h5>
-<a name="id607645"></a>
+<a name="id607675"></a>
<a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.implementation">Implementation</a>
</h5>
<p>
@@ -324,7 +324,7 @@
</tbody>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.rayleigh.references"></a><h5>
-<a name="id608035"></a>
+<a name="id608065"></a>
<a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.references">References</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -99,7 +99,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/students_t.png" alt="students_t"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.member_functions"></a><h5>
-<a name="id608826"></a>
+<a name="id608856"></a>
<a href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.member_functions">Member
Functions</a>
</h5>
@@ -179,7 +179,7 @@
Engineering Statistics Handbook</a>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.non_member_accessors"></a><h5>
-<a name="id609215"></a>
+<a name="id609245"></a>
<a href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -199,7 +199,7 @@
The domain of the random variable is [-∞, +∞].
</p>
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.examples"></a><h5>
-<a name="id609384"></a>
+<a name="id609415"></a>
<a href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.examples">Examples</a>
</h5>
<p>
@@ -207,7 +207,7 @@
are available illustrating the use of the Student's t distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.accuracy"></a><h5>
-<a name="id609423"></a>
+<a name="id609455"></a>
<a href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -216,7 +216,7 @@
inverses</a>, refer to accuracy data on those functions for more information.
</p>
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.implementation"></a><h5>
-<a name="id609472"></a>
+<a name="id609504"></a>
<a href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -130,7 +130,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/triangular_cdf.png" alt="triangular_cdf"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.triangular_dist.member_functions"></a><h5>
-<a name="id610788"></a>
+<a name="id610821"></a>
<a href="triangular_dist.html#math_toolkit.dist.dist_ref.dists.triangular_dist.member_functions">Member
Functions</a>
</h5>
@@ -169,7 +169,7 @@
(default+1).
</p>
<a name="math_toolkit.dist.dist_ref.dists.triangular_dist.non_member_accessors"></a><h5>
-<a name="id611097"></a>
+<a name="id611130"></a>
<a href="triangular_dist.html#math_toolkit.dist.dist_ref.dists.triangular_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -190,7 +190,7 @@
range is lower <= x <= upper.
</p>
<a name="math_toolkit.dist.dist_ref.dists.triangular_dist.accuracy"></a><h5>
-<a name="id611271"></a>
+<a name="id611301"></a>
<a href="triangular_dist.html#math_toolkit.dist.dist_ref.dists.triangular_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -199,7 +199,7 @@
with arguments nearing the extremes of zero and unity.
</p>
<a name="math_toolkit.dist.dist_ref.dists.triangular_dist.implementation"></a><h5>
-<a name="id611303"></a>
+<a name="id611333"></a>
<a href="triangular_dist.html#math_toolkit.dist.dist_ref.dists.triangular_dist.implementation">Implementation</a>
</h5>
<p>
@@ -384,7 +384,7 @@
Calculate and plot probability distributions</a>
</p>
<a name="math_toolkit.dist.dist_ref.dists.triangular_dist.references"></a><h5>
-<a name="id611693"></a>
+<a name="id611723"></a>
<a href="triangular_dist.html#math_toolkit.dist.dist_ref.dists.triangular_dist.references">References</a>
</h5>
<div class="itemizedlist"><ul type="disc">
@@ -402,10 +402,10 @@
Webs Ltd. BW D-Calc 1.0 Distribution Calculator</a></li>
<li><a href="http://www.worldscibooks.com/mathematics/etextbook/5720/5720_chap1.pdf" target="_top">The
Triangular Distribution including its history.</a></li>
-<li><a href="../../../../www.measurement.sk/2002/S1/Wimmer2.pdf" target="_top">Gejza Wimmer, Viktor
- Witkovsky and Tomas Duby, Measurement Science Review, Volume 2, Section
- 1, 2002, Proper Rounding Of The Measurement Results Under The Assumption
- Of Triangular Distribution.</a></li>
+<li><a href="http://www.measurement.sk/2002/S1/Wimmer2.pdf" target="_top">Gejza Wimmer,
+ Viktor Witkovsky and Tomas Duby, Measurement Science Review, Volume
+ 2, Section 1, 2002, Proper Rounding Of The Measurement Results Under
+ The Assumption Of Triangular Distribution.</a></li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -119,7 +119,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/uniform_cdf.png" alt="uniform_cdf"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.uniform_dist.member_functions"></a><h5>
-<a name="id614192"></a>
+<a name="id614226"></a>
<a href="uniform_dist.html#math_toolkit.dist.dist_ref.dists.uniform_dist.member_functions">Member
Functions</a>
</h5>
@@ -149,7 +149,7 @@
Returns the <span class="emphasis"><em>upper</em></span> parameter of this distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.uniform_dist.non_member_accessors"></a><h5>
-<a name="id614428"></a>
+<a name="id614460"></a>
<a href="uniform_dist.html#math_toolkit.dist.dist_ref.dists.uniform_dist.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -170,7 +170,7 @@
range is only <span class="emphasis"><em>lower</em></span> <= x <= <span class="emphasis"><em>upper</em></span>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.uniform_dist.accuracy"></a><h5>
-<a name="id614606"></a>
+<a name="id614638"></a>
<a href="uniform_dist.html#math_toolkit.dist.dist_ref.dists.uniform_dist.accuracy">Accuracy</a>
</h5>
<p>
@@ -178,7 +178,7 @@
and so should have errors within an epsilon or two.
</p>
<a name="math_toolkit.dist.dist_ref.dists.uniform_dist.implementation"></a><h5>
-<a name="id614637"></a>
+<a name="id614669"></a>
<a href="uniform_dist.html#math_toolkit.dist.dist_ref.dists.uniform_dist.implementation">Implementation</a>
</h5>
<p>
@@ -342,7 +342,7 @@
</tbody>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.uniform_dist.references"></a><h5>
-<a name="id614945"></a>
+<a name="id614978"></a>
<a href="uniform_dist.html#math_toolkit.dist.dist_ref.dists.uniform_dist.references">References</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -102,7 +102,7 @@
<span class="inlinemediaobject"><img src="../../../../../graphs/weibull2.png" alt="weibull2"></span>
</p>
<a name="math_toolkit.dist.dist_ref.dists.weibull.related_distributions"></a><h5>
-<a name="id612455"></a>
+<a name="id612488"></a>
<a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.related_distributions">Related
distributions</a>
</h5>
@@ -114,7 +114,7 @@
distribution</a>.
</p>
<a name="math_toolkit.dist.dist_ref.dists.weibull.member_functions"></a><h5>
-<a name="id612511"></a>
+<a name="id612544"></a>
<a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.member_functions">Member
Functions</a>
</h5>
@@ -143,7 +143,7 @@
Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
</p>
<a name="math_toolkit.dist.dist_ref.dists.weibull.non_member_accessors"></a><h5>
-<a name="id612733"></a>
+<a name="id612766"></a>
<a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.non_member_accessors">Non-member
Accessors</a>
</h5>
@@ -163,7 +163,7 @@
The domain of the random variable is [0, ∞].
</p>
<a name="math_toolkit.dist.dist_ref.dists.weibull.accuracy"></a><h5>
-<a name="id612905"></a>
+<a name="id612938"></a>
<a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.accuracy">Accuracy</a>
</h5>
<p>
@@ -173,7 +173,7 @@
as such should have very low error rates.
</p>
<a name="math_toolkit.dist.dist_ref.dists.weibull.implementation"></a><h5>
-<a name="id612977"></a>
+<a name="id613010"></a>
<a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.implementation">Implementation</a>
</h5>
<p>
@@ -340,7 +340,7 @@
</tbody>
</table></div>
<a name="math_toolkit.dist.dist_ref.dists.weibull.references"></a><h5>
-<a name="id613363"></a>
+<a name="id613396"></a>
<a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.references">References</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -37,7 +37,7 @@
the function you want if you already know its name.
</p>
<a name="function_index"></a><a name="math_toolkit.dist.dist_ref.nmp.function_index"></a><h5>
-<a name="id570747"></a>
+<a name="id570793"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.function_index">Function
Index</a>
</h5>
@@ -93,7 +93,7 @@
</li>
</ul></div>
<a name="concept_index"></a><a name="math_toolkit.dist.dist_ref.nmp.conceptual_index"></a><h5>
-<a name="id571003"></a>
+<a name="id571049"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.conceptual_index">Conceptual
Index</a>
</h5>
@@ -174,7 +174,7 @@
</li>
</ul></div>
<a name="math.dist.cdf"></a><a name="math_toolkit.dist.dist_ref.nmp.cumulative_distribution_function"></a><h5>
-<a name="id571359"></a>
+<a name="id571404"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.cumulative_distribution_function">Cumulative
Distribution Function</a>
</h5>
@@ -199,7 +199,7 @@
<span class="inlinemediaobject"><img src="../../../../graphs/cdf.png" alt="cdf"></span>
</p>
<a name="math.dist.ccdf"></a><a name="math_toolkit.dist.dist_ref.nmp.complement_of_the_cumulative_distribution_function"></a><h5>
-<a name="id571606"></a>
+<a name="id571652"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.complement_of_the_cumulative_distribution_function">Complement
of the Cumulative Distribution Function</a>
</h5>
@@ -242,7 +242,7 @@
complement is useful and when it should be used.
</p>
<a name="math.dist.hazard"></a><a name="math_toolkit.dist.dist_ref.nmp.hazard_function"></a><h5>
-<a name="id572026"></a>
+<a name="id572071"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.hazard_function">Hazard Function</a>
</h5>
<pre class="programlisting">
@@ -271,7 +271,7 @@
</p></td></tr>
</table></div>
<a name="math.dist.chf"></a><a name="math_toolkit.dist.dist_ref.nmp.cumulative_hazard_function"></a><h5>
-<a name="id572279"></a>
+<a name="id572325"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.cumulative_hazard_function">Cumulative
Hazard Function</a>
</h5>
@@ -300,7 +300,7 @@
</p></td></tr>
</table></div>
<a name="math.dist.mean"></a><a name="math_toolkit.dist.dist_ref.nmp.mean"></a><h5>
-<a name="id572535"></a>
+<a name="id572581"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.mean">mean</a>
</h5>
<pre class="programlisting">
@@ -316,7 +316,7 @@
distribution).
</p>
<a name="math.dist.median"></a><a name="math_toolkit.dist.dist_ref.nmp.median"></a><h5>
-<a name="id572708"></a>
+<a name="id572754"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.median">median</a>
</h5>
<pre class="programlisting">
@@ -327,7 +327,7 @@
Returns the median of the distribution <span class="emphasis"><em>dist</em></span>.
</p>
<a name="math.dist.mode"></a><a name="math_toolkit.dist.dist_ref.nmp.mode"></a><h5>
-<a name="id572867"></a>
+<a name="id572913"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.mode">mode</a>
</h5>
<pre class="programlisting">
@@ -342,7 +342,7 @@
if the distribution does not have a defined mode.
</p>
<a name="math.dist.pdf"></a><a name="math_toolkit.dist.dist_ref.nmp.probability_density_function"></a><h5>
-<a name="id573033"></a>
+<a name="id573078"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.probability_density_function">Probability
Density Function</a>
</h5>
@@ -372,7 +372,7 @@
<span class="inlinemediaobject"><img src="../../../../graphs/pdf.png" alt="pdf"></span>
</p>
<a name="math.dist.range"></a><a name="math_toolkit.dist.dist_ref.nmp.range"></a><h5>
-<a name="id573278"></a>
+<a name="id573323"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.range">range</a>
</h5>
<pre class="programlisting">
@@ -383,7 +383,7 @@
Returns the valid range of the random variable over distribution <span class="emphasis"><em>dist</em></span>.
</p>
<a name="math.dist.quantile"></a><a name="math_toolkit.dist.dist_ref.nmp.quantile"></a><h5>
-<a name="id573474"></a>
+<a name="id573520"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.quantile">Quantile</a>
</h5>
<pre class="programlisting">
@@ -413,7 +413,7 @@
<span class="inlinemediaobject"><img src="../../../../graphs/quantile.png" alt="quantile"></span>
</p>
<a name="math.dist.quantile_c"></a><a name="math_toolkit.dist.dist_ref.nmp.quantile_from_the_complement_of_the_probability_"></a><h5>
-<a name="id573792"></a>
+<a name="id573838"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.quantile_from_the_complement_of_the_probability_">Quantile
from the complement of the probability.</a>
</h5>
@@ -461,7 +461,7 @@
<span class="inlinemediaobject"><img src="../../../../graphs/survival_inv.png" alt="survival_inv"></span>
</p>
<a name="math.dist.sd"></a><a name="math_toolkit.dist.dist_ref.nmp.standard_deviation"></a><h5>
-<a name="id574273"></a>
+<a name="id574318"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.standard_deviation">Standard
Deviation</a>
</h5>
@@ -477,7 +477,7 @@
if the distribution does not have a defined standard deviation.
</p>
<a name="math.dist.support"></a><a name="math_toolkit.dist.dist_ref.nmp.support"></a><h5>
-<a name="id574450"></a>
+<a name="id574495"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.support">support</a>
</h5>
<pre class="programlisting">
@@ -495,7 +495,7 @@
where the pdf is zero, and the cdf zero or unity.
</p>
<a name="math.dist.variance"></a><a name="math_toolkit.dist.dist_ref.nmp.variance"></a><h5>
-<a name="id574663"></a>
+<a name="id574709"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.variance">Variance</a>
</h5>
<pre class="programlisting">
@@ -510,7 +510,7 @@
if the distribution does not have a defined variance.
</p>
<a name="math.dist.skewness"></a><a name="math_toolkit.dist.dist_ref.nmp.skewness"></a><h5>
-<a name="id574838"></a>
+<a name="id574883"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.skewness">Skewness</a>
</h5>
<pre class="programlisting">
@@ -525,7 +525,7 @@
if the distribution does not have a defined skewness.
</p>
<a name="math.dist.kurtosis"></a><a name="math_toolkit.dist.dist_ref.nmp.kurtosis"></a><h5>
-<a name="id575013"></a>
+<a name="id575058"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.kurtosis">Kurtosis</a>
</h5>
<pre class="programlisting">
@@ -569,7 +569,7 @@
'Proper' kurtosis can have a value from zero to + infinity.
</p>
<a name="math.dist.kurtosis_excess"></a><a name="math_toolkit.dist.dist_ref.nmp.kurtosis_excess"></a><h5>
-<a name="id575313"></a>
+<a name="id575358"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.kurtosis_excess">Kurtosis
excess</a>
</h5>
@@ -606,7 +606,7 @@
The kurtosis excess of a normal distribution is zero.
</p>
<a name="cdfPQ"></a><a name="math_toolkit.dist.dist_ref.nmp.p_and_q"></a><h5>
-<a name="id575576"></a>
+<a name="id575621"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.p_and_q">P and Q</a>
</h5>
<p>
@@ -616,7 +616,7 @@
returned by these functions.
</p>
<a name="percent"></a><a name="math_toolkit.dist.dist_ref.nmp.percent_point_function"></a><h5>
-<a name="id575631"></a>
+<a name="id575676"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.percent_point_function">Percent
Point Function</a>
</h5>
@@ -625,7 +625,7 @@
the Quantile.
</p>
<a name="cdf_inv"></a><a name="math_toolkit.dist.dist_ref.nmp.inverse_cdf_function_"></a><h5>
-<a name="id575675"></a>
+<a name="id575720"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.inverse_cdf_function_">Inverse
CDF Function.</a>
</h5>
@@ -634,7 +634,7 @@
<a href="nmp.html#math.dist.quantile">Quantile</a>.
</p>
<a name="survival_inv"></a><a name="math_toolkit.dist.dist_ref.nmp.inverse_survival_function_"></a><h5>
-<a name="id575719"></a>
+<a name="id575764"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.inverse_survival_function_">Inverse
Survival Function.</a>
</h5>
@@ -642,7 +642,7 @@
The inverse of the survival function, is the same as computing the quantile from the complement of the probability.
</p>
<a name="pmf"></a><a name="math_toolkit.dist.dist_ref.nmp.probability_mass_function"></a><h5>
-<a name="id575765"></a>
+<a name="id575810"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.probability_mass_function">Probability
Mass Function</a>
</h5>
@@ -656,7 +656,7 @@
applies to continuous distributions.
</p>
<a name="lower_critical"></a><a name="math_toolkit.dist.dist_ref.nmp.lower_critical_value_"></a><h5>
-<a name="id575825"></a>
+<a name="id575870"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.lower_critical_value_">Lower
Critical Value.</a>
</h5>
@@ -666,7 +666,7 @@
the Quantile.
</p>
<a name="upper_critical"></a><a name="math_toolkit.dist.dist_ref.nmp.upper_critical_value_"></a><h5>
-<a name="id575870"></a>
+<a name="id575915"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.upper_critical_value_">Upper
Critical Value.</a>
</h5>
@@ -677,7 +677,7 @@
complement of the probability</a>.
</p>
<a name="survival"></a><a name="math_toolkit.dist.dist_ref.nmp.survival_function"></a><h5>
-<a name="id575917"></a>
+<a name="id575962"></a>
<a href="nmp.html#math_toolkit.dist.dist_ref.nmp.survival_function">Survival
Function</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.dist.future"></a> Extras/Future Directions
</h3></div></div></div>
<a name="math_toolkit.dist.future.adding_additional_location_and_scale_parameters"></a><h5>
-<a name="id616507"></a>
+<a name="id616542"></a>
<a href="future.html#math_toolkit.dist.future.adding_additional_location_and_scale_parameters">Adding
Additional Location and Scale Parameters</a>
</h5>
@@ -56,7 +56,7 @@
functions.
</p>
<a name="math_toolkit.dist.future.an__quot_any_distribution_quot__class"></a><h5>
-<a name="id616738"></a>
+<a name="id616771"></a>
<a href="future.html#math_toolkit.dist.future.an__quot_any_distribution_quot__class">An
"any_distribution" class</a>
</h5>
@@ -86,7 +86,7 @@
use case: this needs more investigation.
</p>
<a name="math_toolkit.dist.future.higher_level_hypothesis_tests"></a><h5>
-<a name="id617036"></a>
+<a name="id617069"></a>
<a href="future.html#math_toolkit.dist.future.higher_level_hypothesis_tests">Higher
Level Hypothesis Tests</a>
</h5>
@@ -107,7 +107,7 @@
<span class="emphasis"><em>expected_mean</em></span>.
</p>
<a name="math_toolkit.dist.future.integration_with_statistical_accumulators"></a><h5>
-<a name="id617269"></a>
+<a name="id617302"></a>
<a href="future.html#math_toolkit.dist.future.integration_with_statistical_accumulators">Integration
With Statistical Accumulators</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.dist.stat_tut.overview"></a> Overview
</h4></div></div></div>
<a name="math_toolkit.dist.stat_tut.overview.headers_and_namespaces"></a><h5>
-<a name="id496174"></a>
+<a name="id496222"></a>
<a href="overview.html#math_toolkit.dist.stat_tut.overview.headers_and_namespaces">Headers
and Namespaces</a>
</h5>
@@ -44,7 +44,7 @@
or <boost/math/distributions.hpp>
</p>
<a name="math_toolkit.dist.stat_tut.overview.distributions_are_objects"></a><h5>
-<a name="id496227"></a>
+<a name="id496275"></a>
<a href="overview.html#math_toolkit.dist.stat_tut.overview.distributions_are_objects">Distributions
are Objects</a>
</h5>
@@ -134,7 +134,7 @@
and <span class="emphasis"><em>quantiles</em></span> etc for these distributions.
</p>
<a name="math_toolkit.dist.stat_tut.overview.generic_operations_common_to_all_distributions_are_non_member_functions"></a><h5>
-<a name="id496764"></a>
+<a name="id496812"></a>
<a href="overview.html#math_toolkit.dist.stat_tut.overview.generic_operations_common_to_all_distributions_are_non_member_functions">Generic
operations common to all distributions are non-member functions</a>
</h5>
@@ -313,7 +313,7 @@
<a name="complements"></a><p>
</p>
<a name="math_toolkit.dist.stat_tut.overview.complements_are_supported_too"></a><h5>
-<a name="id497493"></a>
+<a name="id497541"></a>
<a href="overview.html#math_toolkit.dist.stat_tut.overview.complements_are_supported_too">Complements
are supported too</a>
</h5>
@@ -450,7 +450,7 @@
</td></tr>
</table></div>
<a name="math_toolkit.dist.stat_tut.overview.parameters_can_be_calculated"></a><h5>
-<a name="id498675"></a>
+<a name="id498723"></a>
<a href="overview.html#math_toolkit.dist.stat_tut.overview.parameters_can_be_calculated">Parameters
can be calculated</a>
</h5>
@@ -482,7 +482,7 @@
sample size.
</p>
<a name="math_toolkit.dist.stat_tut.overview.summary"></a><h5>
-<a name="id498829"></a>
+<a name="id498876"></a>
<a href="overview.html#math_toolkit.dist.stat_tut.overview.summary">Summary</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -523,7 +523,7 @@
<a name="math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.using_binomial_distribution_moments"></a>
</p>
<h5>
-<a name="id527185"></a>
+<a name="id527246"></a>
<a href="binomial_quiz_example.html#math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.using_binomial_distribution_moments">Using
Binomial distribution moments</a>
</h5>
@@ -561,7 +561,7 @@
<a name="math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.quantiles"></a>
</p>
<h5>
-<a name="id527704"></a>
+<a name="id527763"></a>
<a href="binomial_quiz_example.html#math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.quantiles">Quantiles</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -145,7 +145,7 @@
is between 0.00551 and 0.00729.
</p>
<a name="math_toolkit.dist.stat_tut.weg.cs_eg.chi_sq_intervals.confidence_intervals_as_a_function_of_the_number_of_observations"></a><h5>
-<a name="id510742"></a>
+<a name="id510796"></a>
<a href="chi_sq_intervals.html#math_toolkit.dist.stat_tut.weg.cs_eg.chi_sq_intervals.confidence_intervals_as_a_function_of_the_number_of_observations">Confidence
intervals as a function of the number of observations</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -43,7 +43,7 @@
deviation as is usual for the Chi Squared Test.
</p>
<p>
- The code for this example is located in chi_square_std_dev_test.cpp.
+ The code for this example is located in chi_square_std_dev_test.cpp.
</p>
<p>
We begin by defining a procedure to print out the sample sizes required
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -34,7 +34,7 @@
process to an established one.
</p>
<p>
- The code for this example is contained in chi_square_std_dev_test.cpp,
+ The code for this example is contained in chi_square_std_dev_test.cpp,
and we'll begin by defining the procedure that will print out the test
statistics:
</p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -351,7 +351,7 @@
<a name="math_toolkit.dist.stat_tut.weg.dist_construct_eg.default_arguments_to_distribution_constructors_"></a>
</p>
<h6>
-<a name="id501028"></a>
+<a name="id501075"></a>
<a href="dist_construct_eg.html#math_toolkit.dist.stat_tut.weg.dist_construct_eg.default_arguments_to_distribution_constructors_">Default
arguments to distribution constructors.</a>
</h6>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -111,15 +111,15 @@
<pre class="programlisting">
<span class="comment">// Boost
</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
- <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span> <span class="comment">// Probability of students_t(df, t).
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span> <span class="comment">// Probability of students_t(df, t).
</span>
<span class="comment">// std
</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">stdexcept</span><span class="special">></span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">;</span></pre>
+ <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">;</span></pre>
<p>
</p>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -41,7 +41,7 @@
consortium for strength optimization of ceramic strength.
</p>
<p>
- The example program is f_test.cpp,
+ The example program is f_test.cpp,
program output has been deliberately made as similar as possible to the
DATAPLOT output in the corresponding <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda359.htm" target="_top">NIST
EngineeringStatistics Handbook example</a>.
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -188,7 +188,7 @@
<a name="math_toolkit.dist.stat_tut.weg.find_eg.find_location_eg.controlling_error_handling_from_find_location"></a>
</p>
<h5>
-<a name="id558798"></a>
+<a name="id558848"></a>
<a href="find_location_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_location_eg.controlling_error_handling_from_find_location">Controlling
Error Handling from find_location</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -70,7 +70,7 @@
<a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_find_location_and_find_scale_to_meet_dispensing_and_measurement_specifications"></a>
</p>
<h5>
-<a name="id564016"></a>
+<a name="id564065"></a>
<a href="find_mean_and_sd_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_find_location_and_find_scale_to_meet_dispensing_and_measurement_specifications">Using
find_location and find_scale to meet dispensing and measurement specifications</a>
</h5>
@@ -262,7 +262,7 @@
<a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_cauchy_lorentz_instead_of_normal_distribution"></a>
</p>
<h5>
-<a name="id565674"></a>
+<a name="id565718"></a>
<a href="find_mean_and_sd_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_cauchy_lorentz_instead_of_normal_distribution">Using
Cauchy-Lorentz instead of normal distribution</a>
</h5>
@@ -417,7 +417,7 @@
<a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.changing_the_scale_or_standard_deviation"></a>
</p>
<h5>
-<a name="id566630"></a>
+<a name="id566675"></a>
<a href="find_mean_and_sd_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.changing_the_scale_or_standard_deviation">Changing
the scale or standard deviation</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -192,7 +192,7 @@
<a name="math_toolkit.dist.stat_tut.weg.find_eg.find_scale_eg.controlling_how_errors_from_find_scale_are_handled"></a>
</p>
<h5>
-<a name="id561842"></a>
+<a name="id561892"></a>
<a href="find_scale_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_scale_eg.controlling_how_errors_from_find_scale_are_handled">Controlling
how Errors from find_scale are handled</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -149,12 +149,12 @@
<pre class="programlisting">
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
<span class="special">{</span>
- <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
- <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
- <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">500</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
- <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.1</span><span class="special">);</span>
- <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">500</span><span class="special">,</span> <span class="number">0.1</span><span class="special">);</span>
- <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">0.9</span><span class="special">);</span>
+ <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
+ <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
+ <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">500</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
+ <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.1</span><span class="special">);</span>
+ <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">500</span><span class="special">,</span> <span class="number">0.1</span><span class="special">);</span>
+ <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">0.9</span><span class="special">);</span>
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span> <span class="comment">// int main()
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -32,7 +32,7 @@
illustrates their use.
</p>
<a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.traditional_tables"></a><h5>
-<a name="id546641"></a>
+<a name="id546697"></a>
<a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.traditional_tables">Traditional
Tables</a>
</h5>
@@ -141,12 +141,12 @@
And all this you can do with a nanoscopic amount of work compared
to the team of <span class="bold"><strong>human computers</strong></span> toiling
with Milton Abramovitz and Irene Stegen at the US National Bureau
- of Standards (now NIST). Starting
- in 1938, their "Handbook of Mathematical Functions with Formulas,
- Graphs and Mathematical Tables", was eventually published in
- 1964, and has been reprinted numerous times since. (A major replacement
- is planned at <a href="http://dlmf.nist.gov" target="_top">Digital Library of
- Mathematical Functions</a>).
+ of Standards (now NIST).
+ Starting in 1938, their "Handbook of Mathematical Functions
+ with Formulas, Graphs and Mathematical Tables", was eventually
+ published in 1964, and has been reprinted numerous times since. (A
+ major replacement is planned at <a href="http://dlmf.nist.gov" target="_top">Digital
+ Library of Mathematical Functions</a>).
</p>
<p>
</p>
@@ -295,7 +295,7 @@
<p>
</p>
<a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.standard_deviations_either_side_of_the_mean"></a><h5>
-<a name="id549817"></a>
+<a name="id549873"></a>
<a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.standard_deviations_either_side_of_the_mean">Standard
deviations either side of the Mean</a>
</h5>
@@ -367,12 +367,12 @@
<p>
</p>
<a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.some_simple_examples"></a><h5>
-<a name="id550554"></a>
+<a name="id550611"></a>
<a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.some_simple_examples">Some
simple examples</a>
</h5>
<a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.life_of_light_bulbs"></a><h5>
-<a name="id550580"></a>
+<a name="id550637"></a>
<a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.life_of_light_bulbs">Life
of light bulbs</a>
</h5>
@@ -466,7 +466,7 @@
<p>
</p>
<a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.how_many_onions_"></a><h5>
-<a name="id551290"></a>
+<a name="id551347"></a>
<a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.how_many_onions_">How
many onions?</a>
</h5>
@@ -535,7 +535,7 @@
<p>
</p>
<a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.packing_beef"></a><h5>
-<a name="id551872"></a>
+<a name="id551928"></a>
<a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.packing_beef">Packing
beef</a>
</h5>
@@ -751,7 +751,7 @@
<p>
</p>
<a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.length_of_bolts"></a><h5>
-<a name="id554882"></a>
+<a name="id554931"></a>
<a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.length_of_bolts">Length
of bolts</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
File Structure</a>
</h3></div></div></div>
<a name="math_toolkit.main_overview.directories.boost_math"></a><h5>
-<a name="id435869"></a>
+<a name="id435917"></a>
<a href="directories.html#math_toolkit.main_overview.directories.boost_math">boost/math</a>
</h5>
<div class="variablelist">
@@ -73,7 +73,7 @@
</dl>
</div>
<a name="math_toolkit.main_overview.directories.boost_libs"></a><h5>
-<a name="id436060"></a>
+<a name="id436108"></a>
<a href="directories.html#math_toolkit.main_overview.directories.boost_libs">boost/libs</a>
</h5>
<div class="variablelist">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.main_overview.error_handling"></a> Error Handling
</h3></div></div></div>
<a name="math_toolkit.main_overview.error_handling.quick_reference"></a><h5>
-<a name="id491012"></a>
+<a name="id491060"></a>
<a href="error_handling.html#math_toolkit.main_overview.error_handling.quick_reference">Quick
Reference</a>
</h5>
@@ -121,7 +121,7 @@
the default action for each error shown in bold:
</p>
<div class="table">
-<a name="id491270"></a><p class="title"><b>Table 1. Possible Actions for Domain Errors</b></p>
+<a name="id491318"></a><p class="title"><b>Table 1. Possible Actions for Domain Errors</b></p>
<div class="table-contents"><table class="table" summary="Possible Actions for Domain Errors">
<colgroup>
<col>
@@ -196,7 +196,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id491586"></a><p class="title"><b>Table 2. Possible Actions for Pole Errors</b></p>
+<a name="id491634"></a><p class="title"><b>Table 2. Possible Actions for Pole Errors</b></p>
<div class="table-contents"><table class="table" summary="Possible Actions for Pole Errors">
<colgroup>
<col>
@@ -271,7 +271,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id491900"></a><p class="title"><b>Table 3. Possible Actions for Overflow Errors</b></p>
+<a name="id491948"></a><p class="title"><b>Table 3. Possible Actions for Overflow Errors</b></p>
<div class="table-contents"><table class="table" summary="Possible Actions for Overflow Errors">
<colgroup>
<col>
@@ -346,7 +346,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id492216"></a><p class="title"><b>Table 4. Possible Actions for Underflow Errors</b></p>
+<a name="id492264"></a><p class="title"><b>Table 4. Possible Actions for Underflow Errors</b></p>
<div class="table-contents"><table class="table" summary="Possible Actions for Underflow Errors">
<colgroup>
<col>
@@ -421,7 +421,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id492440"></a><p class="title"><b>Table 5. Possible Actions for Denorm Errors</b></p>
+<a name="id492488"></a><p class="title"><b>Table 5. Possible Actions for Denorm Errors</b></p>
<div class="table-contents"><table class="table" summary="Possible Actions for Denorm Errors">
<colgroup>
<col>
@@ -496,7 +496,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id492664"></a><p class="title"><b>Table 6. Possible Actions for Internal Evaluation
+<a name="id492712"></a><p class="title"><b>Table 6. Possible Actions for Internal Evaluation
Errors</b></p>
<div class="table-contents"><table class="table" summary="Possible Actions for Internal Evaluation
Errors">
@@ -573,7 +573,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.main_overview.error_handling.rationale"></a><h5>
-<a name="id493000"></a>
+<a name="id493047"></a>
<a href="error_handling.html#math_toolkit.main_overview.error_handling.rationale">Rationale</a>
</h5>
<p>
@@ -592,7 +592,7 @@
</li>
</ul></div>
<a name="math_toolkit.main_overview.error_handling.finding_more_information"></a><h5>
-<a name="id493049"></a>
+<a name="id493097"></a>
<a href="error_handling.html#math_toolkit.main_overview.error_handling.finding_more_information">Finding
More Information</a>
</h5>
@@ -614,7 +614,7 @@
The various kind of errors are described in more detail below.
</p>
<a name="domain_error"></a><a name="math_toolkit.main_overview.error_handling.domain_errors"></a><h5>
-<a name="id493143"></a>
+<a name="id493191"></a>
<a href="error_handling.html#math_toolkit.main_overview.error_handling.domain_errors">Domain
Errors</a>
</h5>
@@ -641,7 +641,7 @@
</p>
<p>
This behaviour is chosen to assist compatibility with the behaviour of <span class="emphasis"><em>ISO/IEC
- 9899:1999 Programming languages - C</em></span> and with the <a href="../../www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Draft
+ 9899:1999 Programming languages - C</em></span> and with the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Draft
Technical Report on C++ Library Extensions, 2005-06-24, section 5.2.1, paragraph
6</a>:
</p>
@@ -695,7 +695,7 @@
<p>
Note that in order to support information-rich error messages when throwing
exceptions, <code class="computeroutput"><span class="identifier">Message</span></code> must
- contain a Boost.Format
+ contain a Boost.Format
recognised format specifier: the argument <code class="computeroutput"><span class="identifier">Val</span></code>
is inserted into the error message according to the specifier used.
</p>
@@ -704,11 +704,11 @@
a "%1%" then it is replaced by the value of <code class="computeroutput"><span class="identifier">Val</span></code>
to the full precision of T, where as "%.3g" would contain the value
of <code class="computeroutput"><span class="identifier">Val</span></code> to 3 digits. See the
- Boost.Format documentation
+ Boost.Format documentation
for more details.
</p>
<a name="pole_error"></a><a name="math_toolkit.main_overview.error_handling.evaluation_at_a_pole"></a><h5>
-<a name="id493528"></a>
+<a name="id493575"></a>
<a href="error_handling.html#math_toolkit.main_overview.error_handling.evaluation_at_a_pole">Evaluation
at a pole</a>
</h5>
@@ -735,7 +735,7 @@
<p>
Note that in order to support information-rich error messages when throwing
exceptions, <code class="computeroutput"><span class="identifier">Message</span></code> must
- contain a Boost.Format
+ contain a Boost.Format
recognised format specifier: the argument <code class="computeroutput"><span class="identifier">val</span></code>
is inserted into the error message according to the specifier used.
</p>
@@ -744,11 +744,11 @@
a "%1%" then it is replaced by the value of <code class="computeroutput"><span class="identifier">val</span></code>
to the full precision of T, where as "%.3g" would contain the value
of <code class="computeroutput"><span class="identifier">val</span></code> to 3 digits. See the
- Boost.Format documentation
+ Boost.Format documentation
for more details.
</p>
<a name="overflow_error"></a><a name="math_toolkit.main_overview.error_handling.numeric_overflow"></a><h5>
-<a name="id493851"></a>
+<a name="id493898"></a>
<a href="error_handling.html#math_toolkit.main_overview.error_handling.numeric_overflow">Numeric
Overflow</a>
</h5>
@@ -774,7 +774,7 @@
doesn't support infinities, the maximum value for the type is returned.
</p>
<a name="underflow_error"></a><a name="math_toolkit.main_overview.error_handling.numeric_underflow"></a><h5>
-<a name="id494133"></a>
+<a name="id494179"></a>
<a href="error_handling.html#math_toolkit.main_overview.error_handling.numeric_underflow">Numeric
Underflow</a>
</h5>
@@ -798,7 +798,7 @@
an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">underflow_error</span></code> C++ exception.
</p>
<a name="denorm_error"></a><a name="math_toolkit.main_overview.error_handling.denormalisation_errors"></a><h5>
-<a name="id494354"></a>
+<a name="id494402"></a>
<a href="error_handling.html#math_toolkit.main_overview.error_handling.denormalisation_errors">Denormalisation
Errors</a>
</h5>
@@ -822,7 +822,7 @@
throws an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">underflow_error</span></code> C++ exception.
</p>
<a name="evaluation_error"></a><a name="math_toolkit.main_overview.error_handling.evaluation_errors"></a><h5>
-<a name="id494593"></a>
+<a name="id494640"></a>
<a href="error_handling.html#math_toolkit.main_overview.error_handling.evaluation_errors">Evaluation
Errors</a>
</h5>
@@ -847,7 +847,7 @@
<p>
Note that in order to support information rich error messages when throwing
exceptions, <code class="computeroutput"><span class="identifier">Message</span></code> must
- contain a Boost.Format
+ contain a Boost.Format
recognised format specifier: the argument <code class="computeroutput"><span class="identifier">val</span></code>
is inserted into the error message according to the specifier used.
</p>
@@ -856,11 +856,11 @@
a "%1%" then it is replaced by the value of <code class="computeroutput"><span class="identifier">val</span></code>
to the full precision of T, where as "%.3g" would contain the value
of <code class="computeroutput"><span class="identifier">val</span></code> to 3 digits. See the
- Boost.Format documentation
+ Boost.Format documentation
for more details.
</p>
<a name="checked_narrowing_cast"></a><a name="math_toolkit.main_overview.error_handling.errors_from_typecasts"></a><h5>
-<a name="id494922"></a>
+<a name="id494970"></a>
<a href="error_handling.html#math_toolkit.main_overview.error_handling.errors_from_typecasts">Errors
from typecasts</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -31,7 +31,7 @@
<a name="math_toolkit.main_overview.history1.milestone_5__post_review_first_official_release"></a>
</p>
<h5>
-<a name="id495695"></a>
+<a name="id495743"></a>
<a href="history1.html#math_toolkit.main_overview.history1.milestone_5__post_review_first_official_release">Milestone
5: Post Review First Official Release</a>
</h5>
@@ -68,7 +68,7 @@
<a name="math_toolkit.main_overview.history1.milestone_4__second_review_candidate__1st_march_2007_"></a>
</p>
<h5>
-<a name="id495800"></a>
+<a name="id495848"></a>
<a href="history1.html#math_toolkit.main_overview.history1.milestone_4__second_review_candidate__1st_march_2007_">Milestone
4: Second Review Candidate (1st March 2007)</a>
</h5>
@@ -87,7 +87,7 @@
<a name="math_toolkit.main_overview.history1.milestone_3__first_review_candidate__31st_dec_2006_"></a>
</p>
<h5>
-<a name="id495842"></a>
+<a name="id495890"></a>
<a href="history1.html#math_toolkit.main_overview.history1.milestone_3__first_review_candidate__31st_dec_2006_">Milestone
3: First Review Candidate (31st Dec 2006)</a>
</h5>
@@ -120,7 +120,7 @@
<a name="math_toolkit.main_overview.history1.milestone_2__released_september_10th_2006"></a>
</p>
<h5>
-<a name="id495906"></a>
+<a name="id495954"></a>
<a href="history1.html#math_toolkit.main_overview.history1.milestone_2__released_september_10th_2006">Milestone
2: Released September 10th 2006</a>
</h5>
@@ -161,7 +161,7 @@
<a name="math_toolkit.main_overview.history1.milestone_1__released_march_31st_2006"></a>
</p>
<h5>
-<a name="id495982"></a>
+<a name="id496030"></a>
<a href="history1.html#math_toolkit.main_overview.history1.milestone_1__released_march_31st_2006">Milestone
1: Released March 31st 2006</a>
</h5>
@@ -196,7 +196,7 @@
<p>
</p>
<p>
- Sandbox revision merged to trunk: 39833. Trunk revision: 39833.
+ Sandbox and trunk last synchonised at revision: 40161.
</p>
<p>
</p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -30,7 +30,7 @@
This library is divided into three interconnected parts:
</p>
<a name="math_toolkit.main_overview.intro.statistical_distributions"></a><h5>
-<a name="id437693"></a>
+<a name="id437705"></a>
<a href="intro.html#math_toolkit.main_overview.intro.statistical_distributions">Statistical
Distributions</a>
</h5>
@@ -56,7 +56,7 @@
tests.
</p>
<a name="math_toolkit.main_overview.intro.mathematical_special_functions"></a><h5>
-<a name="id436171"></a>
+<a name="id436238"></a>
<a href="intro.html#math_toolkit.main_overview.intro.mathematical_special_functions">Mathematical
Special Functions</a>
</h5>
@@ -83,7 +83,7 @@
<span class="keyword">double</span></code>.
</p>
<a name="math_toolkit.main_overview.intro.implementation_toolkit"></a><h5>
-<a name="id436296"></a>
+<a name="id436364"></a>
<a href="intro.html#math_toolkit.main_overview.intro.implementation_toolkit">Implementation
Toolkit</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -31,7 +31,7 @@
as handy shortcuts for common navigation tasks.
</p>
<a name="math_toolkit.main_overview.navigation.shortcuts"></a><h6>
-<a name="id440191"></a>
+<a name="id440252"></a>
<a href="navigation.html#math_toolkit.main_overview.navigation.shortcuts">Shortcuts</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"> Performance Overview</span></dt>
-<dt><span class="section"> Interpretting these Results</span></dt>
+<dt><span class="section"> Interpreting these Results</span></dt>
<dt><span class="section"><a href="perf/getting_best.html"> Getting the Best Performance
from this Library</a></span></dt>
<dt><span class="section"> Comparing Compilers</span></dt>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -35,7 +35,7 @@
in this respect).
</p>
<div class="table">
-<a name="id776819"></a><p class="title"><b>Table 38. Performance Comparison of Various Windows Compilers</b></p>
+<a name="id776802"></a><p class="title"><b>Table 38. Performance Comparison of Various Windows Compilers</b></p>
<div class="table-contents"><table class="table" summary="Performance Comparison of Various Windows Compilers">
<colgroup>
<col>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -46,7 +46,7 @@
</p></td></tr>
</table></div>
<a name="math_toolkit.perf.comparisons.comparison_to_gsl_1_9_and_cephes"></a><h5>
-<a name="id779286"></a>
+<a name="id779255"></a>
<a href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_gsl_1_9_and_cephes">Comparison
to GSL-1.9 and Cephes</a>
</h5>
@@ -213,7 +213,7 @@
<td>
<p>
+INF
- <sup>[<a name="id779653" href="#ftn.id779653">1</a>]</sup>
+ <sup>[<a name="id779622" href="#ftn.id779622">1</a>]</sup>
</p>
</td>
</tr>
@@ -284,13 +284,13 @@
</td>
</tr>
</tbody>
-<tbody class="footnotes"><tr><td colspan="4"><div class="footnote"><p><sup>[<a name="ftn.id779653" href="#id779653">1</a>] </sup>
+<tbody class="footnotes"><tr><td colspan="4"><div class="footnote"><p><sup>[<a name="ftn.id779622" href="#id779622">1</a>] </sup>
Cephes gets stuck in an infinite loop while trying to execute
our test cases.
</p></div></td></tr></tbody>
</table></div>
<a name="math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_windows"></a><h5>
-<a name="id779822"></a>
+<a name="id779791"></a>
<a href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_windows">Comparison
to the R Statistical Library on Windows</a>
</h5>
@@ -301,7 +301,7 @@
appears not to be buildable with Visual C++).
</p>
<div class="table">
-<a name="id779850"></a><p class="title"><b>Table 41. A Comparison to the R Statistical Library on Windows
+<a name="id779818"></a><p class="title"><b>Table 41. A Comparison to the R Statistical Library on Windows
XP</b></p>
<div class="table-contents"><table class="table" summary="A Comparison to the R Statistical Library on Windows
XP">
@@ -374,7 +374,7 @@
<p>
</p>
<p>74.66
- <sup>[<a name="id779990" href="#ftn.id779990">1</a>]</sup>
+ <sup>[<a name="id779959" href="#ftn.id779959">1</a>]</sup>
</p>
<p> </p>
<p>(4.905e-004s)</p>
@@ -792,7 +792,7 @@
<p>
</p>
<p>53.59
- <sup>[<a name="id780839" href="#ftn.id780839">2</a>]</sup>
+ <sup>[<a name="id780807" href="#ftn.id780807">2</a>]</sup>
</p>
<p> </p>
<p>(5.145e-004s)</p>
@@ -1010,12 +1010,12 @@
</tr>
</tbody>
<tbody class="footnotes"><tr><td colspan="3">
-<div class="footnote"><p><sup>[<a name="ftn.id779990" href="#id779990">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id779959" href="#id779959">1</a>] </sup>
There are a small number of our test cases where the R library
fails to converge on a result: these tend to dominate the performance
result.
</p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id780839" href="#id780839">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id780807" href="#id780807">2</a>] </sup>
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
@@ -1024,7 +1024,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_linux"></a><h5>
-<a name="id781289"></a>
+<a name="id781258"></a>
<a href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_linux">Comparison
to the R Statistical Library on Linux</a>
</h5>
@@ -1033,7 +1033,7 @@
Linux machine, with the test program and R-2.5.0 compiled with GNU G++ 4.2.0.
</p>
<div class="table">
-<a name="id781314"></a><p class="title"><b>Table 42. A Comparison to the R Statistical Library on Linux</b></p>
+<a name="id781283"></a><p class="title"><b>Table 42. A Comparison to the R Statistical Library on Linux</b></p>
<div class="table-contents"><table class="table" summary="A Comparison to the R Statistical Library on Linux">
<colgroup>
<col>
@@ -1104,7 +1104,7 @@
<p>
</p>
<p>44.06
- <sup>[<a name="id781453" href="#ftn.id781453">1</a>]</sup>
+ <sup>[<a name="id781422" href="#ftn.id781422">1</a>]</sup>
</p>
<p> </p>
<p>(5.701e-004s)</p>
@@ -1522,7 +1522,7 @@
<p>
</p>
<p>30.07
- <sup>[<a name="id782298" href="#ftn.id782298">2</a>]</sup>
+ <sup>[<a name="id782267" href="#ftn.id782267">2</a>]</sup>
</p>
<p> </p>
<p>(5.490e-004s)</p>
@@ -1740,12 +1740,12 @@
</tr>
</tbody>
<tbody class="footnotes"><tr><td colspan="3">
-<div class="footnote"><p><sup>[<a name="ftn.id781453" href="#id781453">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id781422" href="#id781422">1</a>] </sup>
There are a small number of our test cases where the R library
fails to converge on a result: these tend to dominate the performance
result.
</p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id782298" href="#id782298">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id782267" href="#id782267">2</a>] </sup>
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
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Math Toolkit">
<link rel="up" href="../perf.html" title="Performance">
-<link rel="prev" href="interp.html" title="Interpretting these Results">
+<link rel="prev" href="interp.html" title="Interpreting these Results">
<link rel="next" href="comp_compilers.html" title="Comparing Compilers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -33,7 +33,7 @@
penalty for using the library in debug mode can be quite large.
</p>
<div class="table">
-<a name="id776256"></a><p class="title"><b>Table 37. Performance Comparison of Release and Debug Settings</b></p>
+<a name="id776240"></a><p class="title"><b>Table 37. Performance Comparison of Release and Debug Settings</b></p>
<div class="table-contents"><table class="table" summary="Performance Comparison of Release and Debug Settings">
<colgroup>
<col>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -1,7 +1,7 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Interpretting these Results</title>
+<title>Interpreting these Results</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Math Toolkit">
@@ -24,7 +24,7 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="math_toolkit.perf.interp"></a> Interpretting these Results
+<a name="math_toolkit.perf.interp"></a> Interpreting these Results
</h3></div></div></div>
<p>
In all of the following tables, the best performing result in each row, is
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -7,7 +7,7 @@
<link rel="start" href="../../index.html" title="Math Toolkit">
<link rel="up" href="../perf.html" title="Performance">
<link rel="prev" href="../perf.html" title="Performance">
-<link rel="next" href="interp.html" title="Interpretting these Results">
+<link rel="next" href="interp.html" title="Interpreting these Results">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -234,7 +234,7 @@
highly vectorisable processors in the future.
</p>
<div class="table">
-<a name="id777935"></a><p class="title"><b>Table 39. A Comparison of Polynomial Evaluation Methods</b></p>
+<a name="id777904"></a><p class="title"><b>Table 39. A Comparison of Polynomial Evaluation Methods</b></p>
<div class="table-contents"><table class="table" summary="A Comparison of Polynomial Evaluation Methods">
<colgroup>
<col>
@@ -634,7 +634,7 @@
tutorial</a>.
</p>
<div class="table">
-<a name="id778690"></a><p class="title"><b>Table 40. Performance Comparison with and Without Internal
+<a name="id778659"></a><p class="title"><b>Table 40. Performance Comparison with and Without Internal
Promotion to long double</b></p>
<div class="table-contents"><table class="table" summary="Performance Comparison with and Without Internal
Promotion to long double">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -56,7 +56,7 @@
can take have the following meanings:
</p>
<a name="math_toolkit.policy.pol_ref.discrete_quant_ref.real"></a><h6>
-<a name="id766478"></a>
+<a name="id766460"></a>
<a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.real">real</a>
</h6>
<p>
@@ -102,7 +102,7 @@
<span class="special">=</span> <span class="number">68.1584</span></code>.
</p>
<a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_outwards"></a><h6>
-<a name="id766971"></a>
+<a name="id766954"></a>
<a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_outwards">integer_round_outwards</a>
</h6>
<p>
@@ -169,7 +169,7 @@
in each tail</em></span>.
</p>
<a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_inwards"></a><h6>
-<a name="id767498"></a>
+<a name="id767482"></a>
<a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_inwards">integer_round_inwards</a>
</h6>
<p>
@@ -241,7 +241,7 @@
in each tail</em></span>.
</p>
<a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_down"></a><h6>
-<a name="id768161"></a>
+<a name="id768144"></a>
<a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_down">integer_round_down</a>
</h6>
<p>
@@ -249,7 +249,7 @@
or a lower quantile.
</p>
<a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_up"></a><h6>
-<a name="id768192"></a>
+<a name="id768176"></a>
<a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_up">integer_round_up</a>
</h6>
<p>
@@ -257,7 +257,7 @@
a lower quantile.
</p>
<a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_nearest"></a><h6>
-<a name="id768224"></a>
+<a name="id768207"></a>
<a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_nearest">integer_round_nearest</a>
</h6>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -39,7 +39,7 @@
</li>
</ul></div>
<a name="math_toolkit.policy.pol_ref.error_handling_policies.available_actions_when_an_error_is_raised"></a><h5>
-<a name="id761014"></a>
+<a name="id760995"></a>
<a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.available_actions_when_an_error_is_raised">Available
Actions When an Error is Raised</a>
</h5>
@@ -63,7 +63,7 @@
The various enumerated values have the following meanings:
</p>
<a name="math_toolkit.policy.pol_ref.error_handling_policies.throw_on_error"></a><h6>
-<a name="id761268"></a>
+<a name="id761249"></a>
<a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.throw_on_error">throw_on_error</a>
</h6>
<p>
@@ -163,7 +163,7 @@
</tbody>
</table></div>
<a name="math_toolkit.policy.pol_ref.error_handling_policies.errno_on_error"></a><h6>
-<a name="id761450"></a>
+<a name="id761432"></a>
<a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.errno_on_error">errno_on_error</a>
</h6>
<p>
@@ -264,7 +264,7 @@
</tbody>
</table></div>
<a name="math_toolkit.policy.pol_ref.error_handling_policies.ignore_error"></a><h6>
-<a name="id761649"></a>
+<a name="id761631"></a>
<a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.ignore_error">ignore_error</a>
</h6>
<p>
@@ -365,7 +365,7 @@
</tbody>
</table></div>
<a name="math_toolkit.policy.pol_ref.error_handling_policies.user_error"></a><h6>
-<a name="id761850"></a>
+<a name="id761831"></a>
<a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.user_error">user_error</a>
</h6>
<p>
@@ -409,7 +409,7 @@
here</a>.
</p>
<a name="math_toolkit.policy.pol_ref.error_handling_policies.kinds_of_error_raised"></a><h5>
-<a name="id762789"></a>
+<a name="id762771"></a>
<a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.kinds_of_error_raised">Kinds
of Error Raised</a>
</h5>
@@ -595,7 +595,7 @@
</tbody>
</table></div>
<a name="math_toolkit.policy.pol_ref.error_handling_policies.examples"></a><h5>
-<a name="id763630"></a>
+<a name="id763612"></a>
<a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.examples">Examples</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -84,7 +84,7 @@
</tbody>
</table></div>
<a name="math_toolkit.policy.pol_ref.internal_promotion.examples"></a><h5>
-<a name="id764959"></a>
+<a name="id764941"></a>
<a href="internal_promotion.html#math_toolkit.policy.pol_ref.internal_promotion.examples">Examples</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -61,7 +61,7 @@
then you can do so by defining various macros in boost/math/tools/user.hpp.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_domain_error_policy"></a><h6>
-<a name="id770057"></a>
+<a name="id770040"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_domain_error_policy">BOOST_MATH_DOMAIN_ERROR_POLICY</a>
</h6>
<p>
@@ -71,7 +71,7 @@
<code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_pole_error_policy"></a><h6>
-<a name="id770150"></a>
+<a name="id770133"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_pole_error_policy">BOOST_MATH_POLE_ERROR_POLICY</a>
</h6>
<p>
@@ -81,7 +81,7 @@
<code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_overflow_error_policy"></a><h6>
-<a name="id770242"></a>
+<a name="id770225"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_overflow_error_policy">BOOST_MATH_OVERFLOW_ERROR_POLICY</a>
</h6>
<p>
@@ -91,7 +91,7 @@
<code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_evaluation_error_policy"></a><h6>
-<a name="id770335"></a>
+<a name="id770318"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_evaluation_error_policy">BOOST_MATH_EVALUATION_ERROR_POLICY</a>
</h6>
<p>
@@ -101,7 +101,7 @@
<code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_underflow_error_policy"></a><h6>
-<a name="id770428"></a>
+<a name="id770411"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_underflow_error_policy">BOOST_MATH_UNDERFLOW_ERROR_POLICY</a>
</h6>
<p>
@@ -111,7 +111,7 @@
<code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_denorm_error_policy"></a><h6>
-<a name="id770521"></a>
+<a name="id770504"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_denorm_error_policy">BOOST_MATH_DENORM_ERROR_POLICY</a>
</h6>
<p>
@@ -121,7 +121,7 @@
<code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_digits10_policy"></a><h6>
-<a name="id770613"></a>
+<a name="id770596"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_digits10_policy">BOOST_MATH_DIGITS10_POLICY</a>
</h6>
<p>
@@ -132,7 +132,7 @@
recommended that you change this from the default.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_promote_float_policy"></a><h6>
-<a name="id770662"></a>
+<a name="id770645"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_promote_float_policy">BOOST_MATH_PROMOTE_FLOAT_POLICY</a>
</h6>
<p>
@@ -144,7 +144,7 @@
off.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_promote_double_policy"></a><h6>
-<a name="id770754"></a>
+<a name="id770737"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_promote_double_policy">BOOST_MATH_PROMOTE_DOUBLE_POLICY</a>
</h6>
<p>
@@ -156,7 +156,7 @@
off.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_discrete_quantile_policy"></a><h6>
-<a name="id770853"></a>
+<a name="id770836"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_discrete_quantile_policy">BOOST_MATH_DISCRETE_QUANTILE_POLICY</a>
</h6>
<p>
@@ -167,7 +167,7 @@
Defaults to <code class="computeroutput"><span class="identifier">integer_round_outwards</span></code>.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_assert_undefined_policy"></a><h6>
-<a name="id770969"></a>
+<a name="id770952"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_assert_undefined_policy">BOOST_MATH_ASSERT_UNDEFINED_POLICY</a>
</h6>
<p>
@@ -180,7 +180,7 @@
whether or not a particular property is well defined.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_series_iteration_policy"></a><h6>
-<a name="id771034"></a>
+<a name="id771017"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_series_iteration_policy">BOOST_MATH_MAX_SERIES_ITERATION_POLICY</a>
</h6>
<p>
@@ -189,7 +189,7 @@
Defaults to 1000000.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_root_iteration_policy"></a><h6>
-<a name="id771076"></a>
+<a name="id771058"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_root_iteration_policy">BOOST_MATH_MAX_ROOT_ITERATION_POLICY</a>
</h6>
<p>
@@ -198,7 +198,7 @@
Defaults to 200.
</p>
<a name="math_toolkit.policy.pol_ref.policy_defaults.example"></a><h6>
-<a name="id771118"></a>
+<a name="id771101"></a>
<a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.example">Example</a>
</h6>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -199,15 +199,15 @@
<pre class="programlisting">
<span class="comment">// Boost
</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
- <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span> <span class="comment">// Probability of students_t(df, t).
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span> <span class="comment">// Probability of students_t(df, t).
</span>
<span class="comment">// std
</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">stdexcept</span><span class="special">></span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">;</span></pre>
+ <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">;</span></pre>
<p>
</p>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -183,7 +183,7 @@
<span class="emphasis"><em>base your comparisons on CDF's instead</em></span>.
</p>
<a name="math_toolkit.policy.pol_tutorial.understand_dis_quant.other_rounding_policies_are_available"></a><h6>
-<a name="id757520"></a>
+<a name="id757501"></a>
<a href="understand_dis_quant.html#math_toolkit.policy.pol_tutorial.understand_dis_quant.other_rounding_policies_are_available">Other
Rounding Policies are Available</a>
</h6>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
of the First and Second Kinds</a>
</h4></div></div></div>
<a name="math_toolkit.special.bessel.bessel.synopsis"></a><h5>
-<a name="id669290"></a>
+<a name="id669284"></a>
<a href="bessel.html#math_toolkit.special.bessel.bessel.synopsis">Synopsis</a>
</h5>
<pre class="programlisting">
@@ -45,7 +45,7 @@
<a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_neumann</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a href="../../policy.html" title="Policies">Policy</a><span class="special">&);</span>
</pre>
<a name="math_toolkit.special.bessel.bessel.description"></a><h5>
-<a name="id669800"></a>
+<a name="id669794"></a>
<a href="bessel.html#math_toolkit.special.bessel.bessel.description">Description</a>
</h5>
<p>
@@ -111,16 +111,16 @@
<span class="inlinemediaobject"><img src="../../../../graphs/bessel_yv.png" alt="bessel_yv"></span>
</p>
<a name="math_toolkit.special.bessel.bessel.testing"></a><h5>
-<a name="id670172"></a>
+<a name="id670166"></a>
<a href="bessel.html#math_toolkit.special.bessel.bessel.testing">Testing</a>
</h5>
<p>
- There are two sets of test values: spot values calculated using functions.wolfram.com, and a
+ There are two sets of test values: spot values calculated using functions.wolfram.com, and a
much larger set of tests computed using a simplified version of this implementation
(with all the special case handling removed).
</p>
<a name="math_toolkit.special.bessel.bessel.accuracy"></a><h5>
-<a name="id670211"></a>
+<a name="id670204"></a>
<a href="bessel.html#math_toolkit.special.bessel.bessel.accuracy">Accuracy</a>
</h5>
<p>
@@ -136,7 +136,7 @@
zero error</a>. All values are relative errors in units of epsilon.
</p>
<div class="table">
-<a name="id670268"></a><p class="title"><b>Table 29. Errors Rates in cyl_bessel_j</b></p>
+<a name="id670261"></a><p class="title"><b>Table 29. Errors Rates in cyl_bessel_j</b></p>
<div class="table-contents"><table class="table" summary="Errors Rates in cyl_bessel_j">
<colgroup>
<col>
@@ -305,7 +305,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id670572"></a><p class="title"><b>Table 30. Errors Rates in cyl_neumann</b></p>
+<a name="id670565"></a><p class="title"><b>Table 30. Errors Rates in cyl_neumann</b></p>
<div class="table-contents"><table class="table" summary="Errors Rates in cyl_neumann">
<colgroup>
<col>
@@ -490,12 +490,12 @@
the test data (no significant figures correct), and even GSL performs badly
with some inputs to J<sub>v</sub>. Note that by way of double-checking these results,
the worst performing Cephes
- and GSL cases were recomputed using functions.wolfram.com,
+ and GSL cases were recomputed using functions.wolfram.com,
and the result checked against our test data: no errors in the test data
were found.
</p>
<a name="math_toolkit.special.bessel.bessel.implementation"></a><h5>
-<a name="id671001"></a>
+<a name="id670994"></a>
<a href="bessel.html#math_toolkit.special.bessel.bessel.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Overview</a>
</h4></div></div></div>
<a name="math_toolkit.special.bessel.bessel_over.ordinary_bessel_functions"></a><h5>
-<a name="id668300"></a>
+<a name="id668294"></a>
<a href="bessel_over.html#math_toolkit.special.bessel.bessel_over.ordinary_bessel_functions">Ordinary
Bessel Functions</a>
</h5>
@@ -103,7 +103,7 @@
<span class="inlinemediaobject"><img src="../../../../equations/bessel10.png"></span>
</p>
<a name="math_toolkit.special.bessel.bessel_over.modified_bessel_functions"></a><h5>
-<a name="id668717"></a>
+<a name="id668711"></a>
<a href="bessel_over.html#math_toolkit.special.bessel.bessel_over.modified_bessel_functions">Modified
Bessel Functions</a>
</h5>
@@ -167,7 +167,7 @@
<span class="inlinemediaobject"><img src="../../../../equations/mbessel10.png"></span>
</p>
<a name="math_toolkit.special.bessel.bessel_over.spherical_bessel_functions"></a><h5>
-<a name="id669115"></a>
+<a name="id669108"></a>
<a href="bessel_over.html#math_toolkit.special.bessel.bessel_over.spherical_bessel_functions">Spherical
Bessel Functions</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Functions of the First and Second Kinds</a>
</h4></div></div></div>
<a name="math_toolkit.special.bessel.mbessel.synopsis"></a><h5>
-<a name="id671789"></a>
+<a name="id671783"></a>
<a href="mbessel.html#math_toolkit.special.bessel.mbessel.synopsis">Synopsis</a>
</h5>
<pre class="programlisting">
@@ -45,7 +45,7 @@
<a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_bessel_k</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a href="../../policy.html" title="Policies">Policy</a><span class="special">&);</span>
</pre>
<a name="math_toolkit.special.bessel.mbessel.description"></a><h5>
-<a name="id672300"></a>
+<a name="id672293"></a>
<a href="mbessel.html#math_toolkit.special.bessel.mbessel.description">Description</a>
</h5>
<p>
@@ -110,7 +110,7 @@
<span class="inlinemediaobject"><img src="../../../../graphs/bessel_k.png" alt="bessel_k"></span>
</p>
<a name="math_toolkit.special.bessel.mbessel.testing"></a><h5>
-<a name="id672660"></a>
+<a name="id672653"></a>
<a href="mbessel.html#math_toolkit.special.bessel.mbessel.testing">Testing</a>
</h5>
<p>
@@ -119,7 +119,7 @@
(with all the special case handling removed).
</p>
<a name="math_toolkit.special.bessel.mbessel.accuracy"></a><h5>
-<a name="id672699"></a>
+<a name="id672692"></a>
<a href="mbessel.html#math_toolkit.special.bessel.mbessel.accuracy">Accuracy</a>
</h5>
<p>
@@ -130,7 +130,7 @@
zero error</a>. All values are relative errors in units of epsilon.
</p>
<div class="table">
-<a name="id672739"></a><p class="title"><b>Table 31. Errors Rates in cyl_bessel_i</b></p>
+<a name="id672732"></a><p class="title"><b>Table 31. Errors Rates in cyl_bessel_i</b></p>
<div class="table-contents"><table class="table" summary="Errors Rates in cyl_bessel_i">
<colgroup>
<col>
@@ -227,7 +227,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id672894"></a><p class="title"><b>Table 32. Errors Rates in cyl_bessel_k</b></p>
+<a name="id672887"></a><p class="title"><b>Table 32. Errors Rates in cyl_bessel_k</b></p>
<div class="table-contents"><table class="table" summary="Errors Rates in cyl_bessel_k">
<colgroup>
<col>
@@ -327,7 +327,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.special.bessel.mbessel.implementation"></a><h5>
-<a name="id673062"></a>
+<a name="id673055"></a>
<a href="mbessel.html#math_toolkit.special.bessel.mbessel.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Bessel Functions of the First and Second Kinds</a>
</h4></div></div></div>
<a name="math_toolkit.special.bessel.sph_bessel.synopsis"></a><h5>
-<a name="id673740"></a>
+<a name="id673733"></a>
<a href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.synopsis">Synopsis</a>
</h5>
<pre class="programlisting">
@@ -45,7 +45,7 @@
<a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sph_neumann</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a href="../../policy.html" title="Policies">Policy</a><span class="special">&);</span>
</pre>
<a name="math_toolkit.special.bessel.sph_bessel.description"></a><h5>
-<a name="id674250"></a>
+<a name="id674243"></a>
<a href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.description">Description</a>
</h5>
<p>
@@ -98,7 +98,7 @@
<span class="inlinemediaobject"><img src="../../../../graphs/sph_bessel_y.png" alt="sph_bessel_y"></span>
</p>
<a name="math_toolkit.special.bessel.sph_bessel.testing"></a><h5>
-<a name="id674501"></a>
+<a name="id674494"></a>
<a href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.testing">Testing</a>
</h5>
<p>
@@ -107,7 +107,7 @@
implementation (with all the special case handling removed).
</p>
<a name="math_toolkit.special.bessel.sph_bessel.accuracy"></a><h5>
-<a name="id674540"></a>
+<a name="id674533"></a>
<a href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.accuracy">Accuracy</a>
</h5>
<p>
@@ -117,7 +117,7 @@
refer to these functions for accuracy data.
</p>
<a name="math_toolkit.special.bessel.sph_bessel.implementation"></a><h5>
-<a name="id674590"></a>
+<a name="id674583"></a>
<a href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
of the First Kind - Legendre Form</a>
</h4></div></div></div>
<a name="math_toolkit.special.ellint.ellint_1.synopsis"></a><h6>
-<a name="id680282"></a>
+<a name="id680275"></a>
<a href="ellint_1.html#math_toolkit.special.ellint.ellint_1.synopsis">Synopsis</a>
</h6>
<p>
@@ -57,7 +57,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.ellint.ellint_1.description"></a><h6>
-<a name="id680847"></a>
+<a name="id680840"></a>
<a href="ellint_1.html#math_toolkit.special.ellint.ellint_1.description">Description</a>
</h6>
<p>
@@ -127,7 +127,7 @@
<p>
</p>
<a name="math_toolkit.special.ellint.ellint_1.accuracy"></a><h6>
-<a name="id681495"></a>
+<a name="id681488"></a>
<a href="ellint_1.html#math_toolkit.special.ellint.ellint_1.accuracy">Accuracy</a>
</h6>
<p>
@@ -138,7 +138,7 @@
All values are relative errors in units of epsilon.
</p>
<div class="table">
-<a name="id681528"></a><p class="title"><b>Table 34. Errors Rates in the Elliptic Integrals of the
+<a name="id681521"></a><p class="title"><b>Table 34. Errors Rates in the Elliptic Integrals of the
First Kind</b></p>
<div class="table-contents"><table class="table" summary="Errors Rates in the Elliptic Integrals of the
First Kind">
@@ -241,7 +241,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.special.ellint.ellint_1.testing"></a><h6>
-<a name="id681691"></a>
+<a name="id681684"></a>
<a href="ellint_1.html#math_toolkit.special.ellint.ellint_1.testing">Testing</a>
</h6>
<p>
@@ -251,7 +251,7 @@
this implementation.
</p>
<a name="math_toolkit.special.ellint.ellint_1.implementation"></a><h6>
-<a name="id681730"></a>
+<a name="id681723"></a>
<a href="ellint_1.html#math_toolkit.special.ellint.ellint_1.implementation">Implementation</a>
</h6>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
of the Second Kind - Legendre Form</a>
</h4></div></div></div>
<a name="math_toolkit.special.ellint.ellint_2.synopsis"></a><h6>
-<a name="id681846"></a>
+<a name="id681839"></a>
<a href="ellint_2.html#math_toolkit.special.ellint.ellint_2.synopsis">Synopsis</a>
</h6>
<p>
@@ -57,7 +57,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.ellint.ellint_2.description"></a><h6>
-<a name="id682410"></a>
+<a name="id682403"></a>
<a href="ellint_2.html#math_toolkit.special.ellint.ellint_2.description">Description</a>
</h6>
<p>
@@ -127,7 +127,7 @@
<p>
</p>
<a name="math_toolkit.special.ellint.ellint_2.accuracy"></a><h6>
-<a name="id687324"></a>
+<a name="id687317"></a>
<a href="ellint_2.html#math_toolkit.special.ellint.ellint_2.accuracy">Accuracy</a>
</h6>
<p>
@@ -138,7 +138,7 @@
All values are relative errors in units of epsilon.
</p>
<div class="table">
-<a name="id687358"></a><p class="title"><b>Table 35. Errors Rates in the Elliptic Integrals of the
+<a name="id687351"></a><p class="title"><b>Table 35. Errors Rates in the Elliptic Integrals of the
Second Kind</b></p>
<div class="table-contents"><table class="table" summary="Errors Rates in the Elliptic Integrals of the
Second Kind">
@@ -241,17 +241,17 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.special.ellint.ellint_2.testing"></a><h6>
-<a name="id687521"></a>
+<a name="id687514"></a>
<a href="ellint_2.html#math_toolkit.special.ellint.ellint_2.testing">Testing</a>
</h6>
<p>
The tests use a mixture of spot test values calculated using the online
- calculator at functions.wolfram.com,
- and random test data generated using NTL::RR at 1000-bit precision and
- this implementation.
+ calculator at [http://@functions.wolfram.com functions.wolfram.com], and
+ random test data generated using NTL::RR at 1000-bit precision and this
+ implementation.
</p>
<a name="math_toolkit.special.ellint.ellint_2.implementation"></a><h6>
-<a name="id687560"></a>
+<a name="id687546"></a>
<a href="ellint_2.html#math_toolkit.special.ellint.ellint_2.implementation">Implementation</a>
</h6>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
of the Third Kind - Legendre Form</a>
</h4></div></div></div>
<a name="math_toolkit.special.ellint.ellint_3.synopsis"></a><h6>
-<a name="id687676"></a>
+<a name="id687663"></a>
<a href="ellint_3.html#math_toolkit.special.ellint.ellint_3.synopsis">Synopsis</a>
</h6>
<p>
@@ -57,7 +57,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.ellint.ellint_3.description"></a><h6>
-<a name="id688377"></a>
+<a name="id688364"></a>
<a href="ellint_3.html#math_toolkit.special.ellint.ellint_3.description">Description</a>
</h6>
<p>
@@ -139,7 +139,7 @@
[opitonal_policy]
</p>
<a name="math_toolkit.special.ellint.ellint_3.accuracy"></a><h6>
-<a name="id689208"></a>
+<a name="id689196"></a>
<a href="ellint_3.html#math_toolkit.special.ellint.ellint_3.accuracy">Accuracy</a>
</h6>
<p>
@@ -150,7 +150,7 @@
All values are relative errors in units of epsilon.
</p>
<div class="table">
-<a name="id689242"></a><p class="title"><b>Table 36. Errors Rates in the Elliptic Integrals of the
+<a name="id689229"></a><p class="title"><b>Table 36. Errors Rates in the Elliptic Integrals of the
Third Kind</b></p>
<div class="table-contents"><table class="table" summary="Errors Rates in the Elliptic Integrals of the
Third Kind">
@@ -253,17 +253,17 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.special.ellint.ellint_3.testing"></a><h6>
-<a name="id689405"></a>
+<a name="id689392"></a>
<a href="ellint_3.html#math_toolkit.special.ellint.ellint_3.testing">Testing</a>
</h6>
<p>
The tests use a mixture of spot test values calculated using the online
- calculator at functions.wolfram.com,
+ calculator at functions.wolfram.com,
and random test data generated using NTL::RR at 1000-bit precision and
this implementation.
</p>
<a name="math_toolkit.special.ellint.ellint_3.implementation"></a><h6>
-<a name="id689444"></a>
+<a name="id689431"></a>
<a href="ellint_3.html#math_toolkit.special.ellint.ellint_3.implementation">Implementation</a>
</h6>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Integrals - Carlson Form</a>
</h4></div></div></div>
<a name="math_toolkit.special.ellint.ellint_carlson.synopsis"></a><h6>
-<a name="id676162"></a>
+<a name="id676155"></a>
<a href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.synopsis">Synopsis</a>
</h6>
<p>
@@ -108,7 +108,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.ellint.ellint_carlson.description"></a><h6>
-<a name="id677942"></a>
+<a name="id677935"></a>
<a href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.description">Description</a>
</h6>
<p>
@@ -248,7 +248,7 @@
<span class="inlinemediaobject"><img src="../../../../equations/ellint18.png"></span>
</p>
<a name="math_toolkit.special.ellint.ellint_carlson.testing"></a><h6>
-<a name="id679701"></a>
+<a name="id679694"></a>
<a href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.testing">Testing</a>
</h6>
<p>
@@ -277,7 +277,7 @@
to verify their correctness: see the above Carlson paper for details.
</p>
<a name="math_toolkit.special.ellint.ellint_carlson.accuracy"></a><h6>
-<a name="id679771"></a>
+<a name="id679764"></a>
<a href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.accuracy">Accuracy</a>
</h6>
<p>
@@ -288,7 +288,7 @@
All values are relative errors in units of epsilon.
</p>
<div class="table">
-<a name="id679806"></a><p class="title"><b>Table 33. Errors Rates in the Carlson Elliptic Integrals</b></p>
+<a name="id679799"></a><p class="title"><b>Table 33. Errors Rates in the Carlson Elliptic Integrals</b></p>
<div class="table-contents"><table class="table" summary="Errors Rates in the Carlson Elliptic Integrals">
<colgroup>
<col>
@@ -431,7 +431,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.special.ellint.ellint_carlson.implementation"></a><h6>
-<a name="id680036"></a>
+<a name="id680029"></a>
<a href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.implementation">Implementation</a>
</h6>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -61,14 +61,14 @@
Elliptic integral</a>.
</p>
<a name="math_toolkit.special.ellint.ellint_intro.notation"></a><h5>
-<a name="id674819"></a>
+<a name="id674812"></a>
<a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.notation">Notation</a>
</h5>
<p>
All variables are real numbers unless otherwise noted.
</p>
<a name="ellint_def"></a><a name="math_toolkit.special.ellint.ellint_intro.definition"></a><h5>
-<a name="id674855"></a>
+<a name="id674848"></a>
<a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.definition">Definition</a>
</h5>
<p>
@@ -257,7 +257,7 @@
</td></tr>
</table></div>
<a name="ellint_theorem"></a><a name="math_toolkit.special.ellint.ellint_intro.duplication_theorem"></a><h5>
-<a name="id675611"></a>
+<a name="id675604"></a>
<a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.duplication_theorem">Duplication
Theorem</a>
</h5>
@@ -269,7 +269,7 @@
<span class="inlinemediaobject"><img src="../../../../equations/ellint13.png"></span>
</p>
<a name="ellint_formula"></a><a name="math_toolkit.special.ellint.ellint_intro.carlson_s_formulas"></a><h5>
-<a name="id675686"></a>
+<a name="id675679"></a>
<a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.carlson_s_formulas">Carlson's
Formulas</a>
</h5>
@@ -287,7 +287,7 @@
<span class="inlinemediaobject"><img src="../../../../equations/ellint15.png"></span>
</p>
<a name="math_toolkit.special.ellint.ellint_intro.numerical_algorithms"></a><h5>
-<a name="id675781"></a>
+<a name="id675774"></a>
<a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.numerical_algorithms">Numerical
Algorithms</a>
</h5>
@@ -301,7 +301,7 @@
integrals with satisfactory precisions.
</p>
<a name="ellint_refs"></a><a name="math_toolkit.special.ellint.ellint_intro.references"></a><h5>
-<a name="id675843"></a>
+<a name="id675836"></a>
<a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.references">References</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -67,7 +67,7 @@
if the result is too large to represent in type T.
</p>
<a name="math_toolkit.special.factorials.sf_binomial.accuracy"></a><h5>
-<a name="id637068"></a>
+<a name="id637090"></a>
<a href="sf_binomial.html#math_toolkit.special.factorials.sf_binomial.accuracy">Accuracy</a>
</h5>
<p>
@@ -76,14 +76,14 @@
function for larger arguments.
</p>
<a name="math_toolkit.special.factorials.sf_binomial.testing"></a><h5>
-<a name="id637108"></a>
+<a name="id637131"></a>
<a href="sf_binomial.html#math_toolkit.special.factorials.sf_binomial.testing">Testing</a>
</h5>
<p>
The spot tests for the binomial coefficients use data generated by functions.wolfram.com.
</p>
<a name="math_toolkit.special.factorials.sf_binomial.implementation"></a><h5>
-<a name="id637138"></a>
+<a name="id637160"></a>
<a href="sf_binomial.html#math_toolkit.special.factorials.sf_binomial.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -66,7 +66,7 @@
of i! is possible.
</p>
<a name="math_toolkit.special.factorials.sf_double_factorial.accuracy"></a><h5>
-<a name="id635383"></a>
+<a name="id635406"></a>
<a href="sf_double_factorial.html#math_toolkit.special.factorials.sf_double_factorial.accuracy">Accuracy</a>
</h5>
<p>
@@ -74,14 +74,14 @@
so error rates should be no more than a couple of epsilon higher.
</p>
<a name="math_toolkit.special.factorials.sf_double_factorial.testing"></a><h5>
-<a name="id635414"></a>
+<a name="id635437"></a>
<a href="sf_double_factorial.html#math_toolkit.special.factorials.sf_double_factorial.testing">Testing</a>
</h5>
<p>
The spot tests for the double factorial use data generated by functions.wolfram.com.
</p>
<a name="math_toolkit.special.factorials.sf_double_factorial.implementation"></a><h5>
-<a name="id635446"></a>
+<a name="id635469"></a>
<a href="sf_double_factorial.html#math_toolkit.special.factorials.sf_double_factorial.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.special.factorials.sf_factorial"></a> Factorial
</h4></div></div></div>
<a name="math_toolkit.special.factorials.sf_factorial.synopsis"></a><h5>
-<a name="id633917"></a>
+<a name="id633940"></a>
<a href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.synopsis">Synopsis</a>
</h5>
<p>
@@ -56,7 +56,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.factorials.sf_factorial.description"></a><h5>
-<a name="id634342"></a>
+<a name="id634364"></a>
<a href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.description">Description</a>
</h5>
<pre class="programlisting">
@@ -117,7 +117,7 @@
the size of further tables that depend on the factorials.
</p>
<a name="math_toolkit.special.factorials.sf_factorial.accuracy"></a><h5>
-<a name="id634860"></a>
+<a name="id634883"></a>
<a href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.accuracy">Accuracy</a>
</h5>
<p>
@@ -126,7 +126,7 @@
will be the same as for tgamma.
</p>
<a name="math_toolkit.special.factorials.sf_factorial.testing"></a><h5>
-<a name="id634932"></a>
+<a name="id634955"></a>
<a href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.testing">Testing</a>
</h5>
<p>
@@ -135,7 +135,7 @@
function handle those cases already.
</p>
<a name="math_toolkit.special.factorials.sf_factorial.implementation"></a><h5>
-<a name="id634973"></a>
+<a name="id634995"></a>
<a href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -78,7 +78,7 @@
the type of the result is T.
</p>
<a name="math_toolkit.special.factorials.sf_falling_factorial.accuracy"></a><h5>
-<a name="id636551"></a>
+<a name="id636573"></a>
<a href="sf_falling_factorial.html#math_toolkit.special.factorials.sf_falling_factorial.accuracy">Accuracy</a>
</h5>
<p>
@@ -86,14 +86,14 @@
function.
</p>
<a name="math_toolkit.special.factorials.sf_falling_factorial.testing"></a><h5>
-<a name="id636590"></a>
+<a name="id636611"></a>
<a href="sf_falling_factorial.html#math_toolkit.special.factorials.sf_falling_factorial.testing">Testing</a>
</h5>
<p>
The spot tests for the falling factorials use data generated by functions.wolfram.com.
</p>
<a name="math_toolkit.special.factorials.sf_falling_factorial.implementation"></a><h5>
-<a name="id636621"></a>
+<a name="id636644"></a>
<a href="sf_falling_factorial.html#math_toolkit.special.factorials.sf_falling_factorial.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -82,7 +82,7 @@
the type of the result is T.
</p>
<a name="math_toolkit.special.factorials.sf_rising_factorial.accuracy"></a><h5>
-<a name="id635971"></a>
+<a name="id635994"></a>
<a href="sf_rising_factorial.html#math_toolkit.special.factorials.sf_rising_factorial.accuracy">Accuracy</a>
</h5>
<p>
@@ -90,14 +90,14 @@
function.
</p>
<a name="math_toolkit.special.factorials.sf_rising_factorial.testing"></a><h5>
-<a name="id636009"></a>
+<a name="id636031"></a>
<a href="sf_rising_factorial.html#math_toolkit.special.factorials.sf_rising_factorial.testing">Testing</a>
</h5>
<p>
The spot tests for the rising factorials use data generated by functions.wolfram.com.
</p>
<a name="math_toolkit.special.factorials.sf_rising_factorial.implementation"></a><h5>
-<a name="id636041"></a>
+<a name="id636063"></a>
<a href="sf_rising_factorial.html#math_toolkit.special.factorials.sf_rising_factorial.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/fpclass.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/fpclass.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/fpclass.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Infinities and NaN's</a>
</h3></div></div></div>
<a name="math_toolkit.special.fpclass.synopsis"></a><h5>
-<a name="id696573"></a>
+<a name="id696560"></a>
<a href="fpclass.html#math_toolkit.special.fpclass.synopsis">Synopsis</a>
</h5>
<pre class="programlisting">
@@ -54,7 +54,7 @@
<span class="keyword">bool</span> <span class="identifier">isnormal</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<a name="math_toolkit.special.fpclass.description"></a><h5>
-<a name="id697014"></a>
+<a name="id697001"></a>
<a href="fpclass.html#math_toolkit.special.fpclass.description">Description</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -67,7 +67,7 @@
Implemented using Halley iteration.
</p>
<a name="math_toolkit.special.powers.cbrt.accuracy"></a><h5>
-<a name="id691579"></a>
+<a name="id691566"></a>
<a href="cbrt.html#math_toolkit.special.powers.cbrt.accuracy">Accuracy</a>
</h5>
<p>
@@ -75,7 +75,7 @@
should have approximately 2 epsilon accuracy.
</p>
<a name="math_toolkit.special.powers.cbrt.testing"></a><h5>
-<a name="id691621"></a>
+<a name="id691608"></a>
<a href="cbrt.html#math_toolkit.special.powers.cbrt.testing">Testing</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -76,7 +76,7 @@
(POSIX) implementation of this function.
</p>
<a name="math_toolkit.special.powers.expm1.accuracy"></a><h5>
-<a name="id691116"></a>
+<a name="id691103"></a>
<a href="expm1.html#math_toolkit.special.powers.expm1.accuracy">Accuracy</a>
</h5>
<p>
@@ -84,7 +84,7 @@
should have approximately 1 epsilon accuracy.
</p>
<a name="math_toolkit.special.powers.expm1.testing"></a><h5>
-<a name="id691157"></a>
+<a name="id691144"></a>
<a href="expm1.html#math_toolkit.special.powers.expm1.testing">Testing</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -59,7 +59,7 @@
representable.
</p>
<a name="math_toolkit.special.powers.hypot.implementation"></a><h5>
-<a name="id693089"></a>
+<a name="id693076"></a>
<a href="hypot.html#math_toolkit.special.powers.hypot.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -90,7 +90,7 @@
(POSIX) implementation of this function.
</p>
<a name="math_toolkit.special.powers.log1p.accuracy"></a><h5>
-<a name="id690557"></a>
+<a name="id690544"></a>
<a href="log1p.html#math_toolkit.special.powers.log1p.accuracy">Accuracy</a>
</h5>
<p>
@@ -98,7 +98,7 @@
should have approximately 1 epsilon accuracy.
</p>
<a name="math_toolkit.special.powers.log1p.testing"></a><h5>
-<a name="id690598"></a>
+<a name="id690585"></a>
<a href="log1p.html#math_toolkit.special.powers.log1p.testing">Testing</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -70,14 +70,14 @@
Implemented in terms of <code class="computeroutput"><span class="identifier">expm1</span></code>.
</p>
<a name="math_toolkit.special.powers.powm1.accuracy"></a><h5>
-<a name="id692648"></a>
+<a name="id692635"></a>
<a href="powm1.html#math_toolkit.special.powers.powm1.accuracy">Accuracy</a>
</h5>
<p>
Should have approximately 2-3 epsilon accuracy.
</p>
<a name="math_toolkit.special.powers.powm1.testing"></a><h5>
-<a name="id692678"></a>
+<a name="id692664"></a>
<a href="powm1.html#math_toolkit.special.powers.powm1.testing">Testing</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -72,7 +72,7 @@
and <code class="computeroutput"><span class="identifier">expm1</span></code>.
</p>
<a name="math_toolkit.special.powers.sqrt1pm1.accuracy"></a><h5>
-<a name="id692117"></a>
+<a name="id692104"></a>
<a href="sqrt1pm1.html#math_toolkit.special.powers.sqrt1pm1.accuracy">Accuracy</a>
</h5>
<p>
@@ -80,7 +80,7 @@
should have approximately 3 epsilon accuracy.
</p>
<a name="math_toolkit.special.powers.sqrt1pm1.testing"></a><h5>
-<a name="id692158"></a>
+<a name="id692145"></a>
<a href="sqrt1pm1.html#math_toolkit.special.powers.sqrt1pm1.testing">Testing</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
of the Incomplete Beta Function</a>
</h4></div></div></div>
<a name="math_toolkit.special.sf_beta.beta_derivative.synopsis"></a><h5>
-<a name="id650794"></a>
+<a name="id650792"></a>
<a href="beta_derivative.html#math_toolkit.special.sf_beta.beta_derivative.synopsis">Synopsis</a>
</h5>
<p>
@@ -51,7 +51,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_beta.beta_derivative.description"></a><h5>
-<a name="id651256"></a>
+<a name="id651254"></a>
<a href="beta_derivative.html#math_toolkit.special.sf_beta.beta_derivative.description">Description</a>
</h5>
<p>
@@ -78,14 +78,14 @@
<p>
</p>
<a name="math_toolkit.special.sf_beta.beta_derivative.accuracy"></a><h5>
-<a name="id651372"></a>
+<a name="id651371"></a>
<a href="beta_derivative.html#math_toolkit.special.sf_beta.beta_derivative.accuracy">Accuracy</a>
</h5>
<p>
Almost identical to the incomplete beta function ibeta.
</p>
<a name="math_toolkit.special.sf_beta.beta_derivative.implementation"></a><h5>
-<a name="id651410"></a>
+<a name="id651409"></a>
<a href="beta_derivative.html#math_toolkit.special.sf_beta.beta_derivative.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.special.sf_beta.beta_function"></a> Beta
</h4></div></div></div>
<a name="math_toolkit.special.sf_beta.beta_function.synopsis"></a><h5>
-<a name="id637270"></a>
+<a name="id637293"></a>
<a href="beta_function.html#math_toolkit.special.sf_beta.beta_function.synopsis">Synopsis</a>
</h5>
<p>
@@ -50,7 +50,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_beta.beta_function.description"></a><h5>
-<a name="id637663"></a>
+<a name="id637685"></a>
<a href="beta_function.html#math_toolkit.special.sf_beta.beta_function.description">Description</a>
</h5>
<p>
@@ -88,7 +88,7 @@
type calculation rules</em></span></a> when T1 and T2 are different types.
</p>
<a name="math_toolkit.special.sf_beta.beta_function.accuracy"></a><h5>
-<a name="id637825"></a>
+<a name="id637847"></a>
<a href="beta_function.html#math_toolkit.special.sf_beta.beta_function.accuracy">Accuracy</a>
</h5>
<p>
@@ -100,7 +100,7 @@
zero error</a>.
</p>
<div class="table">
-<a name="id637872"></a><p class="title"><b>Table 15. Peak Errors In the Beta Function</b></p>
+<a name="id637894"></a><p class="title"><b>Table 15. Peak Errors In the Beta Function</b></p>
<div class="table-contents"><table class="table" summary="Peak Errors In the Beta Function">
<colgroup>
<col>
@@ -246,7 +246,7 @@
very small.
</p>
<a name="math_toolkit.special.sf_beta.beta_function.testing"></a><h5>
-<a name="id638118"></a>
+<a name="id638140"></a>
<a href="beta_function.html#math_toolkit.special.sf_beta.beta_function.testing">Testing</a>
</h5>
<p>
@@ -255,7 +255,7 @@
at 1000-bit precision.
</p>
<a name="math_toolkit.special.sf_beta.beta_function.implementation"></a><h5>
-<a name="id638156"></a>
+<a name="id638178"></a>
<a href="beta_function.html#math_toolkit.special.sf_beta.beta_function.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Beta Functions</a>
</h4></div></div></div>
<a name="math_toolkit.special.sf_beta.ibeta_function.synopsis"></a><h5>
-<a name="id638478"></a>
+<a name="id638500"></a>
<a href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.synopsis">Synopsis</a>
</h5>
<p>
@@ -69,7 +69,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_beta.ibeta_function.description"></a><h5>
-<a name="id639863"></a>
+<a name="id639885"></a>
<a href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.description">Description</a>
</h5>
<p>
@@ -159,7 +159,7 @@
<span class="inlinemediaobject"><img src="../../../../equations/ibeta2.png"></span>
</p>
<a name="math_toolkit.special.sf_beta.ibeta_function.accuracy"></a><h5>
-<a name="id641408"></a>
+<a name="id641429"></a>
<a href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.accuracy">Accuracy</a>
</h5>
<p>
@@ -178,7 +178,7 @@
with the wider exponent range of the long double types.
</p>
<div class="table">
-<a name="id641465"></a><p class="title"><b>Table 16. Errors In the Function ibeta(a,b,x)</b></p>
+<a name="id641487"></a><p class="title"><b>Table 16. Errors In the Function ibeta(a,b,x)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function ibeta(a,b,x)">
<colgroup>
<col>
@@ -365,7 +365,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id641814"></a><p class="title"><b>Table 17. Errors In the Function ibetac(a,b,x)</b></p>
+<a name="id641836"></a><p class="title"><b>Table 17. Errors In the Function ibetac(a,b,x)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function ibetac(a,b,x)">
<colgroup>
<col>
@@ -532,7 +532,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id642099"></a><p class="title"><b>Table 18. Errors In the Function beta(a, b, x)</b></p>
+<a name="id642120"></a><p class="title"><b>Table 18. Errors In the Function beta(a, b, x)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function beta(a, b, x)">
<colgroup>
<col>
@@ -699,7 +699,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id642380"></a><p class="title"><b>Table 19. Errors In the Function betac(a,b,x)</b></p>
+<a name="id642401"></a><p class="title"><b>Table 19. Errors In the Function betac(a,b,x)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function betac(a,b,x)">
<colgroup>
<col>
@@ -866,7 +866,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.special.sf_beta.ibeta_function.testing"></a><h5>
-<a name="id642673"></a>
+<a name="id642695"></a>
<a href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.testing">Testing</a>
</h5>
<p>
@@ -884,7 +884,7 @@
have test data that is fully independent of the code.
</p>
<a name="math_toolkit.special.sf_beta.ibeta_function.implementation"></a><h5>
-<a name="id642736"></a>
+<a name="id642758"></a>
<a href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -89,7 +89,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_beta.ibeta_inv_function.description"></a><h5>
-<a name="id645886"></a>
+<a name="id645908"></a>
<a href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.description">Description</a>
</h5>
<p>
@@ -331,7 +331,7 @@
<p>
</p>
<a name="math_toolkit.special.sf_beta.ibeta_inv_function.accuracy"></a><h5>
-<a name="id649618"></a>
+<a name="id649633"></a>
<a href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.accuracy">Accuracy</a>
</h5>
<p>
@@ -343,7 +343,7 @@
or <code class="computeroutput"><span class="number">1</span></code>.
</p>
<a name="math_toolkit.special.sf_beta.ibeta_inv_function.testing"></a><h5>
-<a name="id649684"></a>
+<a name="id649699"></a>
<a href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.testing">Testing</a>
</h5>
<p>
@@ -367,7 +367,7 @@
</li>
</ul></div>
<a name="math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_ibeta_inv_and_ibetac_inv"></a><h5>
-<a name="id649761"></a>
+<a name="id649777"></a>
<a href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_ibeta_inv_and_ibetac_inv">Implementation
of ibeta_inv and ibetac_inv</a>
</h5>
@@ -535,7 +535,7 @@
rapidly converges on the true value.
</p>
<a name="math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_inverses_on_the_a_and_b_parameters"></a><h5>
-<a name="id650687"></a>
+<a name="id650690"></a>
<a href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_inverses_on_the_a_and_b_parameters">Implementation
of inverses on the a and b parameters</a>
</h5>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Functions</a>
</h4></div></div></div>
<a name="math_toolkit.special.sf_erf.error_function.synopsis"></a><h5>
-<a name="id651487"></a>
+<a name="id651485"></a>
<a href="error_function.html#math_toolkit.special.sf_erf.error_function.synopsis">Synopsis</a>
</h5>
<p>
@@ -71,7 +71,7 @@
<p>
</p>
<a name="math_toolkit.special.sf_erf.error_function.description"></a><h5>
-<a name="id652036"></a>
+<a name="id652035"></a>
<a href="error_function.html#math_toolkit.special.sf_erf.error_function.description">Description</a>
</h5>
<pre class="programlisting">
@@ -110,7 +110,7 @@
<span class="inlinemediaobject"><img src="../../../../graphs/erf2.png" alt="erf2"></span>
</p>
<a name="math_toolkit.special.sf_erf.error_function.accuracy"></a><h5>
-<a name="id652546"></a>
+<a name="id652545"></a>
<a href="error_function.html#math_toolkit.special.sf_erf.error_function.accuracy">Accuracy</a>
</h5>
<p>
@@ -123,7 +123,7 @@
the one shown will have effectively zero error.
</p>
<div class="table">
-<a name="id652607"></a><p class="title"><b>Table 20. Errors In the Function erf(z)</b></p>
+<a name="id652606"></a><p class="title"><b>Table 20. Errors In the Function erf(z)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function erf(z)">
<colgroup>
<col>
@@ -329,7 +329,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id652980"></a><p class="title"><b>Table 21. Errors In the Function erfc(z)</b></p>
+<a name="id652979"></a><p class="title"><b>Table 21. Errors In the Function erfc(z)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function erfc(z)">
<colgroup>
<col>
@@ -535,7 +535,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.special.sf_erf.error_function.testing"></a><h5>
-<a name="id653363"></a>
+<a name="id653362"></a>
<a href="error_function.html#math_toolkit.special.sf_erf.error_function.testing">Testing</a>
</h5>
<p>
@@ -550,7 +550,7 @@
check.
</p>
<a name="math_toolkit.special.sf_erf.error_function.implementation"></a><h5>
-<a name="id653416"></a>
+<a name="id653414"></a>
<a href="error_function.html#math_toolkit.special.sf_erf.error_function.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Inverses</a>
</h4></div></div></div>
<a name="math_toolkit.special.sf_erf.error_inv.synopsis"></a><h5>
-<a name="id654289"></a>
+<a name="id654284"></a>
<a href="error_inv.html#math_toolkit.special.sf_erf.error_inv.synopsis">Synopsis</a>
</h5>
<p>
@@ -71,7 +71,7 @@
<p>
</p>
<a name="math_toolkit.special.sf_erf.error_inv.description"></a><h5>
-<a name="id654839"></a>
+<a name="id654834"></a>
<a href="error_inv.html#math_toolkit.special.sf_erf.error_inv.description">Description</a>
</h5>
<pre class="programlisting">
@@ -109,7 +109,7 @@
<span class="inlinemediaobject"><img src="../../../../graphs/erfc_inv.png" alt="erfc_inv"></span>
</p>
<a name="math_toolkit.special.sf_erf.error_inv.accuracy"></a><h5>
-<a name="id655359"></a>
+<a name="id655355"></a>
<a href="error_inv.html#math_toolkit.special.sf_erf.error_inv.accuracy">Accuracy</a>
</h5>
<p>
@@ -119,7 +119,7 @@
error functions</a>.
</p>
<a name="math_toolkit.special.sf_erf.error_inv.testing"></a><h5>
-<a name="id655400"></a>
+<a name="id655395"></a>
<a href="error_inv.html#math_toolkit.special.sf_erf.error_inv.testing">Testing</a>
</h5>
<p>
@@ -141,7 +141,7 @@
</li>
</ul></div>
<a name="math_toolkit.special.sf_erf.error_inv.implementation"></a><h5>
-<a name="id655462"></a>
+<a name="id655463"></a>
<a href="error_inv.html#math_toolkit.special.sf_erf.error_inv.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.special.sf_gamma.digamma"></a> Digamma
</h4></div></div></div>
<a name="math_toolkit.special.sf_gamma.digamma.synopsis"></a><h5>
-<a name="id622374"></a>
+<a name="id622406"></a>
<a href="digamma.html#math_toolkit.special.sf_gamma.digamma.synopsis">Synopsis</a>
</h5>
<p>
@@ -50,7 +50,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_gamma.digamma.description"></a><h5>
-<a name="id622697"></a>
+<a name="id622730"></a>
<a href="digamma.html#math_toolkit.special.sf_gamma.digamma.description">Description</a>
</h5>
<p>
@@ -84,7 +84,7 @@
T otherwise.
</p>
<a name="math_toolkit.special.sf_gamma.digamma.accuracy"></a><h5>
-<a name="id622843"></a>
+<a name="id622876"></a>
<a href="digamma.html#math_toolkit.special.sf_gamma.digamma.accuracy">Accuracy</a>
</h5>
<p>
@@ -272,7 +272,7 @@
absolute error will remain very low.
</p>
<a name="math_toolkit.special.sf_gamma.digamma.testing"></a><h5>
-<a name="id623147"></a>
+<a name="id623179"></a>
<a href="digamma.html#math_toolkit.special.sf_gamma.digamma.testing">Testing</a>
</h5>
<p>
@@ -282,7 +282,7 @@
see below).
</p>
<a name="math_toolkit.special.sf_gamma.digamma.implementation"></a><h5>
-<a name="id623189"></a>
+<a name="id623222"></a>
<a href="digamma.html#math_toolkit.special.sf_gamma.digamma.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
of the Incomplete Gamma Function</a>
</h4></div></div></div>
<a name="math_toolkit.special.sf_gamma.gamma_derivatives.synopsis"></a><h5>
-<a name="id633277"></a>
+<a name="id633300"></a>
<a href="gamma_derivatives.html#math_toolkit.special.sf_gamma.gamma_derivatives.synopsis">Synopsis</a>
</h5>
<p>
@@ -51,7 +51,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_gamma.gamma_derivatives.description"></a><h5>
-<a name="id633670"></a>
+<a name="id633693"></a>
<a href="gamma_derivatives.html#math_toolkit.special.sf_gamma.gamma_derivatives.description">Description</a>
</h5>
<p>
@@ -82,7 +82,7 @@
otherwise the return type is simply T1.
</p>
<a name="math_toolkit.special.sf_gamma.gamma_derivatives.accuracy"></a><h5>
-<a name="id633795"></a>
+<a name="id633818"></a>
<a href="gamma_derivatives.html#math_toolkit.special.sf_gamma.gamma_derivatives.accuracy">Accuracy</a>
</h5>
<p>
@@ -90,7 +90,7 @@
refer to the documentation for that function for more information.
</p>
<a name="math_toolkit.special.sf_gamma.gamma_derivatives.implementation"></a><h5>
-<a name="id633836"></a>
+<a name="id633859"></a>
<a href="gamma_derivatives.html#math_toolkit.special.sf_gamma.gamma_derivatives.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -53,7 +53,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_gamma.gamma_ratios.description"></a><h5>
-<a name="id624568"></a>
+<a name="id624600"></a>
<a href="gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.description">Description</a>
</h5>
<pre class="programlisting">
@@ -118,7 +118,7 @@
otherwise the result type is simple T1.
</p>
<a name="math_toolkit.special.sf_gamma.gamma_ratios.accuracy"></a><h5>
-<a name="id625306"></a>
+<a name="id625339"></a>
<a href="gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.accuracy">Accuracy</a>
</h5>
<p>
@@ -128,7 +128,7 @@
<a href="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
</p>
<div class="table">
-<a name="id625339"></a><p class="title"><b>Table 9. Errors In the Function tgamma_delta_ratio(a, delta)</b></p>
+<a name="id625372"></a><p class="title"><b>Table 9. Errors In the Function tgamma_delta_ratio(a, delta)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function tgamma_delta_ratio(a, delta)">
<colgroup>
<col>
@@ -231,7 +231,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id625500"></a><p class="title"><b>Table 10. Errors In the Function tgamma_ratio(a,
+<a name="id625532"></a><p class="title"><b>Table 10. Errors In the Function tgamma_ratio(a,
b)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function tgamma_ratio(a,
b)">
@@ -330,7 +330,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.special.sf_gamma.gamma_ratios.testing"></a><h5>
-<a name="id625662"></a>
+<a name="id625694"></a>
<a href="gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.testing">Testing</a>
</h5>
<p>
@@ -339,7 +339,7 @@
a deliberately naive calculation of Γ(x)/Γ(y).
</p>
<a name="math_toolkit.special.sf_gamma.gamma_ratios.implementation"></a><h5>
-<a name="id625702"></a>
+<a name="id625735"></a>
<a href="gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Functions</a>
</h4></div></div></div>
<a name="math_toolkit.special.sf_gamma.igamma.synopsis"></a><h5>
-<a name="id625775"></a>
+<a name="id625808"></a>
<a href="igamma.html#math_toolkit.special.sf_gamma.igamma.synopsis">Synopsis</a>
</h5>
<p>
@@ -69,7 +69,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_gamma.igamma.description"></a><h5>
-<a name="id626884"></a>
+<a name="id626917"></a>
<a href="igamma.html#math_toolkit.special.sf_gamma.igamma.description">Description</a>
</h5>
<p>
@@ -166,7 +166,7 @@
<span class="inlinemediaobject"><img src="../../../../equations/igamma1.png"></span>
</p>
<a name="math_toolkit.special.sf_gamma.igamma.accuracy"></a><h5>
-<a name="id628184"></a>
+<a name="id628217"></a>
<a href="igamma.html#math_toolkit.special.sf_gamma.igamma.accuracy">Accuracy</a>
</h5>
<p>
@@ -191,7 +191,7 @@
All values are in units of epsilon.
</p>
<div class="table">
-<a name="id628253"></a><p class="title"><b>Table 11. Errors In the Function gamma_p(a,z)</b></p>
+<a name="id628286"></a><p class="title"><b>Table 11. Errors In the Function gamma_p(a,z)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function gamma_p(a,z)">
<colgroup>
<col>
@@ -378,7 +378,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id628572"></a><p class="title"><b>Table 12. Errors In the Function gamma_q(a,z)</b></p>
+<a name="id628605"></a><p class="title"><b>Table 12. Errors In the Function gamma_q(a,z)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function gamma_q(a,z)">
<colgroup>
<col>
@@ -564,7 +564,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id628910"></a><p class="title"><b>Table 13. Errors In the Function tgamma_lower(a,z)</b></p>
+<a name="id628943"></a><p class="title"><b>Table 13. Errors In the Function tgamma_lower(a,z)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function tgamma_lower(a,z)">
<colgroup>
<col>
@@ -699,7 +699,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id629123"></a><p class="title"><b>Table 14. Errors In the Function tgamma(a,z)</b></p>
+<a name="id629156"></a><p class="title"><b>Table 14. Errors In the Function tgamma(a,z)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function tgamma(a,z)">
<colgroup>
<col>
@@ -834,7 +834,7 @@
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.special.sf_gamma.igamma.testing"></a><h5>
-<a name="id629344"></a>
+<a name="id629377"></a>
<a href="igamma.html#math_toolkit.special.sf_gamma.igamma.testing">Testing</a>
</h5>
<p>
@@ -850,7 +850,7 @@
fraction (see below) is unstable for small a and z.
</p>
<a name="math_toolkit.special.sf_gamma.igamma.implementation"></a><h5>
-<a name="id629402"></a>
+<a name="id629435"></a>
<a href="igamma.html#math_toolkit.special.sf_gamma.igamma.implementation">Implementation</a>
</h5>
<p>
@@ -1021,7 +1021,7 @@
by Temme (see references below).
</p>
<a name="math_toolkit.special.sf_gamma.igamma.references"></a><h5>
-<a name="id630444"></a>
+<a name="id630467"></a>
<a href="igamma.html#math_toolkit.special.sf_gamma.igamma.references">References</a>
</h5>
<div class="itemizedlist"><ul type="disc">
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -28,7 +28,7 @@
Gamma Function Inverses</a>
</h4></div></div></div>
<a name="math_toolkit.special.sf_gamma.igamma_inv.synopsis"></a><h5>
-<a name="id630526"></a>
+<a name="id630549"></a>
<a href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.synopsis">Synopsis</a>
</h5>
<p>
@@ -69,7 +69,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_gamma.igamma_inv.description"></a><h5>
-<a name="id631636"></a>
+<a name="id631660"></a>
<a href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.description">Description</a>
</h5>
<p>
@@ -179,7 +179,7 @@
0</em></span>.
</p>
<a name="math_toolkit.special.sf_gamma.igamma_inv.accuracy"></a><h5>
-<a name="id633033"></a>
+<a name="id633056"></a>
<a href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.accuracy">Accuracy</a>
</h5>
<p>
@@ -193,7 +193,7 @@
functions.
</p>
<a name="math_toolkit.special.sf_gamma.igamma_inv.testing"></a><h5>
-<a name="id633087"></a>
+<a name="id633110"></a>
<a href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.testing">Testing</a>
</h5>
<p>
@@ -216,7 +216,7 @@
</li>
</ul></div>
<a name="math_toolkit.special.sf_gamma.igamma_inv.implementation"></a><h5>
-<a name="id633162"></a>
+<a name="id633185"></a>
<a href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.special.sf_gamma.lgamma"></a> Log Gamma
</h4></div></div></div>
<a name="math_toolkit.special.sf_gamma.lgamma.synopsis"></a><h5>
-<a name="id620019"></a>
+<a name="id620051"></a>
<a href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.synopsis">Synopsis</a>
</h5>
<p>
@@ -56,7 +56,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_gamma.lgamma.description"></a><h5>
-<a name="id620556"></a>
+<a name="id620588"></a>
<a href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.description">Description</a>
</h5>
<p>
@@ -100,7 +100,7 @@
T otherwise.
</p>
<a name="math_toolkit.special.sf_gamma.lgamma.accuracy"></a><h5>
-<a name="id620744"></a>
+<a name="id620775"></a>
<a href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.accuracy">Accuracy</a>
</h5>
<p>
@@ -351,7 +351,7 @@
</tbody>
</table></div>
<a name="math_toolkit.special.sf_gamma.lgamma.testing"></a><h5>
-<a name="id621267"></a>
+<a name="id621299"></a>
<a href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.testing">Testing</a>
</h5>
<p>
@@ -362,7 +362,7 @@
Random tests in key problem areas are also used.
</p>
<a name="math_toolkit.special.sf_gamma.lgamma.implementation"></a><h5>
-<a name="id621303"></a>
+<a name="id621334"></a>
<a href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.special.sf_gamma.tgamma"></a> Gamma
</h4></div></div></div>
<a name="math_toolkit.special.sf_gamma.tgamma.synopsis"></a><h5>
-<a name="id617610"></a>
+<a name="id617643"></a>
<a href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.synopsis">Synopsis</a>
</h5>
<p>
@@ -56,7 +56,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_gamma.tgamma.description"></a><h5>
-<a name="id618103"></a>
+<a name="id618136"></a>
<a href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.description">Description</a>
</h5>
<pre class="programlisting">
@@ -133,7 +133,7 @@
<p>
</p>
<a name="math_toolkit.special.sf_gamma.tgamma.accuracy"></a><h5>
-<a name="id618776"></a>
+<a name="id618810"></a>
<a href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.accuracy">Accuracy</a>
</h5>
<p>
@@ -388,7 +388,7 @@
</tbody>
</table></div>
<a name="math_toolkit.special.sf_gamma.tgamma.testing"></a><h5>
-<a name="id619314"></a>
+<a name="id619347"></a>
<a href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.testing">Testing</a>
</h5>
<p>
@@ -403,7 +403,7 @@
a lanczos approximation accurate to around 100 decimal digits.
</p>
<a name="math_toolkit.special.sf_gamma.tgamma.implementation"></a><h5>
-<a name="id619406"></a>
+<a name="id619440"></a>
<a href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -258,7 +258,7 @@
is very close to a root.
</p>
<a name="math_toolkit.special.sf_poly.hermite.testing"></a><h5>
-<a name="id665441"></a>
+<a name="id665435"></a>
<a href="hermite.html#math_toolkit.special.sf_poly.hermite.testing">Testing</a>
</h5>
<p>
@@ -268,7 +268,7 @@
precision.
</p>
<a name="math_toolkit.special.sf_poly.hermite.implementation"></a><h5>
-<a name="id665480"></a>
+<a name="id665474"></a>
<a href="hermite.html#math_toolkit.special.sf_poly.hermite.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -64,7 +64,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_poly.laguerre.description"></a><h5>
-<a name="id661220"></a>
+<a name="id661221"></a>
<a href="laguerre.html#math_toolkit.special.sf_poly.laguerre.description">Description</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -86,7 +86,7 @@
<p>
</p>
<a name="math_toolkit.special.sf_poly.legendre.description"></a><h5>
-<a name="id657167"></a>
+<a name="id657168"></a>
<a href="legendre.html#math_toolkit.special.sf_poly.legendre.description">Description</a>
</h5>
<pre class="programlisting">
@@ -542,7 +542,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id659981"></a><p class="title"><b>Table 24. Peak Errors In the Legendre Q Function</b></p>
+<a name="id659982"></a><p class="title"><b>Table 24. Peak Errors In the Legendre Q Function</b></p>
<div class="table-contents"><table class="table" summary="Peak Errors In the Legendre Q Function">
<colgroup>
<col>
@@ -684,7 +684,7 @@
given here.
</p>
<a name="math_toolkit.special.sf_poly.legendre.testing"></a><h5>
-<a name="id660207"></a>
+<a name="id660208"></a>
<a href="legendre.html#math_toolkit.special.sf_poly.legendre.testing">Testing</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html
==============================================================================
--- branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html (original)
+++ branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html 2007-10-21 03:28:23 EDT (Sun, 21 Oct 2007)
@@ -27,7 +27,7 @@
<a name="math_toolkit.special.sf_poly.sph_harm"></a> Spherical Harmonics
</h4></div></div></div>
<a name="math_toolkit.special.sf_poly.sph_harm.synopsis"></a><h5>
-<a name="id665534"></a>
+<a name="id665528"></a>
<a href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.synopsis">Synopsis</a>
</h5>
<p>
@@ -62,7 +62,7 @@
<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<a name="math_toolkit.special.sf_poly.sph_harm.description"></a><h5>
-<a name="id666662"></a>
+<a name="id666656"></a>
<a href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.description">Description</a>
</h5>
<p>
@@ -160,7 +160,7 @@
<span class="inlinemediaobject"><img src="../../../../equations/spherical_2.png"></span>
</p>
<a name="math_toolkit.special.sf_poly.sph_harm.accuracy"></a><h5>
-<a name="id667938"></a>
+<a name="id667932"></a>
<a href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.accuracy">Accuracy</a>
</h5>
<p>
@@ -175,7 +175,7 @@
All values are in units of epsilon.
</p>
<div class="table">
-<a name="id667977"></a><p class="title"><b>Table 28. Peak Errors In the Sperical Harmonic Functions</b></p>
+<a name="id667971"></a><p class="title"><b>Table 28. Peak Errors In the Sperical Harmonic Functions</b></p>
<div class="table-contents"><table class="table" summary="Peak Errors In the Sperical Harmonic Functions">
<colgroup>
<col>
@@ -281,7 +281,7 @@
arbitrarily large when the function is very close to a root.
</p>
<a name="math_toolkit.special.sf_poly.sph_harm.testing"></a><h5>
-<a name="id668157"></a>
+<a name="id668150"></a>
<a href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.testing">Testing</a>
</h5>
<p>
@@ -291,7 +291,7 @@
precision.
</p>
<a name="math_toolkit.special.sf_poly.sph_harm.implementation"></a><h5>
-<a name="id668196"></a>
+<a name="id668189"></a>
<a href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.implementation">Implementation</a>
</h5>
<p>
Modified: branches/hash/libs/math/doc/sf_and_dist/html/math_toolkit/status/compilers.html
===========