Boost logo

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 &amp; 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/.*\(&lt;math[^&gt;]*&gt;.*&lt;/math&gt;\).*/\1/' &gt; 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">&lt;!-- MathML-to-SVG configuration file --&gt;
-&lt;config verbose<code class="literal">"true"&gt;
- &lt;!-- Fallback font family --&gt;
- &lt;fallback family</code>"Lucida Sans Unicode"/&gt;
-
- &lt;!-- Default values for MathML properties. --&gt;
- &lt;!-- Most of these are defined in the MathML Rec - change with care --&gt;
- &lt;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"/&gt;
-
- &lt;!-- Additional styling for individual operators --&gt;
- &lt;!-- Make differentials italic --&gt;
- &lt;operator-style operator<code class="literal">"&amp;#x2145;" fontstyle</code>"italic"/&gt;
- &lt;operator-style operator<code class="literal">"&amp;#x2146;" fontstyle</code>"italic"/&gt;
-
- &lt;!-- Font families --&gt;
- &lt;family name<code class="literal">"Times New Roman"&gt;
- &lt;font ttf</code>"C:\WINDOWS\Fonts\times.ttf"/&gt;
- &lt;font weight<code class="literal">"bold" ttf</code>"C:\WINDOWS\Fonts\timesbd.ttf"/&gt;
- &lt;font style<code class="literal">"italic" ttf</code>"C:\WINDOWS\Fonts\timesi.ttf"/&gt;
- &lt;font weight<code class="literal">"bold" style</code>"italic" ttf<code class="literal">"C:\WINDOWS\Fonts\timesbi.ttf"\/&gt;
- &lt;\/family&gt;
-
- &lt;family name</code>"Arial"&gt;
- &lt;font ttf<code class="literal">"C:\WINDOWS\Fonts\arial.ttf"\/&gt;
- &lt;font weight</code>"bold" ttf<code class="literal">"C:\WINDOWS\Fonts\arialbd.ttf"\/&gt;
- &lt;font style</code>"italic" ttf<code class="literal">"C:\WINDOWS\Fonts\ariali.ttf"\/&gt;
- &lt;font weight</code>"bold" style<code class="literal">"italic" ttf</code>"C:\WINDOWS\Fonts\arialbi.ttf"/&gt;
- &lt;/family&gt;
-
- &lt;family name<code class="literal">"Courier New"&gt;
- &lt;font ttf</code>"C:\WINDOWS\Fonts\cour.ttf"/&gt;
- &lt;font weight<code class="literal">"bold" ttf</code>"C:\WINDOWS\Fonts\courbd.ttf"/&gt;
- &lt;font style<code class="literal">"italic" ttf</code>"C:\WINDOWS\Fonts\couri.ttf"/&gt;
- &lt;font weight<code class="literal">"bold" style</code>"italic" ttf<code class="literal">"C:\WINDOWS\Fonts\courbi.ttf"\/&gt;
- &lt;\/family&gt;
-
- &lt;family name</code>"Euclid Fraktur"&gt;
- &lt;font ttf<code class="literal">"C:\WINDOWS\Fonts\eufrak.ttf"\/&gt;
- &lt;font weight</code>"bold" ttf<code class="literal">"C:\WINDOWS\Fonts\eufrakb.ttf"\/&gt;
- &lt;\/family&gt;
-
- &lt;family name</code>"Monotype Corsiva"&gt;
- &lt;font ttf<code class="literal">"C:\WINDOWS\Fonts\mtcorsva.ttf"\/&gt;
- &lt;\/family&gt;
-
- &lt;family name</code>"Lucida Sans Unicode"&gt;
- &lt;font ttf<code class="literal">"C:\WINDOWS\Fonts\lsansuni.ttf"\/&gt;
- &lt;\/family&gt;
-
- &lt;!-- Math variant definitions --&gt;
- &lt;!-- Serif --&gt;
- &lt;mathvariant name</code>"normal"
- family<code class="literal">"Times New Roman, Lucida Sans Unicode"\/&gt;
- &lt;mathvariant name</code>"bold"
- family<code class="literal">"Times New Roman, Lucida Sans Unicode" weight</code>"bold"/&gt;
- &lt;mathvariant name<code class="literal">"italic"
- family</code>"Times New Roman, Lucida Sans Unicode" style<code class="literal">"italic"\/&gt;
- &lt;mathvariant name</code>"bold-italic"
- family<code class="literal">"Times New Roman, Lucida Sans Unicode" weight</code>"bold" style<code class="literal">"italic"\/&gt;
-
- &lt;!-- Sans-Serif --&gt;
- &lt;mathvariant name</code>"sans-serif"
- family<code class="literal">"Arial, Lucida Sans Unicode"\/&gt;
- &lt;mathvariant name</code>"bold-sans-serif"
- family<code class="literal">"Arial, Lucida Sans Unicode" weight</code>"bold"/&gt;
- &lt;mathvariant name<code class="literal">"sans-serif-italic"
- family</code>"Arial, Lucida Sans Unicode" style<code class="literal">"italic"\/&gt;
- &lt;mathvariant name</code>"sans-serif-bold-italic"
- family<code class="literal">"Arial, Lucida Sans Unicode" weight</code>"bold" style<code class="literal">"italic"\/&gt;
-
- &lt;!-- Fraktur --&gt;
- &lt;mathvariant name</code>"fraktur"
- family<code class="literal">"Euclid Fraktur, Lucida Sans Unicode"\/&gt;
- &lt;mathvariant name</code>"bold-fraktur"
- family<code class="literal">"Euclid Fraktur, Lucida Sans Unicode" weight</code>"bold"/&gt;
-
- &lt;!-- Script --&gt;
- &lt;mathvariant name<code class="literal">"script"
- family</code>"Monotype Corsiva, Lucida Sans Unicode"/&gt;
- &lt;mathvariant name<code class="literal">"bold-script"
- family</code>"Monotype Corsiva, Lucida Sans Unicode" weight<code class="literal">"bold"\/&gt;
-
- &lt;!-- Monospace --&gt;
- &lt;mathvariant name</code>"monospace" family<code class="literal">"Courier New, Lucida Sans Unicode"\/&gt;
-
- &lt;!-- Double-struck --&gt;
- &lt;mathvariant name</code>"double-struck" family="Lucida Sans Unicode"/&gt;
-&lt;/config&gt;
-</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" \
-&gt;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">&lt;?xml version<code class="literal">"1.0" encoding</code>"UTF-8"?&gt;
-&lt;config&gt;
-
- &lt;!-- <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>= --&gt;
- &lt;!-- Formatter options --&gt;
- &lt;!-- <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>= --&gt;
- &lt;options&gt;
- &lt;option name<code class="literal">"LICENSE" value</code>"license.xml"/&gt;
- &lt;option name<code class="literal">"TMPDIR" value</code>"none"/&gt;
- &lt;option name<code class="literal">"BROKENIMAGE" value</code>"images/404.gif"/&gt;
- &lt;option name<code class="literal">"LOGO" value</code>"images/logo-renderx.svg"/&gt;
-
- &lt;!-- Backend options --&gt;
- &lt;generator-options format<code class="literal">"PDF"&gt;
- &lt;!-- &lt;option name</code>"COMPRESS" value<code class="literal">"false"\/&gt; --&gt;
- &lt;!-- &lt;option name</code>"PDF_VERSION" value<code class="literal">"1.3"\/&gt; --&gt;
- &lt;\/generator-options&gt;
-
- &lt;generator-options format</code>"PostScript"&gt;
- &lt;!-- &lt;option name<code class="literal">"LANGUAGE_LEVEL" value</code>"2"/&gt; --&gt;
- &lt;!-- &lt;option name<code class="literal">"CLONE_EPS" value</code>"true"/&gt; --&gt;
- &lt;/generator-options&gt;
-
- &lt;generator-options format<code class="literal">"AFP"&gt;
- &lt;option name</code>"AFPCodepageTxt" value<code class="literal">"Cp500"\/&gt;
- &lt;option name</code>"AFPCodepage" value<code class="literal">"T1V10500"\/&gt;
- &lt;option name</code>"AFPLogLevel" value<code class="literal">"0"\/&gt;
- &lt;option name</code>"USE_PTOCA_LEVEL" value<code class="literal">"3"\/&gt;
- &lt;option name</code>"USE_BCOCA_LEVEL" value<code class="literal">"1"\/&gt;
- &lt;option name</code>"USE_GOCA_LEVEL" value<code class="literal">"1"\/&gt;
- &lt;option name</code>"RESOLUTION" value<code class="literal">"1440"\/&gt;
- &lt;!-- &lt;option name</code>"AFPGrayImage" value<code class="literal">"yes"\/&gt; --&gt;
- &lt;option name</code>"USE_SHADING_PATTERNS" value<code class="literal">"yes"\/&gt;
- &lt;option name</code>"USE_REPLICATE_AND_TRIM" value<code class="literal">"yes"\/&gt;
- &lt;option name</code>"SHADING_PATTERN_RESOLUTION" value<code class="literal">"0.25"\/&gt;
- &lt;option name</code>"TRY_USING_TIFF_COMPRESSION" value<code class="literal">"yes"\/&gt;
- &lt;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"\/&gt;
- &lt;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"\/&gt;
- &lt;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"\/&gt;
- &lt;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"\/&gt;
- &lt;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"\/&gt;
- &lt;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"\/&gt;
- &lt;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"\/&gt;
- &lt;\/generator-options&gt;
- &lt;\/options&gt;
-
- &lt;!-- =</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">= --&gt;
- &lt;!-- Fonts --&gt;
- &lt;!-- =</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">= --&gt;
-
- &lt;fonts xml:base</code>"fonts/" default-family<code class="literal">"Helvetica"&gt;
-
- &lt;!-- Base Adobe fonts. --&gt;
- &lt;font-group label</code>"Base 14" embed<code class="literal">"false"&gt;
- &lt;font-family name</code>"Courier"&gt;
- &lt;font&gt;&lt;font-data afm<code class="literal">"Courier.afm"\/&gt;&lt;\/font&gt;
- &lt;font style</code>"oblique"&gt;&lt;font-data afm<code class="literal">"Courier-Oblique.afm"\/&gt;&lt;\/font&gt;
- &lt;font weight</code>"bold"&gt;&lt;font-data afm<code class="literal">"Courier-Bold.afm"\/&gt;&lt;\/font&gt;
- &lt;font weight</code>"bold" style<code class="literal">"oblique"&gt;&lt;font-data afm</code>"Courier-BoldOblique.afm"/&gt;&lt;/font&gt;
- &lt;/font-family&gt;
-
- &lt;font-family name<code class="literal">"Helvetica"&gt;
- &lt;font&gt;&lt;font-data afm</code>"Helvetica.afm"/&gt;&lt;/font&gt;
- &lt;font style<code class="literal">"oblique"&gt;&lt;font-data afm</code>"Helvetica-Oblique.afm"/&gt;&lt;/font&gt;
- &lt;font weight<code class="literal">"bold"&gt;&lt;font-data afm</code>"Helvetica-Bold.afm"/&gt;&lt;/font&gt;
- &lt;font weight<code class="literal">"bold" style</code>"oblique"&gt;&lt;font-data afm<code class="literal">"Helvetica-BoldOblique.afm"\/&gt;&lt;\/font&gt;
- &lt;\/font-family&gt;
-
- &lt;font-family name</code>"Times" ligatures<code class="literal">"&#64257; &#64258;"&gt;
- &lt;font&gt;&lt;font-data afm</code>"Times-Roman.afm"/&gt;&lt;/font&gt;
- &lt;font style<code class="literal">"italic"&gt;&lt;font-data afm</code>"Times-Italic.afm"/&gt;&lt;/font&gt;
- &lt;font weight<code class="literal">"bold"&gt;&lt;font-data afm</code>"Times-Bold.afm"/&gt;&lt;/font&gt;
- &lt;font weight<code class="literal">"bold" style</code>"italic"&gt;&lt;font-data afm<code class="literal">"Times-BoldItalic.afm"\/&gt;&lt;\/font&gt;
- &lt;\/font-family&gt;
-
- &lt;font-family name</code>"Symbol"&gt;
- &lt;font&gt;&lt;font-data afm<code class="literal">"Symbol.afm"\/&gt;&lt;\/font&gt;
- &lt;\/font-family&gt;
-
- &lt;font-family name</code>"ZapfDingbats"&gt;
- &lt;font&gt;&lt;font-data afm<code class="literal">"ZapfDingbats.afm"\/&gt;&lt;\/font&gt;
- &lt;\/font-family&gt;
- &lt;\/font-group&gt;
-
- &lt;!-- Other Type1 fonts --&gt;
- &lt;font-group label</code>"Assorted Type 1" embed<code class="literal">"true"&gt;
- &lt;font-family name</code>"OmegaSerifIPA"&gt;
- &lt;font&gt;&lt;font-data afm<code class="literal">"IPA.afm" pfa</code>"IPA.pfa" glyph-list<code class="literal">"IPA.glyphs"\/&gt;&lt;\/font&gt;
- &lt;\/font-family&gt;
- &lt;font-alias name</code>"OmegaIPA" value<code class="literal">"OmegaSerifIPA"\/&gt;
- &lt;font-alias name</code>"Phonetic" value<code class="literal">"OmegaSerifIPA"\/&gt;
- &lt;\/font-group&gt;
-
- &lt;!-- Sample configuration for Windows TrueType fonts. --&gt;
-
- &lt;font-group xml:base</code>"file:/C:/Windows/Fonts/" label<code class="literal">"Windows TrueType" embed</code>"true" subset<code class="literal">"true"&gt;
- &lt;font-family name</code>"Arial"&gt;
- &lt;font&gt;&lt;font-data ttf<code class="literal">"arial.ttf"\/&gt;&lt;\/font&gt;
- &lt;font style</code>"oblique"&gt;&lt;font-data ttf<code class="literal">"ariali.ttf"\/&gt;&lt;\/font&gt;
- &lt;font weight</code>"bold"&gt;&lt;font-data ttf<code class="literal">"arialbd.ttf"\/&gt;&lt;\/font&gt;
- &lt;font weight</code>"bold" style<code class="literal">"oblique"&gt;&lt;font-data ttf</code>"arialbi.ttf"/&gt;&lt;/font&gt;
- &lt;/font-family&gt;
-
- &lt;font-family name<code class="literal">"Times New Roman" ligatures</code>"&amp;#xFB01; &amp;#xFB02;"&gt;
- &lt;font&gt;&lt;font-data ttf<code class="literal">"times.ttf"\/&gt;&lt;\/font&gt;
- &lt;font style</code>"italic"&gt;&lt;font-data ttf<code class="literal">"timesi.ttf"\/&gt;&lt;\/font&gt;
- &lt;font weight</code>"bold"&gt;&lt;font-data ttf<code class="literal">"timesbd.ttf"\/&gt;&lt;\/font&gt;
- &lt;font weight</code>"bold" style<code class="literal">"italic"&gt;&lt;font-data ttf</code>"timesbi.ttf"/&gt;&lt;/font&gt;
- &lt;/font-family&gt;
-
- &lt;font-family name<code class="literal">"Courier New"&gt;
- &lt;font&gt;&lt;font-data ttf</code>"cour.ttf"/&gt;&lt;/font&gt;
- &lt;font style<code class="literal">"oblique"&gt;&lt;font-data ttf</code>"couri.ttf"/&gt;&lt;/font&gt;
- &lt;font weight<code class="literal">"bold"&gt;&lt;font-data ttf</code>"courbd.ttf"/&gt;&lt;/font&gt;
- &lt;font weight<code class="literal">"bold" style</code>"oblique"&gt;&lt;font-data ttf<code class="literal">"courbi.ttf"\/&gt;&lt;\/font&gt;
- &lt;\/font-family&gt;
-
- &lt;font-family name</code>"Tahoma" embed<code class="literal">"true"&gt;
- &lt;font&gt;&lt;font-data ttf</code>"tahoma.ttf"/&gt;&lt;/font&gt;
- &lt;font weight<code class="literal">"bold"&gt;&lt;font-data ttf</code>"tahomabd.ttf"/&gt;&lt;/font&gt;
- &lt;/font-family&gt;
-
- &lt;font-family name<code class="literal">"Verdana" embed</code>"true"&gt;
- &lt;font&gt;&lt;font-data ttf<code class="literal">"verdana.ttf"\/&gt;&lt;\/font&gt;
- &lt;font style</code>"oblique"&gt;&lt;font-data ttf<code class="literal">"verdanai.ttf"\/&gt;&lt;\/font&gt;
- &lt;font weight</code>"bold"&gt;&lt;font-data ttf<code class="literal">"verdanab.ttf"\/&gt;&lt;\/font&gt;
- &lt;font weight</code>"bold" style<code class="literal">"oblique"&gt;&lt;font-data ttf</code>"verdanaz.ttf"/&gt;&lt;/font&gt;
- &lt;/font-family&gt;
-
- &lt;font-family name<code class="literal">"Palatino" embed</code>"true" ligatures<code class="literal">"&amp;#xFB00; &amp;#xFB01; &amp;#xFB02; &amp;#xFB03; &amp;#xFB04;"&gt;
- &lt;font&gt;&lt;font-data ttf</code>"pala.ttf"/&gt;&lt;/font&gt;
- &lt;font style<code class="literal">"italic"&gt;&lt;font-data ttf</code>"palai.ttf"/&gt;&lt;/font&gt;
- &lt;font weight<code class="literal">"bold"&gt;&lt;font-data ttf</code>"palab.ttf"/&gt;&lt;/font&gt;
- &lt;font weight<code class="literal">"bold" style</code>"italic"&gt;&lt;font-data ttf<code class="literal">"palabi.ttf"\/&gt;&lt;\/font&gt;
- &lt;\/font-family&gt;
-
- &lt;font-family name</code>"Lucida Sans Unicode"&gt;
- &lt;font&gt;&lt;font-data ttf<code class="literal">"lsansuni.ttf"\/&gt;&lt;\/font&gt;
- &lt;\/font-family&gt;
-
- &lt;\/font-group&gt;
-
- &lt;!-- Required aliases --&gt;
- &lt;font-alias name</code>"monospace" value<code class="literal">"Courier"\/&gt;
- &lt;font-alias name</code>"sans-serif" value<code class="literal">"Helvetica"\/&gt;
- &lt;font-alias name</code>"serif" value<code class="literal">"Times"\/&gt;
- &lt;font-alias name</code>"cursive" value<code class="literal">"Times"\/&gt;
- &lt;font-alias name</code>"fantasy" value<code class="literal">"Times"\/&gt;
- &lt;\/fonts&gt;
-
- &lt;!-- =</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">= --&gt;
- &lt;!-- Language-specific data: hyphenation, line breaking, etc --&gt;
- &lt;!-- =</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">= --&gt;
- &lt;languages default-language</code>"en-US" xml:base<code class="literal">"hyphen\/"&gt;
-
- &lt;language name</code>"English (US)" codes<code class="literal">"none en-US eng-US"&gt;
- &lt;hyphenation pattern</code>"hyphen.tex"/&gt;
- &lt;/language&gt;
-
- &lt;language name<code class="literal">"English (UK)" codes</code>"en-GB eng-GB en eng"&gt;
- &lt;hyphenation pattern<code class="literal">"ukhyphen.tex"\/&gt;
- &lt;\/language&gt;
-
- &lt;language name</code>"Russian" codes<code class="literal">"ru rus"&gt;
- &lt;hyphenation pattern</code>"ruhyphal.tex" encoding<code class="literal">"koi8-r"\/&gt;
- &lt;\/language&gt;
-
- &lt;language name</code>"French" codes<code class="literal">"fr fra fre"&gt;
- &lt;hyphenation pattern</code>"frhyph_rx.tex"/&gt;
- &lt;/language&gt;
-
- &lt;language name<code class="literal">"German" codes</code>"de deu ger"&gt;
- &lt;hyphenation pattern<code class="literal">"dehyph_rx.tex"\/&gt;
- &lt;\/language&gt;
-
- &lt;language name</code>"Spanish" codes<code class="literal">"es esl spa"&gt;
- &lt;hyphenation pattern</code>"eshyph_rx.tex"/&gt;
- &lt;/language&gt;
-
- &lt;language name<code class="literal">"Polish" codes</code>"pl pol"&gt;
- &lt;hyphenation pattern="plhyph_rx.tex"/&gt;
- &lt;/language&gt;
-
- &lt;/languages&gt;
-
-&lt;/config&gt;
-</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 &#946; that gives: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">beta_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</span><span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">beta</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">probability</span></code>.
           </p>
 <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, +&#8734;].
           </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, +&#8734;].
           </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 [-&#8734;, +&#8734;].
           </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, +&#8734;].
           </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,+&#8734;].
           </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,+&#8734;].
           </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">&lt;=</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 -&#8734; = 1 and +&#8734; = 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, &#8734;].
           </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, &#8734;].
           </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 [-&#8734;, +&#8734;].
           </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 &lt;= x &lt;= 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> &lt;= x &lt;= <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, &#8734;].
           </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 &lt;boost/math/distributions.hpp&gt;
         </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">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
- <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span> <span class="comment">// Probability of students_t(df, t).
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span> <span class="comment">// Probability of students_t(df, t).
 </span>
 <span class="comment">// std
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">stdexcept</span><span class="special">&gt;</span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">;</span></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">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
- <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span> <span class="comment">// Probability of students_t(df, t).
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span> <span class="comment">// Probability of students_t(df, t).
 </span>
 <span class="comment">// std
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">stdexcept</span><span class="special">&gt;</span>
- <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">;</span></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">&amp;);</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">&amp;);</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">&amp;);</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 &#915;(x)/&#915;(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
===========