aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/docs
diff options
context:
space:
mode:
authorAmi Tavory <atavory@gmail.com>2006-06-14 23:09:51 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2006-06-14 23:09:51 +0000
commit4569a895f52a80e8c7adf16c2032cb87d91b6ea1 (patch)
tree8013909fe1a8f6c26c3e7259bff7067893c991e7 /libstdc++-v3/docs
parentdecebe515433c392f5bf34105a538a5ee88c8640 (diff)
downloadgcc-4569a895f52a80e8c7adf16c2032cb87d91b6ea1.zip
gcc-4569a895f52a80e8c7adf16c2032cb87d91b6ea1.tar.gz
gcc-4569a895f52a80e8c7adf16c2032cb87d91b6ea1.tar.bz2
pb_assoc: Delete.
2006-06-14 Ami Tavory <atavory@gmail.com> Benjamin Kosnik <bkoz@redhat.com> * include/ext/pb_assoc: Delete. * include/ext/pb_ds: Add. * docs/html/ext/pb_assoc: Delete. * docs/html/ext/pb_ds: Add. * testsuite/ext/pb_assoc: Delete. * testsuite/ext/pb_ds: Add. * testsuite/performance/ext: Add. * testsuite/performance/ext/pb_ds: Add. * testsuite/util/regression: New. * testsuite/util/rng: New. * testsuite/util/native_type: New. * testsuite/util/common_type: New. * testsuite/util/performance: New. * testsuite/util/hash_fn: New. * testsuite/util/io: New. * testsuite/util/statistic: New. * scripts/make_graph.py: New. * scripts/make_graphs.py: New. * testsuite/data/thirty_years_among_the_dead_preproc.txt: Add. * testsuite/data/make_graph_htmls.xml: Add. * testsuite/data/make_graph_test_infos.xml: Add. * testsuite/lib/libstdc++.exp (v3-build_support): Add in new object files for regression testing. * docs/html/documentation.html: Adjust links. * include/Makefile.am (install-headers): Update for new sources, directories. * include/Makefine.in: Regenerate. * scripts/testsuite_flags.in: Adjust to testsuite/util path. * scripts/check_performance: Simplify, adjust for new testsuite output. * testsuite/Makefile.am (check-performance): Adjust. (doc-performance): New. * testsuite/Makefile.in: Regenerate. * include/ext/pb_ds: New. * include/ext/pb_ds/assoc_container.hpp: Same. * include/ext/pb_ds/detail: New. * include/ext/pb_ds/detail/binomial_heap_base_: New. * include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/resize_policy: New. * include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp: Same. * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp: Same. * include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp: Same. * include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp: Same. * include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp: Same. * include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp: Same. * include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp: Same. * include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp: Same. * include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp: Same. * include/ext/pb_ds/detail/container_base_dispatch.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_: New. * include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/typelist_assoc_container.hpp: Same. * include/ext/pb_ds/detail/tree_trace_base.hpp: Same. * include/ext/pb_ds/detail/unordered_iterator: New. * include/ext/pb_ds/detail/unordered_iterator/iterator.hpp: Same. * include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp: Same. * include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp: Same. * include/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp: Same. * include/ext/pb_ds/detail/typelist.hpp: Same. * include/ext/pb_ds/detail/pat_trie_: New. * include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/child_iterator.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/head.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/traits.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/leaf.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/node_base.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/node_iterators.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/internal_node.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/point_iterators.hpp: Same. * include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_: New. * include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_: New. * include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp: Same. * include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp: Same. * include/ext/pb_ds/detail/standard_policies.hpp: Same. * include/ext/pb_ds/detail/typelist: New. * include/ext/pb_ds/detail/typelist/typelist_flatten.hpp: Same. * include/ext/pb_ds/detail/typelist/typelist_contains.hpp: Same. * include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp: Same. * include/ext/pb_ds/detail/typelist/typelist_apply.hpp: Same. * include/ext/pb_ds/detail/typelist/typelist_filter.hpp: Same. * include/ext/pb_ds/detail/typelist/typelist_append.hpp: Same. * include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp: Same. * include/ext/pb_ds/detail/typelist/typelist_transform.hpp: Same. * include/ext/pb_ds/detail/typelist/typelist_at_index.hpp: Same. * include/ext/pb_ds/detail/tree_policy: New. * include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp: Same. * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Same. * include/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp: Same. * include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp: Same. * include/ext/pb_ds/detail/basic_tree_policy: New. * include/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp: Same. * include/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp: Same. * include/ext/pb_ds/detail/basic_tree_policy/traits.hpp: Same. * include/ext/pb_ds/detail/types_traits.hpp: Same. * include/ext/pb_ds/detail/binary_heap_: New. * include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/trie_policy: New. * include/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp: Same. * include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp: Same. * include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp: Same. * include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp: Same. * include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp: Same. * include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp: Same. * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Same. * include/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp: Same. * include/ext/pb_ds/detail/cond_dealtor.hpp: Same. * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_: Name. * include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp: Same. * include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_: New. * include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp: Same. * include/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/type_utils.hpp: Same. * include/ext/pb_ds/detail/eq_fn: New. * include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp: Same. * include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp: Same. * include/ext/pb_ds/detail/basic_types.hpp: Same. * include/ext/pb_ds/detail/list_update_policy: New. * include/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp: Same. * include/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp: Same. * include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp: Same. * include/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp: Same. * include/ext/pb_ds/detail/thin_heap_: New. * include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_: New. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_: New. * include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/traits.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/map_debug_base.hpp: Same. * include/ext/pb_ds/detail/hash_fn: New. * include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp: Same. * include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp: Same. * include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp: Same. * include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp: Same. * include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp: Same. * include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp: Same. * include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp: Same. * include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp: Same. * include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp: Same. * include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp: Same. * include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp: Same. * include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp: Same. * include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp: Same. * include/ext/pb_ds/detail/splay_tree_: New. * include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/node.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/traits.hpp: Same. * include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_: New. * include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp: Same. * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_: New. * include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp: Same. * include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_: New. * include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/node.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/traits.hpp: Same. * include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp: Same. * include/ext/pb_ds/list_update_policy.hpp: Same. * include/ext/pb_ds/exception.hpp: Same. * include/ext/pb_ds/tree_policy.hpp: Same. * include/ext/pb_ds/tag_and_trait.hpp: Same. * include/ext/pb_ds/hash_policy.hpp: Same. * include/ext/pb_ds/trie_policy.hpp: Same. * include/ext/pb_ds/priority_queue.hpp: Same. * docs/html/ext/pb_ds: New. * docs/html/ext/pb_ds/container_tag.html: Same. * docs/html/ext/pb_ds/trivial_iterator_tag.html: Same. * docs/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png * docs/html/ext/pb_ds/sample_trie_e_access_traits.html: Same. * docs/html/ext/pb_ds/gp_hash_table.html: Same. * docs/html/ext/pb_ds/priority_queue_tag_cd.svg * docs/html/ext/pb_ds/container_cd.svg * docs/html/ext/pb_ds/linear_probe_fn.html: Same. * docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png * docs/html/ext/pb_ds/quadratic_probe_fn.html: Same. * docs/html/ext/pb_ds/assoc_regression_tests.html: Same. * docs/html/ext/pb_ds/tree_tag.html: Same. * docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html: Same. * docs/html/ext/pb_ds/interface.html: Same. * docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png * docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html: Same. * docs/html/ext/pb_ds/lu_based_containers.html: Same. * docs/html/ext/pb_ds/embedded_lists_3.png * docs/html/ext/pb_ds/tree_text_find_find_timing_test.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png * docs/html/ext/pb_ds/assoc_performance_tests.html: Same. * docs/html/ext/pb_ds/list_update.html: Same. * docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png * docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png * docs/html/ext/pb_ds/point_iterators_range_ops_1.png * docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.png * docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png * docs/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.png * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png * docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png * docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png * docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html: Same. * docs/html/ext/pb_ds/move_to_front_lu_policy.html: Same. * docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png * docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html: Same. * docs/html/ext/pb_ds/string_trie_e_access_traits.html: Same. * docs/html/ext/pb_ds/prerequisites.html: Same. * docs/html/ext/pb_ds/gp_hash_tag.html: Same. * docs/html/ext/pb_ds/priority_queue_tag_cd.png * docs/html/ext/pb_ds/container_cd.png * docs/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png * docs/html/ext/pb_ds/container_base.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png * docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html: Same. * docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.png * docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png * docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png * docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png * docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png * docs/html/ext/pb_ds/text_find_timing_test_hash_local.png * docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png * docs/html/ext/pb_ds/ov_tree_tag.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png * docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.png * docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.png * docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png * docs/html/ext/pb_ds/list_update_tag.html: Same. * docs/html/ext/pb_ds/balls_and_bins.png * docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png * docs/html/ext/pb_ds/disclaimer.html: Same. * docs/html/ext/pb_ds/insert_error.html: Same. * docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png * docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png * docs/html/ext/pb_ds/examples.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html: Same. * docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png * docs/html/ext/pb_ds/sample_probe_fn.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png * docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html: Same. * docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png * docs/html/ext/pb_ds/null_mapped_type.html: Same. * docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png * docs/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png * docs/html/ext/pb_ds/associative_container_tag.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png * docs/html/ext/pb_ds/design.html: Same. * docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html: Same. * docs/html/ext/pb_ds/pairing_heap_tag.html: Same. * docs/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png * docs/html/ext/pb_ds/references.html: Same. * docs/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png * docs/html/ext/pb_ds/hash_load_check_resize_trigger.html: Same. * docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png * docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png * docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png * docs/html/ext/pb_ds/pq_different_underlying_dss.png * docs/html/ext/pb_ds/insert_resize_sequence_diagram1.png * docs/html/ext/pb_ds/pq_regression_tests.html: Same. * docs/html/ext/pb_ds/sample_tree_node_update.html: Same. * docs/html/ext/pb_ds/invalidation_guarantee_erase.png * docs/html/ext/pb_ds/basic_invalidation_guarantee.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png * docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png * docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png * docs/html/ext/pb_ds/point_iterators_range_ops_2.png * docs/html/ext/pb_ds/null_probe_fn.html: Same. * docs/html/ext/pb_ds/hash_prime_size_policy.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png * docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png * docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png * docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png * docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html: Same. * docs/html/ext/pb_ds/sample_resize_policy.html: Same. * docs/html/ext/pb_ds/binomial_heap_tag.html: Same. * docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png * docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png * docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html: Same. * docs/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png * docs/html/ext/pb_ds/trie_based_containers.html: Same. * docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png * docs/html/ext/pb_ds/tree_split_join_timing_test_local.png * docs/html/ext/pb_ds/text_find_timing_test_hash_gcc.png * docs/html/ext/pb_ds/motivation.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png * docs/html/ext/pb_ds/tree_split_join_timing_test_gcc.png * docs/html/ext/pb_ds/tree.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png * docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png * docs/html/ext/pb_ds/invalidation_guarantee_cd.png * docs/html/ext/pb_ds/tutorial.html: Same. * docs/html/ext/pb_ds/null_trie_node_update.html: Same. * docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png * docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.png * docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png * docs/html/ext/pb_ds/point_iterators_cd.png * docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png * docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png * docs/html/ext/pb_ds/rb_tree_tag.html: Same. * docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png * docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.png * docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.png * docs/html/ext/pb_ds/exceptions.html: Same. * docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png * docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png * docs/html/ext/pb_ds/hash_policy_cd.png * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html: Same. * docs/html/ext/pb_ds/ds_gen.html: Same. * docs/html/ext/pb_ds/hash_exponential_size_policy.html: Same. * docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png * docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png * docs/html/ext/pb_ds/index.html: Same. * docs/html/ext/pb_ds/binary_heap_tag.html: Same. * docs/html/ext/pb_ds/basic_hash_tag.html: Same. * docs/html/ext/pb_ds/trie_order_statistics_node_update.html: Same. * docs/html/ext/pb_ds/sample_resize_trigger.html: Same. * docs/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png * docs/html/ext/pb_ds/hash_text_find_find_timing_test.html: Same. * docs/html/ext/pb_ds/tree_text_insert_timing_test.html: Same. * docs/html/ext/pb_ds/trie_tag.html: Same. * docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png * docs/html/ext/pb_ds/pq_tests.html: Same. * docs/html/ext/pb_ds/insert_resize_sequence_diagram2.png * docs/html/ext/pb_ds/node_invariant_invalidations.png * docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.png * docs/html/ext/pb_ds/resize_policy_cd.png * docs/html/ext/pb_ds/embedded_lists_1.png * docs/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png * docs/html/ext/pb_ds/null_lu_metadata.html: Same. * docs/html/ext/pb_ds/tree_order_statistics_timing_test.html: Same. * docs/html/ext/pb_ds/trie_prefix_search_node_update.html: Same. * docs/html/ext/pb_ds/hash_range_hashing_seq_diagram.png * docs/html/ext/pb_ds/point_invalidation_guarantee.html: Same. * docs/html/ext/pb_ds/direct_mod_range_hashing.html: Same. * docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png * docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.png * docs/html/ext/pb_ds/misc.html: Same. * docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png * docs/html/ext/pb_ds/counter_lu_policy.html: Same. * docs/html/ext/pb_ds/different_underlying_dss.png * docs/html/ext/pb_ds/restoring_node_invariants.png * docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html: Same. * docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png * docs/html/ext/pb_ds/sample_update_policy.html: Same. * docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png * docs/html/ext/pb_ds/tree_order_statistics_timing_test_local.png * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png * docs/html/ext/pb_ds/simple_list.png * docs/html/ext/pb_ds/text_find_timing_test_hash_msvc.png * docs/html/ext/pb_ds/assoc_examples.html: Same. * docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png * docs/html/ext/pb_ds/hash_based_containers.html: Same. * docs/html/ext/pb_ds/text_find_timing_test_tree_like_local.png * docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png * docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.png * docs/html/ext/pb_ds/tree_node_iterator.html: Same. * docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png * docs/html/ext/pb_ds/trie_node_iterator.html: Same. * docs/html/ext/pb_ds/tree_based_containers.html: Same. * docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png * docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png * docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png * docs/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png * docs/html/ext/pb_ds/rationale_null_node_updator.png * docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png * docs/html/ext/pb_ds/lu.png * docs/html/ext/pb_ds/assoc_container_traits.html: Same. * docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.png * docs/html/ext/pb_ds/assoc_design.html: Same. * docs/html/ext/pb_ds/splay_tree_tag.html: Same. * docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.png * docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html: Same. * docs/html/ext/pb_ds/assoc_container_tag_cd.svg * docs/html/ext/pb_ds/resize_error.html: Same. * docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png * docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png * docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html: Same. * docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html: Same. * docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png * docs/html/ext/pb_ds/trie_const_node_iterator.html: Same. * docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html: Same. * docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png * docs/html/ext/pb_ds/sample_size_policy.html: Same. * docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.png * docs/html/ext/pb_ds/cc_hash_table.html: Same. * docs/html/ext/pb_ds/node_invariants.png * docs/html/ext/pb_ds/tree_split_join_timing_test_msvc.png * docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html: Same. * docs/html/ext/pb_ds/tree_order_statistics_node_update.html: Same. * docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png * docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png * docs/html/ext/pb_ds/priority_queue.html: Same. * docs/html/ext/pb_ds/assoc_tests.html: Same. * docs/html/ext/pb_ds/assoc_container_tag_cd.png * docs/html/ext/pb_ds/basic_hash_table.html: Same. * docs/html/ext/pb_ds/basic_tree_tag.html: Same. * docs/html/ext/pb_ds/tree_split_join_timing_test.html: Same. * docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png * docs/html/ext/pb_ds/insert_resize_sequence_diagram3.png * docs/html/ext/pb_ds/embedded_lists_2.png * docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png * docs/html/ext/pb_ds/sample_ranged_probe_fn.html: Same. * docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png * docs/html/ext/pb_ds/sample_trie_node_update.html: Same. * docs/html/ext/pb_ds/introduction.html: Same. * docs/html/ext/pb_ds/pq_performance_tests.html: Same. * docs/html/ext/pb_ds/pat_trie.png * docs/html/ext/pb_ds/range_invalidation_guarantee.html: Same. * docs/html/ext/pb_ds/contact.html: Same. * docs/html/ext/pb_ds/sample_range_hashing.html: Same. * docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png * docs/html/ext/pb_ds/update_seq_diagram.png * docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.png * docs/html/ext/pb_ds/direct_mask_range_hashing.html: Same. * docs/html/ext/pb_ds/tests.html: Same. * docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png * docs/html/ext/pb_ds/tree_node_updator_policy_cd.png * docs/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.png * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html: Same. * docs/html/ext/pb_ds/trie_node_updator_policy_cd.png * docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png * docs/html/ext/pb_ds/concepts.html: Same. * docs/html/ext/pb_ds/pq_examples.html: Same. * docs/html/ext/pb_ds/priority_queue_tag.html: Same. * docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html: Same. * docs/html/ext/pb_ds/update_policy_cd.png * docs/html/ext/pb_ds/thin_heap_tag.html: Same. * docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png * docs/html/ext/pb_ds/basic_tree.html: Same. * docs/html/ext/pb_ds/null_hash_fn.html: Same. * docs/html/ext/pb_ds/null_tree_node_update.html: Same. * docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png * docs/html/ext/pb_ds/trie.html: Same. * docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png * docs/html/ext/pb_ds/rc_binomial_heap_tag.html: Same. * docs/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png * docs/html/ext/pb_ds/pq_container_traits.html: Same. * docs/html/ext/pb_ds/pq_design.html: Same. * docs/html/ext/pb_ds/checked_by_tidy.gif * docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png * docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png * docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html: Same. * docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.png * docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png * docs/html/ext/pb_ds/acks.html: Same. * docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png * docs/html/ext/pb_ds/cc_hash_tag.html: Same. * docs/html/ext/pb_ds/sample_ranged_hash_fn.html: Same. * docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png * docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html: Same. * docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html: Same. * docs/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.png * docs/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png * docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png * docs/html/ext/pb_ds/PythonPoweredSmall.gif * docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png * docs/html/ext/pb_ds/pat_trie_tag.html: Same. * docs/html/ext/pb_ds/hash_standard_resize_policy.html: Same. * docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png * docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png * docs/html/ext/pb_ds/join_error.html: Same. * docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png * docs/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png * testsuite/ext/pb_ds: New. * testsuite/ext/pb_ds/regression: New. * testsuite/ext/pb_ds/regression/trie_data_map_rand.cc: Same. * testsuite/ext/pb_ds/regression/hash_data_map_rand.cc: Same. * testsuite/ext/pb_ds/regression/associative_containers.cc: Same. * testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc: Same. * testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc: Same. * testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc: Same. * testsuite/ext/pb_ds/regression/priority_queues.cc: Same. * testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc: Same. * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Same. * testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc: Same. * testsuite/ext/pb_ds/regression/tree_data_map_rand.cc: Same. * testsuite/ext/pb_ds/example: New. * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Same. * testsuite/ext/pb_ds/example/basic_set.cc: Same. * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Same. * testsuite/ext/pb_ds/example/hash_resize_neg.cc: Same. * testsuite/ext/pb_ds/example/store_hash.cc: Same. * testsuite/ext/pb_ds/example/assoc_container_traits.cc: Same. * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Same. * testsuite/ext/pb_ds/example/ranged_hash.cc: Same. * testsuite/ext/pb_ds/example/hash_resize.cc: Same. * testsuite/ext/pb_ds/example/tree_order_statistics.cc: Same. * testsuite/ext/pb_ds/example/trie_prefix_search.cc: Same. * testsuite/ext/pb_ds/example/basic_multiset.cc: Same. * testsuite/ext/pb_ds/example/priority_queue_xref.cc: Same. * testsuite/ext/pb_ds/example/hash_find_neg.cc: Same. * testsuite/ext/pb_ds/example/erase_if.cc: Same. * testsuite/ext/pb_ds/example/priority_queue_container_traits.cc: Same. * testsuite/ext/pb_ds/example/tree_join.cc: Same. * testsuite/ext/pb_ds/example/basic_map.cc: Same. * testsuite/ext/pb_ds/example/trie_split.cc: Same. * testsuite/ext/pb_ds/example/priority_queue_split_join.cc: Same. * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc: Same. * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc: Same. * testsuite/ext/pb_ds/example/hash_mod.cc: Same. * testsuite/ext/pb_ds/example/tree_order_statistics_join.cc: Same. * testsuite/ext/pb_ds/example/trie_dna.cc: Same. * testsuite/ext/pb_ds/example/hash_initial_size.cc: Same. * testsuite/ext/pb_ds/example/basic_priority_queue.cc: Same. * testsuite/ext/pb_ds/example/tree_intervals.cc: Same. * testsuite/ext/pb_ds/example/basic_multimap.cc: Same. * testsuite/performance/ext: New. * testsuite/performance/ext/pb_ds: New. * testsuite/performance/ext/pb_ds/multimap_text_find_timing_small.cc: Same. * testsuite/performance/ext/pb_ds/text_find_timing.cc: Same. * testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc: Same. * testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc: Same. * testsuite/performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc: Same. * testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc: Same. * testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc: Same. * testsuite/performance/ext/pb_ds/tree_split_join_timing.cc: Same. * testsuite/performance/ext/pb_ds/random_int_find_timing.cc: Same. * testsuite/performance/ext/pb_ds/multimap_text_insert_timing_large.cc: Same. * testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp: Same. * testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc: Same. * testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp: Same. * testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp: Same. * testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc: Same. * testsuite/performance/ext/pb_ds/priority_queue_text_modify_up_timing.cc: Same. * testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc: Same. * testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc: Same. * testsuite/performance/ext/pb_ds/multimap_text_find_timing_large.cc: Same. * testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc: Same. * testsuite/performance/ext/pb_ds/multimap_text_insert_timing_small.cc: Same. * testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc: Same. * testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc: Same. * testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc: Same. * testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc: Same. * testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp: Same. * testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc: Same. * testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc: Same. * testsuite/data/make_graph_test_infos.xml: Same. * testsuite/data/thirty_years_among_the_dead_preproc.txt: New. * testsuite/data/make_graph_htmls.xml: Same. * testsuite/util/regression: New. * testsuite/util/regression/trait: New. * testsuite/util/regression/trait/priority_queue: New. * testsuite/util/regression/trait/priority_queue/trait.hpp: Same. * testsuite/util/regression/trait/erase_if_fn.hpp: Same. * testsuite/util/regression/trait/assoc: New. * testsuite/util/regression/trait/assoc/native_type_trait.hpp: Same. * testsuite/util/regression/trait/assoc/node_update_trait.hpp: Same. * testsuite/util/regression/trait/assoc/get_set_load_trait.hpp: Same. * testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp: Same. * testsuite/util/regression/trait/assoc/trait.hpp: Same. * testsuite/util/regression/trait/assoc/type_trait.hpp: Same. * testsuite/util/regression/trait/assoc/resize_trait.hpp: Same. * testsuite/util/regression/trait/assoc/to_string.hpp: Same. * testsuite/util/regression/rand: New. * testsuite/util/regression/rand/priority_queue: New. * testsuite/util/regression/rand/priority_queue/detail: New. * testsuite/util/regression/rand/priority_queue/detail/erase_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/cmp_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/policy_access_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/defs_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/it_conversion_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/constructor_destructor_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/diagnostic_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/insert_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/clear_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/modify_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/split_join_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/detail/operator_fn_imps.hpp: Same. * testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp: Same. * testsuite/util/regression/rand/priority_queue/container_rand_regression_test.hpp: Same. * testsuite/util/regression/rand/io: New. * testsuite/util/regression/rand/io/priority_queue: New. * testsuite/util/regression/rand/io/priority_queue/xml_formatter.hpp: Same. * testsuite/util/regression/rand/io/assoc: New. * testsuite/util/regression/rand/io/assoc/xml_formatter.hpp: Same. * testsuite/util/regression/rand/io/xml_formatter.hpp: Same. * testsuite/util/regression/rand/assoc: New. * testsuite/util/regression/rand/assoc/detail: New. * testsuite/util/regression/rand/assoc/detail/subscript_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/cmp_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/policy_access_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/defs_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/it_conversion_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/diagnostic_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/clear_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/get_set_load_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/operator_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/erase_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/resize_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/constructor_destructor_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/insert_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/split_join_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/detail/get_set_loads_fn_imps.hpp: Same. * testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Same. * testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp: Same. * testsuite/util/regression/priority_queue: New. * testsuite/util/regression/priority_queue/common_type.hpp: Same. * testsuite/util/regression/basic_type.hpp: Same. * testsuite/util/regression/assoc: New. * testsuite/util/regression/assoc/common_type.hpp: Same. * testsuite/util/regression/res_mng: New. * testsuite/util/regression/res_mng/forced_exception.hpp: Same. * testsuite/util/regression/res_mng/dbg_ex_allocator_base.cc: Same. * testsuite/util/regression/res_mng/dbg_ex_allocator_base.hpp: Same. * testsuite/util/regression/res_mng/dbg_ex_allocator.hpp: Same. * testsuite/util/rng: New. * testsuite/util/rng/twister_rand_gen.cc: Same. * testsuite/util/rng/twister_rand_gen.hpp: Same. * testsuite/util/native_type: New. * testsuite/util/native_type/priority_queue: New. * testsuite/util/native_type/priority_queue/native_priority_queue.hpp: Same. * testsuite/util/native_type/priority_queue/native_pq_tag.hpp: Same. * testsuite/util/native_type/assoc: New. * testsuite/util/native_type/assoc/native_multimap.hpp: Same. * testsuite/util/native_type/assoc/native_tree_tag.hpp: Same. * testsuite/util/native_type/assoc/native_set.hpp: Same. * testsuite/util/native_type/assoc/native_hash_multimap.hpp: Same. * testsuite/util/native_type/assoc/native_map.hpp: Same. * testsuite/util/native_type/assoc/native_hash_tag.hpp: Same. * testsuite/util/native_type/assoc/native_hash_set.hpp: Same. * testsuite/util/native_type/assoc/native_hash_map.hpp: Same. * testsuite/util/common_type: New. * testsuite/util/common_type/priority_queue * testsuite/util/common_type/priority_queue/common_type.hpp: Same. * testsuite/util/common_type/priority_queue/string_form.hpp: Same. * testsuite/util/common_type/priority_queue/detail * testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp: Same. * testsuite/util/common_type/assoc: New. * testsuite/util/common_type/assoc/common_type.hpp: Same. * testsuite/util/common_type/assoc/string_form.hpp: Same. * testsuite/util/common_type/assoc/template_policy.hpp: Same. * testsuite/util/common_type/assoc/detail: New. * testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/ds_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp: Same. * testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp: Same. * testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp: Same. * testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp: Same. * testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp: Same. * testsuite/util/common_type/assoc/native_set.hpp: Same. * testsuite/util/performance: New. * testsuite/util/performance/priority_queue: New. * testsuite/util/performance/priority_queue/mem_usage: New. * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp: Same. * testsuite/util/performance/priority_queue/timing: New. * testsuite/util/performance/priority_queue/timing/push_pop_test.hpp: Same. * testsuite/util/performance/priority_queue/timing/push_test.hpp: Same. * testsuite/util/performance/priority_queue/timing/join_test.hpp: Same. * testsuite/util/performance/priority_queue/timing/modify_test.hpp: Same. * testsuite/util/performance/io: New. * testsuite/util/performance/io/xml_formatter.hpp: Same. * testsuite/util/performance/assoc: New. * testsuite/util/performance/assoc/mem_usage: New. * testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp: Same. * testsuite/util/performance/assoc/mem_usage/erase_test.hpp: Same. * testsuite/util/performance/assoc/multimap_common_type.hpp: Same. * testsuite/util/performance/assoc/timing: New. * testsuite/util/performance/assoc/timing/common_type.hpp: Same. * testsuite/util/performance/assoc/timing/multimap_insert_test.hpp: Same. * testsuite/util/performance/assoc/timing/subscript_find_test.hpp: Same. * testsuite/util/performance/assoc/timing/find_test.hpp: Same. * testsuite/util/performance/assoc/timing/subscript_insert_test.hpp: Same. * testsuite/util/performance/assoc/timing/insert_test.hpp: Same. * testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp: Same. * testsuite/util/performance/assoc/timing/multimap_find_test.hpp: Same. * testsuite/util/performance/assoc/timing/tree_split_join_test.hpp: Same. * testsuite/util/performance/time: New. * testsuite/util/performance/time/elapsed_timer.cc: Same. * testsuite/util/performance/time/elapsed_timer.hpp: Same. * testsuite/util/performance/time/timing_test_base.hpp: Same. * testsuite/util/performance/mem: New. * testsuite/util/performance/mem/mem_track_allocator_base.hpp: Same. * testsuite/util/performance/mem/mem_track_allocator.hpp: Same. * testsuite/util/hash_fn: New. * testsuite/util/hash_fn/limit_string_hash_fn.hpp: Same. * testsuite/util/hash_fn/string_ranged_hash_fn.hpp: Same. * testsuite/util/hash_fn/string_hash_fn.hpp: Same. * testsuite/util/hash_fn/string_ranged_probe_fn.hpp: Same. * testsuite/util/hash_fn/dna_str_limit.hpp: Same. * testsuite/util/io: New. * testsuite/util/io/prog_bar.cc: Same. * testsuite/util/io/prog_bar.hpp: Same. * testsuite/util/io/text_populate.hpp: Same. * testsuite/util/io/xml.hpp: Same. * testsuite/util/io/illegal_input_error.hpp: Same. * testsuite/util/io/xml_test_formatter.hpp: Same. * testsuite/util/io/verified_cmd_line_input.cc: Same. * testsuite/util/io/verified_cmd_line_input.hpp: Same. * testsuite/util/statistic: New. * testsuite/util/statistic/sample_var.hpp: Same. * testsuite/util/statistic/res_recorder.hpp: Same. * testsuite/util/statistic/sample_mean.hpp: Same. * testsuite/util/statistic/sample_mean_confidence_checker.hpp: Same. Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com> From-SVN: r114659
Diffstat (limited to 'libstdc++-v3/docs')
-rw-r--r--libstdc++-v3/docs/html/documentation.html2
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/Std_hash_set_impl.jpgbin51488 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/acks.html46
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/balls_and_bins.jpgbin18512 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr.html1229
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_compound_data.html1244
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_no_data.html1046
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_ds_tag.html41
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_assoc_cntnr.html609
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_ds_tag.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_invalidation_guarantee.html41
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_ms_tag.html41
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr.html940
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_const_node_iterator.html488
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_node_iterator.html250
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev.html771
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev_it.html771
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_ds_tag.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_assoc_cntnr.html679
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_ds_tag.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_max_collision_check_resize_trigger.html701
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_policy_cd.jpgbin27118 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/cd.jpgbin58234 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/component_requirements.html51
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/compound_data_enabled_ms_tag.html41
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/compound_data_type.html128
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/compound_ds_tag.html77
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/concepts.html124
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/contact.html19
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/counter_update_metadata.html101
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/counter_update_policy.html380
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/data_enabled_ms_tag.html41
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/design.html23
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/different_underlying_dss.jpgbin34944 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/direct_mask_range_hashing.html251
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/direct_mod_range_hashing.html228
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/disclaimer.html25
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/ds_gen.html368
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/ds_tag_cd.jpgbin54661 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/ds_traits.html41
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_1.jpgbin24191 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_2.jpgbin23766 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/examples.html185
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html31
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/find_invalidation_guarantee.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_cd.jpgbin48752 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_1.jpgbin18521 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_2.jpgbin25683 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/generics.html25
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_assoc_cntnr.html816
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_ds_tag.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_policy_cd.jpgbin39817 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_and_probe_general.html45
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_based_containers.html1056
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_cd.jpgbin54780 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_exponential_size_policy.html267
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_fn.html25
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_load_check_resize_trigger.html744
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_policies.html375
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_policy_cd.jpgbin59739 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_prime_size_policy.html211
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram.jpgbin30271 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram2.jpgbin20756 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_ranged_hash_range_hashing_fns.jpgbin35579 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/hash_standard_resize_policy.html986
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/home.html56
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/index.html12
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram1.jpgbin66060 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram2.jpgbin43557 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram3.jpgbin39549 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/insert_type_methods.html42
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/interface.html342
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/interval_node_invariants.jpgbin31555 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/introduction.html31
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_cd.jpgbin23162 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_erase.jpgbin56109 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/lib_download.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/linear_probe_fn.html238
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/list_updates.html138
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/lu_assoc_cntnr.html570
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/lu_based_containers.html225
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/lu_cd.jpgbin60906 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/lu_ds_tag.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/lu_ops.jpgbin36112 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/mmap_value_utils.html128
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/motivation.html281
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_metadata.html41
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_policy.html256
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/ms_cd.jpgbin61973 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/ms_gen.html440
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/ms_tag_cd.jpgbin21009 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/ms_traits.html131
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/node_invariant_invalidations.jpgbin43521 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.html154
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.jpgbin32622 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping.html404
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping_containers.jpgbin19257 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/null_data_type.html41
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/null_hash_fn.html44
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/null_probe_fn.html44
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/order_by_key.html254
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key.html373
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key_cmp.html422
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_node_updator.html278
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/ov_tree_ds_tag.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/overview.html139
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/pb_assoc_ex.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/portability.html26
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/quadratic_probe_fn.html238
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/range_invalidation_guarantee.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/rank_node_invariants.jpgbin28798 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/rationale_null_node_updator.jpgbin27057 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/rb_tree_ds_tag.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/reference_iterator.jpgbin32467 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/references.html94
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/regression_tests.html25
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/resize_general.html28
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/resize_policies.html487
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/resize_policy_cd.jpgbin58948 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/restoring_node_invariants.jpgbin26335 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_node_updator.hpp116
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.hpp121
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.html177
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.hpp147
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.html213
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.hpp141
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.html129
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.hpp143
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.html129
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.hpp310
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.html536
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_trigger.hpp341
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_size_policy.hpp140
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/sample_update_policy.hpp171
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/size_policies_general.html22
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/splay_tree_ds_tag.html74
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/timing_tests.html60
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/toc.html35
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr.html493
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_const_node_iterator.html488
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_node_iterator.html250
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/tree_based_containers.html246
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/tree_cd.jpgbin60672 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/trigger_policies_general.html23
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/tutorial.html66
-rw-r--r--libstdc++-v3/docs/html/ext/pb_assoc/update_seq_diagram.jpgbin23396 -> 0 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/PythonPoweredSmall.gifbin0 -> 361 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/acks.html65
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.pngbin0 -> 21668 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.svg491
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/assoc_container_traits.html170
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/assoc_design.html46
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/assoc_examples.html174
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/assoc_performance_tests.html345
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/assoc_regression_tests.html96
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/assoc_tests.html24
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/associative_container_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/balls_and_bins.pngbin0 -> 10139 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/basic_hash_table.html436
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/basic_hash_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/basic_invalidation_guarantee.html26
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/basic_tree.html660
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html383
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/basic_tree_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/binary_heap_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.pngbin0 -> 5357 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.pngbin0 -> 6710 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.pngbin0 -> 5373 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/binomial_heap_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html532
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.pngbin0 -> 7074 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.pngbin0 -> 8534 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.pngbin0 -> 7235 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.pngbin0 -> 6811 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.pngbin0 -> 8445 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.pngbin0 -> 7230 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.pngbin0 -> 7636 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.pngbin0 -> 9396 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.pngbin0 -> 6840 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_table.html724
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/cc_hash_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.pngbin0 -> 7355 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.pngbin0 -> 9557 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.pngbin0 -> 7572 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/checked_by_tidy.gifbin0 -> 1367 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/concepts.html118
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/contact.html22
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/container_base.html1063
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/container_cd.pngbin0 -> 11884 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/container_cd.svg418
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/container_tag.html24
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/counter_lu_policy.html259
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/design.html96
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/different_underlying_dss.pngbin0 -> 31858 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/direct_mask_range_hashing.html167
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/direct_mod_range_hashing.html144
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/disclaimer.html34
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/ds_gen.html344
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_1.pngbin0 -> 16350 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_2.pngbin0 -> 18206 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_3.pngbin0 -> 5612 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/examples.html24
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/exceptions.html46
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.pngbin0 -> 6194 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.pngbin0 -> 7916 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.pngbin0 -> 6140 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.pngbin0 -> 6110 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.pngbin0 -> 7570 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.pngbin0 -> 6314 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.pngbin0 -> 6763 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.pngbin0 -> 8499 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.pngbin0 -> 6721 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_table.html891
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/gp_hash_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_based_containers.html835
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_exponential_size_policy.html183
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_load_check_resize_trigger.html583
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_policy_cd.pngbin0 -> 25302 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_prime_size_policy.html149
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html173
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.pngbin0 -> 6356 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.pngbin0 -> 7405 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.pngbin0 -> 6401 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html247
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html220
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html365
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram.pngbin0 -> 12962 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram2.pngbin0 -> 8918 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.pngbin0 -> 19773 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_standard_resize_policy.html795
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_text_find_find_timing_test.html164
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html163
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.pngbin0 -> 6910 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.pngbin0 -> 8436 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.pngbin0 -> 7204 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/index.html146
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/insert_error.html53
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram1.pngbin0 -> 25834 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram2.pngbin0 -> 25522 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram3.pngbin0 -> 24542 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/interface.html446
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/introduction.html120
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_cd.pngbin0 -> 8331 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_erase.pngbin0 -> 25884 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/join_error.html48
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/linear_probe_fn.html140
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/list_update.html316
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/list_update_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/lu.pngbin0 -> 20987 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/lu_based_containers.html229
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/misc.html26
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/motivation.html993
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/move_to_front_lu_policy.html194
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html215
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.pngbin0 -> 6323 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.pngbin0 -> 7299 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.pngbin0 -> 6490 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.pngbin0 -> 6284 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.pngbin0 -> 6706 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.pngbin0 -> 6204 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html215
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.pngbin0 -> 6237 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.pngbin0 -> 6732 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.pngbin0 -> 6268 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.pngbin0 -> 6064 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.pngbin0 -> 6396 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.pngbin0 -> 6012 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html210
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.pngbin0 -> 6835 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.pngbin0 -> 7275 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.pngbin0 -> 6588 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.pngbin0 -> 6778 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.pngbin0 -> 7191 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.pngbin0 -> 6535 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html212
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.pngbin0 -> 6449 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.pngbin0 -> 6845 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.pngbin0 -> 6570 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.pngbin0 -> 6419 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.pngbin0 -> 6925 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.pngbin0 -> 6569 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html212
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.pngbin0 -> 6380 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.pngbin0 -> 7000 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.pngbin0 -> 6460 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.pngbin0 -> 6204 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.pngbin0 -> 6764 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.pngbin0 -> 6357 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html217
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.pngbin0 -> 6456 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.pngbin0 -> 7035 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.pngbin0 -> 6547 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.pngbin0 -> 6111 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.pngbin0 -> 6853 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.pngbin0 -> 6430 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/node_invariant_invalidations.pngbin0 -> 32276 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/node_invariants.pngbin0 -> 16553 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/null_hash_fn.html32
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/null_lu_metadata.html25
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/null_mapped_type.html25
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/null_probe_fn.html29
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/null_tree_node_update.html101
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/null_trie_node_update.html102
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/ov_tree_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pairing_heap_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.pngbin0 -> 5395 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.pngbin0 -> 6892 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.pngbin0 -> 5514 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.pngbin0 -> 5678 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.pngbin0 -> 6760 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.pngbin0 -> 5878 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pat_trie.pngbin0 -> 26182 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pat_trie_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/point_invalidation_guarantee.html51
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/point_iterators_cd.pngbin0 -> 20307 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_1.pngbin0 -> 14206 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_2.pngbin0 -> 12876 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pq_container_traits.html132
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pq_design.html381
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pq_different_underlying_dss.pngbin0 -> 15660 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pq_examples.html60
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pq_performance_tests.html332
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pq_regression_tests.html52
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/pq_tests.html24
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/prerequisites.html46
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue.html995
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html161
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.pngbin0 -> 7350 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.pngbin0 -> 9275 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.pngbin0 -> 7065 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html200
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.pngbin0 -> 7021 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.pngbin0 -> 8986 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.pngbin0 -> 7100 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.pngbin0 -> 10845 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.svg368
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html141
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.pngbin0 -> 6458 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_local.pngbin0 -> 7989 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.pngbin0 -> 6461 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html204
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.pngbin0 -> 6788 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.pngbin0 -> 7633 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.pngbin0 -> 6956 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.pngbin0 -> 5007 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.pngbin0 -> 5878 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.pngbin0 -> 4996 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html222
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.pngbin0 -> 6950 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.pngbin0 -> 7748 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.pngbin0 -> 6983 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.pngbin0 -> 4867 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.pngbin0 -> 6105 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.pngbin0 -> 5216 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html143
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.pngbin0 -> 6582 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.pngbin0 -> 7424 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.pngbin0 -> 6849 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html209
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.pngbin0 -> 7072 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.pngbin0 -> 9006 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.pngbin0 -> 7289 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html219
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.pngbin0 -> 6832 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_local.pngbin0 -> 8477 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.pngbin0 -> 7266 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/quadratic_probe_fn.html141
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.pngbin0 -> 5960 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.pngbin0 -> 7377 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.pngbin0 -> 5636 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/range_invalidation_guarantee.html52
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/rationale_null_node_updator.pngbin0 -> 25097 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/rb_tree_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/rc_binomial_heap_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/references.html258
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/resize_error.html50
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/resize_policy_cd.pngbin0 -> 20806 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/restoring_node_invariants.pngbin0 -> 14432 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_probe_fn.html152
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_range_hashing.html172
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_hash_fn.html171
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_probe_fn.html178
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_resize_policy.html413
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_resize_trigger.html462
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_size_policy.html163
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_tree_node_update.html193
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_trie_e_access_traits.html231
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_trie_node_update.html194
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/sample_update_policy.html178
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/simple_list.pngbin0 -> 4299 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/splay_tree_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/string_trie_e_access_traits.html400
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tests.html24
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_gcc.pngbin0 -> 7013 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_local.pngbin0 -> 9361 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_msvc.pngbin0 -> 6932 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.pngbin0 -> 6207 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_local.pngbin0 -> 7650 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.pngbin0 -> 6059 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/thin_heap_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree.html516
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_based_containers.html358
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_node_iterator.html143
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_node_updator_policy_cd.pngbin0 -> 9236 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_node_update.html678
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test.html118
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.pngbin0 -> 5698 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_local.pngbin0 -> 6739 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.pngbin0 -> 5684 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html160
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test.html143
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_gcc.pngbin0 -> 5649 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_local.pngbin0 -> 6734 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_msvc.pngbin0 -> 5675 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_find_find_timing_test.html162
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test.html226
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.pngbin0 -> 5373 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.pngbin0 -> 6690 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.pngbin0 -> 5212 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.pngbin0 -> 4895 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.pngbin0 -> 6011 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.pngbin0 -> 4881 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.pngbin0 -> 5140 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.pngbin0 -> 6270 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.pngbin0 -> 5131 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html126
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.pngbin0 -> 6162 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_local.pngbin0 -> 7796 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.pngbin0 -> 5831 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/trie.html489
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/trie_based_containers.html241
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/trie_const_node_iterator.html478
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/trie_node_iterator.html235
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/trie_node_updator_policy_cd.pngbin0 -> 12126 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/trie_order_statistics_node_update.html770
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/trie_prefix_search_node_update.html628
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/trie_tag.html47
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/trivial_iterator_tag.html25
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/tutorial.html670
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/update_policy_cd.pngbin0 -> 8570 bytes
-rw-r--r--libstdc++-v3/docs/html/ext/pb_ds/update_seq_diagram.pngbin0 -> 10789 bytes
443 files changed, 30390 insertions, 26902 deletions
diff --git a/libstdc++-v3/docs/html/documentation.html b/libstdc++-v3/docs/html/documentation.html
index f45bde8..f211165 100644
--- a/libstdc++-v3/docs/html/documentation.html
+++ b/libstdc++-v3/docs/html/documentation.html
@@ -224,7 +224,7 @@
<li>Extensions to the Standard Library
<ul>
- <li><a href="ext/pb_assoc/index.html">Policy Based Associative Containers</a></li>
+ <li><a href="ext/pb_ds/index.html">Policy Based Data Structures</a></li>
<li><a href="ext/howto.html#1">Ropes and trees and hashes, oh my!</a></li>
<li><a href="ext/howto.html#2">Added members and types</a></li>
<li><a href="ext/mt_allocator.html"><code>__mt_alloc</code> </a></li>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/Std_hash_set_impl.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/Std_hash_set_impl.jpg
deleted file mode 100644
index ff7bae0..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/Std_hash_set_impl.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/acks.html b/libstdc++-v3/docs/html/ext/pb_assoc/acks.html
deleted file mode 100644
index a4971d1..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/acks.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Acknowledgements</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-<body>
-<h1>Acknowledgements</h1>
-
-
-<ol>
- <li>This library was written at the <a href = "http://www.haifa.il.ibm.com/dept/storage/network.html">Network Storage Technologies</a> Group of
-<a href = "http://www.haifa.il.ibm.com/">IBM's Haifa Research Labs</a>.</li>
- <li>The library is based heavily on policy-based design and uses many useful
-techniques from [<a href="references.html#knuth98sorting">alexandrescu01modern</a>].
- </li>
- <li> Two ideas are borrowed from the SGI-STL implementation [<a href = "references.html#sgi_stl">sgi_stl</a>]:
- <ol>
- <li>
- The prime-based resize policies use a list of primes taken from the SGI-STL implementation.
- </li>
- <li> The red-black trees contain both a root node and a header
- node (containing metadata), connected in a way
- that forward and reverse iteration can be performed efficiently.
- </li>
- </ol>
- </li>
- <li> Some test utilities borrow ideas from [<a href = "references.html#boost_timer">boost_timer</a>].
- </li>
- <li> We would like to thank Scott Meyers for useful comments (without attributing to him
- any flaws in the design or implementation of the library).
- </li>
- <li> Much of the documentation is
-<a href = "http://www.python.org/">
-<img src="PythonPoweredSmall.gif" align=top width=55
- height=22 alt="[Python Powered]" border=0>
-</a>.
- </li>
-</ol>
-
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/balls_and_bins.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/balls_and_bins.jpg
deleted file mode 100644
index d9f7e8b..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/balls_and_bins.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr.html
deleted file mode 100644
index ca91c33..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr.html
+++ /dev/null
@@ -1,1229 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic associative container, specialized for the &quot;map&quot; case.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Categories.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Data-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Value-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Iterator definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link9">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Information methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Insert methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link12">Find methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link13">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link14">Iteration methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>Data structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Policy_Tl3735929470">Policy_Tl</a></pre>
-
-
-</td>
-
-<td>
-<p>Policy typelist.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "difference_type3735930139">difference_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::difference_type</pre>
-
-
-</td>
-
-<td>
-<p>Difference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Categories.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "ds_category3735929731">ds_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>The underlying data-structure tag of the container. comment = </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "ms_category3735929740">ms_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "data_enabled_ms_tag.html"><tt>data_enabled_ms_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>The mapping-semantics category of the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_reference3735929926">key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_pointer3735929752">key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_pointer3735929445">const_key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Data-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "data_type3735929514">data_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Data3735928937">Data</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "data_reference3735930007">data_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Data3735928937">Data</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Data reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_data_reference3735929597">const_data_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Data3735928937">Data</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const data reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "data_pointer3735929833">data_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Data3735928937">Data</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Data pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_data_pointer3735929517">const_data_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Data3735928937">Data</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const data pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Value-type definitions.
-</a>
-
-</h2>
-
-<p><p>Types pertaining to the <b>domain</b> of the relationships of the table.</p> <p>This is explained in <a href = "concepts.html#concepts_types">Data Types, Value Types, Mapped Data Types, and Mapped Value Types</a> and <a href = "non_unique_mapping.html#types">Mapped Data Types and Mapped Value Types</a>.</p></p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "value_type3735929645">value_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#data_type3735929514">data_type</a>&gt; &gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reference3735929502">reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#data_type3735929514">data_type</a>&gt; &gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reference3735930148">const_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#data_type3735929514">data_type</a>&gt; &gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "pointer3735929328">pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#data_type3735929514">data_type</a>&gt; &gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_pointer3735929974">const_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#data_type3735929514">data_type</a>&gt; &gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_find_iterator3735929537">const_find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "find_iterator3735929945">find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~basic_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Information methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- size
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects the container object is storing.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- max_size
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns an upper bound on the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects this container can store.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- empty
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns whether the container object is not storing any <a href = "#value_type3735929645"><tt>value_type</tt></a> objects.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> static <a href = "#const_key_reference3735929552">const_key_reference</a>
- extract_key
- (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Extracts a key from a <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Insert methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> std::pair&lt;<a href = "#find_iterator3735929945">find_iterator</a>, <b>bool</b>&gt;
- insert
- (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Inserts a <a href = "#value_type3735929645"><tt>value_type</tt></a> object. If no <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_val</tt></font>'s key was in the container object, inserts and returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>, <tt><b>true</b></tt>); otherwise just returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>'s key, <tt><b>false</b></tt>).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#data_reference3735930007">data_reference</a>
- <b>operator</b>[]
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Inserts (if necessary) a <a href = "#value_type3735929645"><tt>value_type</tt></a> object associated with <font color = "#666666"><tt>r_key</tt></font>. Returns a <a href = "#data_reference3735930007"><tt>data_reference</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link12">Find methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#find_iterator3735929945">find_iterator</a>
- find
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_find_iterator3735929537">const_find_iterator</a>
- find
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_data_reference3735929597">const_data_reference</a>
- <b>operator</b>[]
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Inserts (if necessary) a <a href = "#value_type3735929645"><tt>value_type</tt></a> object associated with <font color = "#666666"><tt>r_key</tt></font>. Returns a <a href = "#data_reference3735930007"><tt>data_reference</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link13">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- erase
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the <a href = "#value_type3735929645"><tt>value_type</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> Pred&gt;
-<b>inline</b> <a href = "#size_type3735929547">size_type</a>
- erase_if
- (Pred prd)</pre>
-
-
-</td>
-
-<td>
-<p>Erases any <a href = "#value_type3735929645"><tt>value_type</tt></a> satisfying the predicate <font color = "#666666"><tt>prd</tt></font> (this is transactional, either all matching <a href = "#value_type3735929645"><tt>value_type</tt></a>s are erased, or, if an exception is thrown (for types whose erase can throw an exception) none); returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- clear
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Clears the container object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link14">Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
- begin
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
- begin
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
- end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
- end
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_compound_data.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_compound_data.html
deleted file mode 100644
index 4cde4db..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_compound_data.html
+++ /dev/null
@@ -1,1244 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic associative container specialized for the &quot;multimap&quot; case.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Categories.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Data-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Value-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Iterator definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Mapping-level definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link10">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Information methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link12">Insert methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link13">Find methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link14">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link15">Iteration methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Cntnr3735929076">Cntnr</a></pre>
-
-
-</td>
-
-<td>
-<p>(Associative) container to which each data is mapped.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>Data structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Policy_Tl3735929470">Policy_Tl</a></pre>
-
-
-</td>
-
-<td>
-<p>Policy typelist.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "difference_type3735930139">difference_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::difference_type</pre>
-
-
-</td>
-
-<td>
-<p>Difference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Categories.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "ds_category3735929731">ds_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>The underlying data-structure tag of the container. comment = </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "ms_category3735929740">ms_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "compound_data_enabled_ms_tag.html"><tt>compound_data_enabled_ms_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>The mapping-semantics category of the container. override_from = </p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_reference3735929926">key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_pointer3735929752">key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_pointer3735929445">const_key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Data-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "data_type3735929514">data_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "data_reference3735930007">data_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Data reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_data_reference3735929597">const_data_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const data reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "data_pointer3735929833">data_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Data pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_data_pointer3735929517">const_data_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const data pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Value-type definitions.
-</a>
-
-</h2>
-
-<p><p>Types pertaining to the <b>domain</b> of the relationships of the table.</p> <p>This is explained in <a href = "concepts.html#concepts_types">Data Types, Value Types, Mapped Data Types, and Mapped Value Types</a> and <a href = "non_unique_mapping.html#types">Mapped Data Types and Mapped Value Types</a>.</p></p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "value_type3735929645">value_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reference3735929502">reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reference3735930148">const_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "pointer3735929328">pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_pointer3735929974">const_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_find_iterator3735929537">const_find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "find_iterator3735929945">find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Mapping-level definitions.
-</a>
-
-</h2>
-
-<p>See <a href = "ms_gen.html">Mapping-Semantics</a>.</p>
-
-
-<h2>
-<a name = "link10">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~basic_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Information methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- size
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects the container object is storing.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- max_size
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns an upper bound on the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects this container can store.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- empty
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns whether the container object is not storing any <a href = "#value_type3735929645"><tt>value_type</tt></a> objects.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> static <a href = "#const_key_reference3735929552">const_key_reference</a>
- extract_key
- (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Extracts a key from a <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link12">Insert methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> std::pair&lt;<a href = "#find_iterator3735929945">find_iterator</a>, <b>bool</b>&gt;
- insert
- (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Inserts a <a href = "#value_type3735929645"><tt>value_type</tt></a> object. If no <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_val</tt></font>'s key was in the container object, inserts and returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>, <tt><b>true</b></tt>); otherwise just returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>'s key, <tt><b>false</b></tt>).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#data_reference3735930007">data_reference</a>
- <b>operator</b>[]
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Inserts (if necessary) a <a href = "#value_type3735929645"><tt>value_type</tt></a> object associated with <font color = "#666666"><tt>r_key</tt></font>. Returns a <a href = "#data_reference3735930007"><tt>data_reference</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link13">Find methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#find_iterator3735929945">find_iterator</a>
- find
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_find_iterator3735929537">const_find_iterator</a>
- find
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_data_reference3735929597">const_data_reference</a>
- <b>operator</b>[]
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Inserts (if necessary) a <a href = "#value_type3735929645"><tt>value_type</tt></a> object associated with <font color = "#666666"><tt>r_key</tt></font>. Returns a <a href = "#data_reference3735930007"><tt>data_reference</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link14">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- erase
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the <a href = "#value_type3735929645"><tt>value_type</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> Pred&gt;
-<b>inline</b> <a href = "#size_type3735929547">size_type</a>
- erase_if
- (Pred prd)</pre>
-
-
-</td>
-
-<td>
-<p>Erases any <a href = "#value_type3735929645"><tt>value_type</tt></a> satisfying the predicate <font color = "#666666"><tt>prd</tt></font> (this is transactional, either all matching <a href = "#value_type3735929645"><tt>value_type</tt></a>s are erased, or, if an exception is thrown (for types whose erase can throw an exception) none); returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- clear
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Clears the container object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link15">Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
- begin
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
- begin
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
- end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
- end
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_no_data.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_no_data.html
deleted file mode 100644
index 8dd0a39..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_no_data.html
+++ /dev/null
@@ -1,1046 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic associative container specialized for the &quot;set&quot; case.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Categories.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Value-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Iterator definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link8">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Information methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Insert methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Find methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link12">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link13">Iteration methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>Data structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Policy_Tl3735929470">Policy_Tl</a></pre>
-
-
-</td>
-
-<td>
-<p>Policy typelist.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "difference_type3735930139">difference_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::difference_type</pre>
-
-
-</td>
-
-<td>
-<p>Difference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Categories.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "ds_category3735929731">ds_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>The underlying data-structure tag of the container. comment = </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "ms_category3735929740">ms_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_ms_tag.html"><tt>basic_ms_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>The mapping-semantics category of the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_reference3735929926">key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_pointer3735929752">key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_pointer3735929445">const_key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Value-type definitions.
-</a>
-
-</h2>
-
-<p><p>Types pertaining to the <b>domain</b> of the relationships of the table.</p> <p>This is explained in <a href = "concepts.html#concepts_types">Data Types, Value Types, Mapped Data Types, and Mapped Value Types</a> and <a href = "non_unique_mapping.html#types">Mapped Data Types and Mapped Value Types</a>.</p></p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "value_type3735929645">value_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- <a href = "#key_type3735929433">key_type</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reference3735929502">reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- <a href = "#key_type3735929433">key_type</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reference3735930148">const_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- <a href = "#key_type3735929433">key_type</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "pointer3735929328">pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- <a href = "#key_type3735929433">key_type</a>&gt; &gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_pointer3735929974">const_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
- <a href = "#key_type3735929433">key_type</a>&gt; &gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_find_iterator3735929537">const_find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "find_iterator3735929945">find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~basic_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Information methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- size
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects the container object is storing.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- max_size
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns an upper bound on the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects this container can store.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- empty
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns whether the container object is not storing any <a href = "#value_type3735929645"><tt>value_type</tt></a> objects.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> static <a href = "#const_key_reference3735929552">const_key_reference</a>
- extract_key
- (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Extracts a key from a <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Insert methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> std::pair&lt;<a href = "#find_iterator3735929945">find_iterator</a>, <b>bool</b>&gt;
- insert
- (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Inserts a <a href = "#value_type3735929645"><tt>value_type</tt></a> object. If no <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_val</tt></font>'s key was in the container object, inserts and returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>, <tt><b>true</b></tt>); otherwise just returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>'s key, <tt><b>false</b></tt>).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Find methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#find_iterator3735929945">find_iterator</a>
- find
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_find_iterator3735929537">const_find_iterator</a>
- find
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link12">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- erase
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the <a href = "#value_type3735929645"><tt>value_type</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> Pred&gt;
-<b>inline</b> <a href = "#size_type3735929547">size_type</a>
- erase_if
- (Pred prd)</pre>
-
-
-</td>
-
-<td>
-<p>Erases any <a href = "#value_type3735929645"><tt>value_type</tt></a> satisfying the predicate <font color = "#666666"><tt>prd</tt></font> (this is transactional, either all matching <a href = "#value_type3735929645"><tt>value_type</tt></a>s are erased, or, if an exception is thrown (for types whose erase can throw an exception) none); returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- clear
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Clears the container object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link13">Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
- begin
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
- begin
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
- end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
- end
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_ds_tag.html
deleted file mode 100644
index ca10f35..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_ds_tag.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Basic data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_assoc_cntnr.html
deleted file mode 100644
index 94939ab..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_assoc_cntnr.html
+++ /dev/null
@@ -1,609 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_hash_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_hash_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic hash-based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link6">Resize methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Hash_Fn3735929222">Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Hash functor.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Resize_Policy3735929904">Resize_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Resize policy.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Store_Hash3735929567">Store_Hash</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether the hash value will be stored along with each key.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag,3735929133">DS_Tag,</a></pre>
-
-
-</td>
-
-<td>
-<p>Data-structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Resize_Policy3735929904">Resize_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#Hash_Fn3735929222">Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>Depending on <a href = "#Data3735928937">Data</a>:<ol> <li> <a href = "null_data_type.html"><tt>null_data_type</tt></a> - <a href = "basic_assoc_cntnr_no_data.html"><tt>basic_assoc_cntnr</tt></a> &quot;set&quot; specialization </li> <li> <a href = "compound_data_type.html"><tt>compound_data_type</tt></a><tt>&lt;Container&gt;</tt> - <a href = "basic_assoc_cntnr_compound_data.html"><tt>basic_assoc_cntnr</tt></a> &quot;multimap&quot; specialization </li> <li> Other - <a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a> &quot;map&quot; specialization </li></ol></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "hash_fn3735929286">hash_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Hash_Fn3735929222">Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Hash functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "eq_fn3735929080">eq_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "resize_policy3735929968">resize_policy</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Resize_Policy3735929904">Resize_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Resize policy type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "store_hash3735929631">store_hash</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Store_Hash3735929567">Store_Hash</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether a hash value is stored with each entry.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~basic_hash_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#hash_fn3735929286">hash_fn</a> &amp;
- get_hash_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#hash_fn3735929286"><tt>hash_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#hash_fn3735929286">hash_fn</a> &amp;
- get_hash_fn
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#hash_fn3735929286"><tt>hash_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#eq_fn3735929080">eq_fn</a> &amp;
- get_eq_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#eq_fn3735929080"><tt>eq_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#eq_fn3735929080">eq_fn</a> &amp;
- get_eq_fn
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#eq_fn3735929080"><tt>eq_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#Resize_Policy3735929904">Resize_Policy</a> &amp;
- get_resize_policy
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#resize_policy3735929968"><tt>resize_policy</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#resize_policy3735929968">resize_policy</a> &amp;
- get_resize_policy
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#resize_policy3735929968"><tt>resize_policy</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Resize methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b> <b>void</b>
- do_resize
- (size_type new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Resizes the container object to <font color = "#666666"><tt>new_size</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_ds_tag.html
deleted file mode 100644
index af421d8..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_hash_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_hash_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Basic hash data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_ds_tag.html"><tt>basic_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_invalidation_guarantee.html
deleted file mode 100644
index 8bba96c..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_invalidation_guarantee.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_invalidation_guarantee Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_invalidation_guarantee
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Signifies a basic invalidation guarantee that any iterator, pointer, or reference to a container object's mapped value type is valid as long as the container is not modified.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_ms_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_ms_tag.html
deleted file mode 100644
index a4e7dd0..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_ms_tag.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_ms_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_ms_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Basic mapping-semantics tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ms_trait.hpp"><tt>ms_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr.html
deleted file mode 100644
index 73595b7..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr.html
+++ /dev/null
@@ -1,940 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_tree_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic tree-based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Iterator definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link7">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Policy access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Iteration methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Node-Iteration methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link12">Split and join methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag,3735929133">DS_Tag,</a></pre>
-
-
-</td>
-
-<td>
-<p>Data-structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-<p><a href = "concepts.html#concepts_node_invariants">Node Invariants</a> explains this concept.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_updator3735929843">node_updator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reverse_iterator3735929745">const_reverse_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const reverse range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const reverse range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reverse_iterator3735929420">reverse_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's reverse range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Reverse range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_node_iterator3735929535">const_node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_const_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::const_node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Const node iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_iterator3735929950">node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Node iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~basic_tree_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
- get_cmp_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
- get_cmp_fn
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#node_updator3735929843">node_updator</a> &amp;
- get_node_updator
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#node_updator3735929843">node_updator</a> &amp;
- get_node_updator
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- erase
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of value_types erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
- erase
- (<a href = "#iterator3735929433">iterator</a> it)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type corresponding to the <a href = "#iterator3735929433"><tt>iterator</tt></a> <font color = "#666666"><tt>it</tt></font>. Returns the <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the next value_type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
- erase
- (<a href = "#reverse_iterator3735929420">reverse_iterator</a> it)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type corresponding to the <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> <font color = "#666666"><tt>it</tt></font>. Returns the <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> corresponding to the previous value_type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
- rbegin
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> corresponding to the last value_type in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_reverse_iterator3735929745">const_reverse_iterator</a>
- rbegin
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_reverse_iterator3735929745"><tt>const_reverse_iterator</tt></a> corresponding to the last value_type in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
- rend
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> corresponding to the just-before-first value_type in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_reverse_iterator3735929745">const_reverse_iterator</a>
- rend
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_reverse_iterator3735929745"><tt>const_reverse_iterator</tt></a> corresponding to the just-before-first value_type in the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Node-Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
- node_begin
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
- node_begin
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
- node_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
- node_end
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link12">Split and join methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- join
- (<font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-<p>When calling this function, <font color = "#666666"><tt>r_other</tt></font>'s keys must be all larger or all smaller than this object's keys. </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- split
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key,
- <font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_const_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_const_node_iterator.html
deleted file mode 100644
index 47095a6..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_const_node_iterator.html
+++ /dev/null
@@ -1,488 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_assoc_cntnr::const_node_iterator Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt><font color = "olive">basic_tree_assoc_cntnr</font>::const_node_iterator
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Const node iterator.
-</p>
-
-<p>This is an
-</p>
-
-<ol>
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link1">Iterator definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Value-type definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Movement methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Comparison methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "iterator_category3735929377">iterator_category</a></pre>
-
-
-</td>
-
-<td>
-<pre>trivial_iterator_tag</pre>
-
-
-</td>
-
-<td>
-<p>Category. comment = </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "difference_type3735930139">difference_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>void</b></pre>
-
-
-</td>
-
-<td>
-<p>Difference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Value-type definitions.
-</a>
-
-</h2>
-
-<p>Note that a node iterator's value type is actually a tree iterator.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "value_type3735929645">value_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<p>Iterator's value type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "pointer3735929328">pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> *</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_pointer3735929974">const_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> *</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's const pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reference3735929502">reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> &amp;</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reference3735930148">const_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>const</b> <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> &amp;</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's const reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
- const_node_iterator
- (<b>const</b> node_pointer p_nd = NULL)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a>
- <b>operator</b>*
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Access.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Movement methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> const_node_iterator
- l_child
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <tt><b>const</b></tt> node <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the left node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> const_node_iterator
- r_child
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <tt><b>const</b></tt> node <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the right node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Comparison methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- <b>operator</b>==
- (<b>const</b> const_node_iterator &amp;r_other) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Compares content to a different <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> object.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- <b>operator</b>!=
- (<b>const</b> const_node_iterator &amp;r_other) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Compares content (negatively) to a different <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> object.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_node_iterator.html
deleted file mode 100644
index c9f4fb7..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_node_iterator.html
+++ /dev/null
@@ -1,250 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_assoc_cntnr::node_iterator Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt><font color = "olive">basic_tree_assoc_cntnr</font>::node_iterator
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Node iterator.
-</p>
-
-<p>This is an
-</p>
-
-<ol>
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Movement methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_node_iterator3735929535">const_node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
- node_iterator
- (<b>const</b> node_pointer p_nd = NULL)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a>
- <b>operator</b>*
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Access.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Movement methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> node_iterator
- l_child
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns the node <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the left node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> node_iterator
- r_child
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns the node <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the right node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev.html
deleted file mode 100644
index b9596f3..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev.html
+++ /dev/null
@@ -1,771 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_tree_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic tree-based associative container specialized for underlying data-structure which do not support reverse iteration.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Iterator definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link7">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Policy access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Node-Iteration methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Split and join methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-<p><a href = "concepts.html#concepts_node_invariants">Node Invariants</a> explains this concept.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_updator3735929843">node_updator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_node_iterator3735929535">const_node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_const_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::const_node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Const node iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_iterator3735929950">node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Node iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~basic_tree_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
- get_cmp_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
- get_cmp_fn
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#node_updator3735929843">node_updator</a> &amp;
- get_node_updator
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#node_updator3735929843">node_updator</a> &amp;
- get_node_updator
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- erase
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of value_types erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
- erase
- (<a href = "#iterator3735929433">iterator</a> it)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type corresponding to the <a href = "#iterator3735929433"><tt>iterator</tt></a> <font color = "#666666"><tt>it</tt></font>. Returns the <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the next value_type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Node-Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
- node_begin
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
- node_begin
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
- node_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
- node_end
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Split and join methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- join
- (<font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- split
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key,
- <font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev_it.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev_it.html
deleted file mode 100644
index b9596f3..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev_it.html
+++ /dev/null
@@ -1,771 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_tree_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic tree-based associative container specialized for underlying data-structure which do not support reverse iteration.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Iterator definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link7">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Policy access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Node-Iteration methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Split and join methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-<p><a href = "concepts.html#concepts_node_invariants">Node Invariants</a> explains this concept.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_updator3735929843">node_updator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_node_iterator3735929535">const_node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_const_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::const_node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Const node iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_iterator3735929950">node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Node iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~basic_tree_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
- get_cmp_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
- get_cmp_fn
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#node_updator3735929843">node_updator</a> &amp;
- get_node_updator
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#node_updator3735929843">node_updator</a> &amp;
- get_node_updator
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- erase
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of value_types erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
- erase
- (<a href = "#iterator3735929433">iterator</a> it)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type corresponding to the <a href = "#iterator3735929433"><tt>iterator</tt></a> <font color = "#666666"><tt>it</tt></font>. Returns the <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the next value_type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Node-Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
- node_begin
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
- node_begin
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
- node_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
- node_end
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Split and join methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- join
- (<font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- split
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key,
- <font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_ds_tag.html
deleted file mode 100644
index e28c0b3..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_tree_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Basic tree data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_ds_tag.html"><tt>basic_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_assoc_cntnr.html
deleted file mode 100644
index 8124e4b..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_assoc_cntnr.html
+++ /dev/null
@@ -1,679 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>cc_hash_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>cc_hash_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A collision-chaining hash-based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Hash_Fn3735929222">Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Hash functor.</p>
-
-
-</td>
-
-<td>
-<pre>__gnu_cxx::hash&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>if using gcc;<pre>stdext::hash_value&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>if using Visual C++ .net
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor.</p>
-
-
-</td>
-
-<td>
-<pre>std::equal_to&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Comb_Hash_Fn3735929702">Comb_Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Combining hash functor.</p>
-
-
-<p>If <a href = "#Hash_Fn3735929222">Hash_Fn</a> is not <a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>, then this is the <a href = "concepts.html#concepts_hash_fns">range_hashing function</a> functor; otherwise, this is the <a href = "concepts.html#concepts_hash_fns">ranged_hash function</a> functor.</p>
-
-
-</td>
-
-<td>
-<pre><a href = "direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;
- <a href = "#Allocator3735929488">Allocator</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Resize_Policy3735929904">Resize_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Resize policy.</p>
-
-
-</td>
-
-<td>
-If <tt><a href = "#comb_hash_fn3735929798">comb_hash_fn</a></tt> is <tt><a href = "direct_mask_range_hashing.html">direct_mask_range_hashing&lt;&gt;</a></tt>, then <pre><a href = "hash_standard_resize_policy.html">hash_standard_resize_policy</a>&lt;
- <a href = "hash_exponential_size_policy.html">hash_exponential_size_policy</a>&lt;
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
- <a href = "hash_load_check_resize_trigger.html">hash_load_check_resize_trigger</a>&lt;
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
- <b>false</b>,
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>otherwise, <pre><a href = "hash_standard_resize_policy.html">hash_standard_resize_policy</a>&lt;
- <a href = "hash_exponential_size_policy.html"><tt>hash_prime_size_policy</tt></a>&lt;
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
- <a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>&lt;
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
- <b>false</b>,
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Store_Hash3735929567">Store_Hash</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether the hash value will be stored along with each key.</p>
-
-
-<p>If <tt><a href = "#hash_fn3735929286">hash_fn</a></tt> is <tt><a href = "null_hash_fn.html">null_hash_fn</a></tt>, then the container will not compile if this value is <tt><b>true</b></tt></p>
-
-
-</td>
-
-<td>
-<pre><tt><b>false</b></tt></pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "basic_hash_assoc_cntnr.html"<tt>basic_hash_assoc_cntnr</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "comb_hash_fn3735929798">comb_hash_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Combining hash functor type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> cc_hash_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> cc_hash_assoc_cntnr
- (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> cc_hash_assoc_cntnr
- (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> cc_hash_assoc_cntnr
- (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a> &amp;r_comb_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_comb_hash_fn</tt></font> will be copied by the <a href = "#Comb_Hash_Fn3735929702"><tt>Comb_Hash_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> cc_hash_assoc_cntnr
- (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a> &amp;r_comb_hash_fn,
- <b>const</b> <a href = "#Resize_Policy3735929904">Resize_Policy</a> &amp;r_resize_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_hash_fn</tt></font> will be copied by the <a href = "#Comb_Hash_Fn3735929702"><tt>Comb_Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_resize_policy</tt></font> will be copied by the <a href = "#Resize_Policy3735929904"><tt>Resize_Policy</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- cc_hash_assoc_cntnr
- (It first_it,
- It last_it)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- cc_hash_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- cc_hash_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- cc_hash_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a> &amp;r_comb_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_comb_hash_fn</tt></font> will be copied by the <a href = "#Comb_Hash_Fn3735929702"><tt>Comb_Hash_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- cc_hash_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a> &amp;r_comb_hash_fn,
- <b>const</b> <a href = "#Resize_Policy3735929904">Resize_Policy</a> &amp;r_resize_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_hash_fn</tt></font> will be copied by the <a href = "#Comb_Hash_Fn3735929702"><tt>Comb_Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_resize_policy</tt></font> will be copied by the <a href = "#Resize_Policy3735929904"><tt>Resize_Policy</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> cc_hash_assoc_cntnr
- (<b>const</b> <font color = "olive">cc_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~cc_hash_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><font color = "olive">cc_hash_assoc_cntnr</font> &amp;
- <b>operator</b>=
- (<b>const</b> <font color = "olive">cc_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Assignment operator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">cc_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#comb_hash_fn3735929798">comb_hash_fn</a> &amp;
- get_comb_hash_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#comb_hash_fn3735929798"><tt>comb_hash_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a> &amp;
- get_comb_hash_fn
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#comb_hash_fn3735929798"><tt>comb_hash_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_ds_tag.html
deleted file mode 100644
index 87b724e..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>cc_hash_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>cc_hash_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Collision-chaining hash data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_hash_ds_tag.html"><tt>basic_hash_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_max_collision_check_resize_trigger.html b/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_max_collision_check_resize_trigger.html
deleted file mode 100644
index 0b19045..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_max_collision_check_resize_trigger.html
+++ /dev/null
@@ -1,701 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>cc_hash_max_collision_check_resize_trigger Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>cc_hash_max_collision_check_resize_trigger
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A resize trigger policy based on collision checks. It keeps the simulated load factor lower than some given load factor.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Load access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link5">Insert search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Find search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Erase search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Content change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Size change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Queries.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "External_Load_Access3735929540">External_Load_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Specifies whether the load factor can be accessed externally. The two options have different tradeoffs in terms of flexibility, genericity, and encapsulation.</p>
-
-
-</td>
-
-<td>
-<tt><b>false</b></tt>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "external_load_access3735929604">external_load_access</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#External_Load_Access3735929540">External_Load_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether loads can be accessed externally</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> cc_hash_max_collision_check_resize_trigger
- (float load = 0.5)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor, or constructor taking <font color = "#666666"><tt>load</tt></font>, a load factor which it will attempt to maintain.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">cc_hash_max_collision_check_resize_trigger</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Load access methods.
-</a>
-
-</h2>
-
-<p> These methods are only available if the external access parameter is set.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> float
- get_load
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a pair of the minimal and maximal loads, respectively.</p>
-
-
-<p>Calling this method will not compile when <a href = "#External_Load_Access3735929540"><tt>External_Load_Access</tt></a> == <tt><b>false</b></tt>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Insert search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Find search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during a find operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Erase search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Content change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the content of the table changes in a way that can affect the resize policy.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_inserted
- (<a href = "#size_type3735929547">size_type</a> num_entries)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was inserted.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erased
- (<a href = "#size_type3735929547">size_type</a> num_entries)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_cleared
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was cleared.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Size change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the table changes size.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_resized
- (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized as a result of this object's signifying that a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_externally_resized
- (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized externally.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Queries.
-</a>
-
-</h2>
-
-<p>Called to query whether/how to resize.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- is_resize_needed
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- is_grow_needed
- (<a href = "#size_type3735929547">size_type</a> size, <a href = "#size_type3735929547">size_type</a> num_entries) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a grow is needed.</p>
-
-
-<p>This method is called only if this object indicated is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- is_shrink_needed
- (<a href = "#size_type3735929547">size_type</a> size, <a href = "#size_type3735929547">size_type</a> num_entries) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a shrink is needed.</p>
-
-
-<p>This method is called only if this object indicated is needed.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_policy_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_policy_cd.jpg
deleted file mode 100644
index 63891a8..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_policy_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/cd.jpg
deleted file mode 100644
index 1b55544..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/component_requirements.html b/libstdc++-v3/docs/html/ext/pb_assoc/component_requirements.html
deleted file mode 100644
index 703e4e0..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/component_requirements.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Component Requirements</title>
- </head>
- <body bgcolor = "white">
- <h1>Component Requirements</h1>
- <h2>Functional Requirements</h2>
- <ol>
- <li>
- Keys:
- <ol>
- <li>
- Key objects must be copy-constructible (they need not support assignment).
- <li>
- Key objects must be destructible.</li>
- </ol>
- <li>
- Data:
- <ol>
- <li>
- Data objects must be copy-constructible (they need not support assignment).
- <LI>
- Data objects must be default constructible.
- <li>
- Data objects must be destructible.</li>
- </ol></li> </ol> <a name="exception_requirements">
- <h2>Exception Requirements</h2>
- </a>
- <ol>
- <li>
- Keys:
- <ol>
- <li>
- Key objects must not throw exceptions when destructed.
- <li>
- Key objects may throw exceptions when copy constructed.</li>
- </ol>
- <li>
- Data:
- <ol>
- <li>
- Data objects must must not throw exceptions when destructed.
- <li>
- Data objects may throw exceptions when copy constructed.</li>
- </ol></li> </ol>
- <HR>
-
- </body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_enabled_ms_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_enabled_ms_tag.html
deleted file mode 100644
index 6b70c3f..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_enabled_ms_tag.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>compound_data_enabled_ms_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>compound_data_enabled_ms_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Mapping-semantics tag indicating that the container objects maps each key to some compound datum.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ms_trait.hpp"><tt>ms_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_type.html b/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_type.html
deleted file mode 100644
index c9fd7e0..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_type.html
+++ /dev/null
@@ -1,128 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>compound_data_type Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>compound_data_type
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A data-policy indicating that an associative container has multiple mapping levels.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/data_type.hpp"><tt>data_type.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Cntnr3735929076">Cntnr</a></pre>
-
-
-</td>
-
-<td>
-<p>(Associative) container type to which every key in the container maps.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cntnr3735929108">cntnr</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cntnr3735929076">Cntnr</a></pre>
-
-
-</td>
-
-<td>
-<p>The type of container which is the actual data type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/compound_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/compound_ds_tag.html
deleted file mode 100644
index c1cb9ce..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/compound_ds_tag.html
+++ /dev/null
@@ -1,77 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>compound_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>compound_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Compound data-structure tag.
-</p>
-
-<p>Indicates that the underlying data-structure is a composition of other data structures.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_ds_tag.html"><tt>basic_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/concepts.html b/libstdc++-v3/docs/html/ext/pb_assoc/concepts.html
deleted file mode 100644
index cd72958..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/concepts.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Concepts</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Concepts</h1>
-
-<p>
-Following are some concepts used throughout the documentation.
-</p>
-
-<ol>
- <li><a href = "#concepts_null_policies">Null Policy Classes</a></li>
- <li><a href = "#concepts_find_and_range_iterators">Find and Range Iterators</a></li>
- <li><a href = "#concepts_mapping_levels">Mapping Levels</a></li>
-</ol>
-
-<h2><a name = "concepts_null_policies">Null Policy Classes</a></h2>
-
-<p>
- Associative containers are typically parameterized by various policies.
-For example, a hash-based associative
-container is parameterized by a hash-functor, transforming each key into an non-negative numerical type. Each such value is then further mapped into a position within the table.
-The mapping of a key into a position within the table is therefore a two-step process.
-</p>
-
-<p>
-In some
-cases, instantiations are <i>redundant</i>. For example, when the keys are integers, it is possible to use a <i>redundant</i>
-hash policy, which transforms each key into its value.
-</p>
-
-<p>
- In some other cases, these policies are <i>irrelevent</i>. For example,
-a hash-based associative container might transform keys into positions within
-a table by a different method than the two-step method described above. In such a case, the hash functor is simply irrelevent.
-</p>
-
-<p>
- <tt>pb_assoc</tt> uses special pre-defined &quot;null policies&quot; classes
-for these cases. Some null policies in <tt>pb_assoc</tt>
-are:
-</p>
-<ol>
- <li <a href = "null_data_type.html"><tt>null_data_type</tt></a></li>
- <li><a href = "null_node_updator.html"><tt>null_node_updator</tt></a></li>
- <li><a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a></li>
- <li><a href = "null_probe_fn.html"><tt>null_probe_fn</tt></a></li>
-</ol>
-
-<p>
-A &quot;set&quot; in <tt>pb_assoc</tt> is an associative container with its <tt>Data_Parameter</tt> instantiated by
-<a href = "null_data_type.html"><tt>null_data_type</tt></a>.
-<a href = "tree_based_containers.html#node_invariants.html">Tree-Based Containers::Node Invariants</a>
-explains another case where a null policy is needed.
-</p>
-
-
-
-<h2><a name = "concepts_find_and_range_iterators">Find and Range Methods and Iterators</a></h2>
-
-<p>
- Associative containers allow access to their elements via iterators. <i>E.g.</i>,
-<tt>find</tt> returns an iterator to an element with a given key and
-<tt>begin</tt> returns an iterator to the first element in the container.
-</p>
-
-<p>
-In general, there are two types of methods: <i>find types</i>, and <i>range types</i>.
- Find-type
-methods return iterators corresponding to elements which have been found in some sense, as
-the container searched for them in order to access them (<i>i.e.</i>, via the
-<tt>find</tt> method) or searched for their location in order to insert them
-(<i>i.e.</i>, via the <tt>insert</tt> method). Range-type methods return iterators
-which can be used to traverse the range of all stored elements, (<i>i.e.</i>, via the
-<tt>begin</tt> and <tt>end</tt> methods).
-</p>
-
-<p>Correspondingly, in <tt>pb_assoc</tt> there are two types of iterators: <i>find type</i>
-iterators are returned by find methods, and range iterators are returned by range methods. For example,
-if <tt>T</tt> is any associative container with integer keys, and <tt>t</tt>
-is a container of type <tt>T</tt>,
-then the following snippet is valid:
-</p>
-
-<pre>
-<b>typename</b> T::find_iterator it0 = t.find(3);
-<b>typename</b> T::const_find_iterator it0 = t.find(3);
-
-<b>typename</b> T::iterator it0 = t.begin();
-<b>typename</b> T::const_iterator it0 = t.begin();
-</pre>
-
-
-<p>
- This is motivated and explained further in
-<a href = "ds_gen.html#find_range">Data-Structure Genericity::Find-Type and Range-Type Methods and Iterators</a>, which also explains the relationship between find-type and range-type iterators.
-</p>
-
-<h2><a href = "#concepts_mapping_levels">Mapping Levels</a></h2>
-
-<p>
- In <tt>pb_assoc</tt> &quot;multimaps&quot; are
-&quot;maps&quot; of &quot;sets&quot;. While this design allows efficient
-operations, it makes for cumbersome use at points. For example a
-&quot;multimap&quot; of integers to characters does not
-directly support <tt>inser(std::make_pair(2, 'b')</tt>, since 2 is mapped
-to a &quot;set&quot; of characters, and not to a character.
-</p>
-
-<p>
- Consequently, <tt>pb_assoc</tt> contains a rebind-like mechanism so that
-containers can support such operations. To dispel ambiguity, container types are
-assigned mapping levels. &quot;Maps&quot; and &quot;sets&quot; have
-a mapping level 1, since they use a single association level. The &quot;multimap&quot;
-above has a mapping level 2, since it uses two association levels: one for integers, and one for characters. The rebind mechanism can be used to alter the association level. This is described in
-<a href = "ms_gen.html">Mapping Semantics</a>.
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/contact.html b/libstdc++-v3/docs/html/ext/pb_assoc/contact.html
deleted file mode 100644
index 2eb28be..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/contact.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Contact</title>
-
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-
-</head>
-<body bgcolor = "white">
-<h1>Contact</h1>
-
-<p>
-For anything relevant, please write to
-<a href = "mailto:pbassoc@gmail.com">pbassoc@gmail.com</a>
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_metadata.html b/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_metadata.html
deleted file mode 100644
index fb56b1a..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_metadata.html
+++ /dev/null
@@ -1,101 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>counter_update_metadata Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>counter_update_metadata
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A list-update metadata type that moves elements to the front of the list based on the counter algorithm.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/counter_update_policy.hpp"><tt>counter_update_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type which will be used for counting the number of times a node was accessed.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_policy.html
deleted file mode 100644
index c54fe37..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_policy.html
+++ /dev/null
@@ -1,380 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>counter_update_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>counter_update_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A list-update policy that moves elements to the front of the list based on the counter algorithm.
-</p>
-
-<p>This class is likely to slightly change interface when random number generators become part of the C++ standard.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/counter_update_policy.hpp"><tt>counter_update_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">Size definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Information methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link5">Metadata definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link6">Metadata operations.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Metadata_Reference3735929465">Metadata_Reference</a></pre>
-
-
-</td>
-
-<td>
-<p>Metadata reference type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;
- <a href = "counter_update_metadata.html"><tt>counter_update_metadata</tt></a>&gt;::
- reference
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Size definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type used for counting the number of times each node is accessed until the count is reset to 0 and the node moved to the front of the list.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> counter_update_policy
- (<a href = "#size_type3735929547">size_type</a> max_count = 5)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor. <font color = "#666666"><tt>max_count</tt></font> determines the the number of times each node is accessed until the count is reset to 0 and the node moved to the front of the list.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">counter_update_policy</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Information methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
- <a href = "#size_type3735929547">size_type</a>
- get_max_count
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the max count of each metadata (number of times it is accessed until moved to the front of the list).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Metadata definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "metadata_type3735929937">metadata_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "counter_update_metadata.html"><tt>counter_update_metadata</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Metadata on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "metadata_reference3735929497">metadata_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Metadata_Reference3735929465">Metadata_Reference</a></pre>
-
-
-</td>
-
-<td>
-<p>Reference to metadata on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Metadata operations.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#metadata_type3735929937">metadata_type</a>
- <b>operator</b>()
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Creates a metadata object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>bool</b>
- <b>operator</b>()
- (<a href = "#metadata_reference3735929497">metadata_reference</a> r_data) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Decides whether a metadata object should be moved to the front of the list.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/data_enabled_ms_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/data_enabled_ms_tag.html
deleted file mode 100644
index 7ae1ac0..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/data_enabled_ms_tag.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>data_enabled_ms_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>data_enabled_ms_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Mapping-semantics tag indicating that the container objects maps each key to some datum.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ms_trait.hpp"><tt>ms_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/design.html b/libstdc++-v3/docs/html/ext/pb_assoc/design.html
deleted file mode 100644
index 4eace5f..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/design.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Design</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-<body bgcolor = "white">
-<h1>Design</h1>
-
-<ol>
- <li> <a href = "overview.html">Overview</a> describes an overview.</li>
- <li> <a href = "concepts.html">Concepts</a> describes some concepts. </li>
- <li> <a href = "ds_gen.html">Data-Structure Genericity</a> discusses generic manipulation of containers based on different underlying data-structures.</li>
- <li> <a href = "ms_gen.html">Mapping-Semantic Genericity</a> discusses generic manipulation of containers with different mapping semantics.</li>
- <li> <a href = "hash_based_containers.html">Hash-Based Containers</a> describes the design and policies of hash-based containers.</li>
- <li> <a href = "tree_based_containers.html">Tree-Based Containers</a> describes the design and policies of tree-based containers.</li>
- <li> <a href = "lu_based_containers.html">List-Based Containers</a> describes the design and policies of list-based containers with update policies.</li>
-</ol>
-
-
- </body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/different_underlying_dss.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/different_underlying_dss.jpg
deleted file mode 100644
index 2ddd257..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/different_underlying_dss.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/direct_mask_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_assoc/direct_mask_range_hashing.html
deleted file mode 100644
index f1915c3..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/direct_mask_range_hashing.html
+++ /dev/null
@@ -1,251 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>direct_mask_range_hashing Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>direct_mask_range_hashing
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A mask range-hashing class (uses a bit-mask).
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Notification methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Operators.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">direct_mask_range_hashing</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Notification methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_resized
- (<a href = "#size_type3735929547">size_type</a> size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the policy object that the container's size has changed to <font color = "#666666"><tt>size</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Operators.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- <b>operator</b>()
- (<a href = "#size_type3735929547">size_type</a> hash) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Transforms the hash value <font color = "#666666"><tt>hash</tt></font> into a ranged-hash value (using a bit-mask).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/direct_mod_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_assoc/direct_mod_range_hashing.html
deleted file mode 100644
index b9096cc..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/direct_mod_range_hashing.html
+++ /dev/null
@@ -1,228 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>direct_mod_range_hashing Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>direct_mod_range_hashing
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A mod range-hashing class (uses the modulo function).
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Notification methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Operators.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">direct_mod_range_hashing</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Notification methods.
-</a>
-
-</h2>
-
-<h2>
-<a name = "link5">Operators.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- <b>operator</b>()
- (<a href = "#size_type3735929547">size_type</a> hash) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Transforms the hash value <font color = "#666666"><tt>hash</tt></font> into a ranged-hash value (using a modulo operation).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/disclaimer.html b/libstdc++-v3/docs/html/ext/pb_assoc/disclaimer.html
deleted file mode 100644
index c5dcb86..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/disclaimer.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Disclaimer and Copyright</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-
-<h2>Disclaimer and Copyright</h2>
-
-<p>
-Revised 16 February, 2004
-</p>
-&copy; Copyright Ami Tavory and Vladimir Dreizin, IBM-HRL, 2004, and Benjamin Kosnik, Red Hat, 2004.
-<P>
-Permission to use, copy, modify, sell, and distribute this software is hereby granted without fee, provided that the above copyright notice appears in all copies, and that both that copyright notice and this permission notice appear in supporting documentation.
-</p>
-<P>
-None of the above authors, nor IBM Haifa Research Laboratories, Red Hat, or both, make any representation about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
-</p>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ds_gen.html b/libstdc++-v3/docs/html/ext/pb_assoc/ds_gen.html
deleted file mode 100644
index d7cc0aa..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ds_gen.html
+++ /dev/null
@@ -1,368 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Data-Structure Genericity</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-<body bgcolor = "white">
-<h1>Data-Structure Genericity</h1>
-
-<p>
- This section describes genericity over different underlying data-structures. It is organized as follows.
-</p>
-<ol>
- <li><a href = "#problem">The Basic Problem</a></li>
- <li><a href = "#ds_hierarchy">Container Hierarchy</a></li>
- <li><a href = "#ds_traits">Data-Structure Tags and Traits</a></li>
- <li><a href = "#find_range">Find-Type and Range-Type Methods and Iterators</a></li>
-</ol>
-
-<h2><a name = "problem">The Basic Problem</a></h2>
-
-<p>
- The design attempts to address the following problem. When writing a function manipulating a generic container object, what is the behaviour of the object? <i>E.g.</i>, suppose one writes
-</p>
-<pre>
-<b>template</b>&lt;
- <b>class</b> Cntnr&gt;
-<b>void</b> some_op_sequence
- (Cntnr &r_cntnr)
-{
- ...
-}
-</pre>
-then one needs to address the following questions in the body
-of <tt>some_op_sequence</tt>:
-<ol>
- <li> Which types and methods does <tt>Cntnr</tt> support? Containers based on hash tables can be queries for the hash-functor type and object; this is meaningless for tree-based containers. Containers based on trees can be split, joined, or can erase iterators and return the following iterator; this cannot be done by hash-based containers. </li>
- <li>
- What are the guarantees of <tt>Cntnr</tt>? A container based on a probing hash-table invalidates all iterators when it is modified; this is not the case for containers based on node-based trees. Containers based on a node-based tree can be split or joined without exceptions; this is not the case for containers based on vector-based trees.
- </li>
- <li> How does the container maintain its elements? containers based on splay trees or lists with update policies "cache" "frequently accessed" elements; containers based on most other underlying data-structures do not.</li>
-</ol>
-
-<h2><a name = "ds_hierarchy">Container Hierarchy</a></h2>
-
-<p>
- Figure
-<a href = "#cd">Class hierarchy</a>
- shows the container hierarchy.
-</p>
-<ol>
- <li>
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>
-contains types and methods shared by all associative containers, <i>e.g.</i>, the type <tt>allocator</tt> and the method <tt>find</tt>.
- </li>
- <li><a href = "basic_assoc_cntnr.html"><tt>basic_hash_assoc_cntnr</tt></a> subclasses
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>, and contains
-types and methods shared by all hash-based containers, <i>e.g.</i>, the type <tt>hash_fn</tt>.
- </li>
- <ol>
- <li>
-<a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a>
-and
-<a href = "gp_hash_assoc_cntnr.html"><tt>gp_hash_assoc_cntnr</tt></a>
-each subclass
-<a href = "basic_hash_assoc_cntnr.html"><tt>basic_hash_assoc_cntnr</tt></a>, and encapsulate collision-chaining and (general) probing hash tables, respectively. These two types of hash tables have somewhat different policies and methods (<i>i.e.</i>, constructors and policy-access methods).
- </li>
- </ol>
- <li>
-<a href = "tree_assoc_cntnr.html"><tt>tree_assoc_cntnr</tt></a>
-subclasses one of
-<a href = "basic_tree_assoc_cntnr.html"><tt>basic_tree_assoc_cntnr</tt></a> which
-subclasses
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>.
-<a href = "tree_assoc_cntnr.html"><tt>tree_assoc_cntnr</tt></a>
- encapsulates a tree-based container, and is parameterized by which underlying data-structure to use (<i>e.g.</i>, a red-black tree);
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>.
-is specialized to the capabilities of the underlying structure.
-<a href = "tree_assoc_cntnr.html"><tt>tree_assoc_cntnr</tt></a> contains some additional methods over
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>,
-<i>e.g.</i>, split and join methods.
- </li>
- <li>
-<a href = "lu_assoc_cntnr.html"><tt>lu_assoc_cntnr</tt></a>
-subclasses
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>,
-and encapsulates a list with update policies.
- </li>
-</ol>
-
-<p>
- The hierarchy is composed naturally, such that each container inherits
-all types and methods from its base. <a href = "#ds_traits">Data-Structure Tags and Traits</a> discusses how to query which types and methods each container supports.
-</p>
-
-
-
-<h2><a name = "ds_traits">Data-Structure Tags and Traits</a></h2>
-
-<p>
- <tt>pb_assoc</tt> contains a tag and traits mechanism similar to that of the STL's iterators.
-</p>
-
-<p>
- <tt>pb_assoc</tt> contains a tag hierarchy corresponding to the hierarchy
-in Figure
-<a href = "#cd">Class hierarchy</a>.
-The tag hierarchy is shown in Figure
-<a href = "#ds_tag_cd">Data-structure tag class hierarchy</a>.
-</p>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "ds_tag_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Data-structure tag class hierarchy.
-</h6>
-
-<p>
- <a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a> publicly defines
-<tt>ds_category</tt> as one of the classes in Figure
-.
-Given any container <tt>Cntnr</tt>, the tag of the underlying data-structure can be found via <tt><b>typename</b> Cntnr::ds_category</tt>.
-</p>
-
-<p>
- Additionally, a traits mechanism can be used to query a container type for its attributes. Given any container <tt>Cntnr</tt>, then
-<tt><a href = "ds_traits.html">ds_traits</a>&lt;Cntnr&gt;</tt>
-is a traits class identifying the properties of the container.
-</p>
-
-<p>
- To find if a container can throw when a key is erased (which is true for vector-based trees, for example), one can use
-</p>
-<a href = "ds_traits.html"><tt>ds_traits</tt></a><tt>&lt;Cntnr&gt;::erase_can_throw</tt>,
-for example.
-
-<p>
- Some of the definitions in
-<a href = "ds_traits.html"><tt>ds_traits</tt></a>
-are dependent on other definitions. <i>E.g.</i>, if
-<a href = "ds_traits.html"><tt>ds_traits</tt></a><tt>&lt;Cntnr&gt;::split_join</tt>
-is <tt><b>true</b></tt> (which is the case for containers based on trees),
-then
-<a href = "ds_traits.html"><tt>ds_traits</tt></a><tt>&lt;Cntnr&gt;::split_join_can_throw</tt>
-indicates whether splits or joins can throw exceptions (which is true for vector-based trees); otherwise
-<a href = "ds_traits.html"><tt>ds_traits</tt></a><tt>&lt;Cntnr&gt;::split_join_can_throw</tt>
-will yield a compilation error. (This is somewhat similar to a compile-time
-version of the COM model
-[<a href = "references.html#mscom">mscom</a>]).
-
-
-<h2><a name = "find_range">Find-Type and Range-Type Methods and Iterators</a></h2>
-
-<p>
- <tt>pb_assoc</tt> differentiates between two types of methods: find-type methods, and range-type methods. For example, <tt>find</tt> is a find-type method, since a container object searches for an element with a given key; <tt>insert</tt> is a find-type method, since, by STL convention, a container object returns an iterator corresponding to an element with a given key; <tt>begin</tt> and <tt>end</tt> are range-type methods, since they are not used to find a specific element, but rather to go over all elements in a container object.
-</p>
-
-<p>
- Correspondingly, containers in <tt>pb_assoc</tt> define two families of iterators. <tt>const_find_iterator</tt> and <tt>find_iterator</tt> are the iterator types returned by find-type methods; <tt>const_iterator</tt> and <tt>iterator</tt> are the iterator types returned by range-type methods.
-</p>
-
-<p>
- The relationship between these iterator types varies between container types. In a tree-based container, for example, <tt>const_find_iterator</tt> and <tt>const_iterator</tt> are synonymous, and <tt>find_iterator</tt> and <tt>iterator</tt> are synonymous; in a hash-based container, for example, this is not the case. Futhermore, find-type iterators in a hash-based container lack movement operators, such as
- <tt><b>operator++</b></tt>.
- All containers, however, maintain the invariants shown in Figure
-
-.
-</p>
-
-
-<p>
- This distinction between find-type and range-type iterators and methods, while complicating the interface, has several advantages:
-</p>
-
-<h3>Iterators in unordered container types</h3>
-
-<p>
- Given an unordered container type, <i>e.g.</i>, a hash-based container, it makes no sense to move an iterator returned by a find-type method.
-Let <tt>cntnr</tt> be an associative-container object, and
-consider:
-</p>
-
-<pre>
-std::for_each(m.find(1), m.find(5), foo);
-</pre>
-
-<p>
-which applies <tt>foo</tt> to all elements in <tt>m</tt>
-between <tt>1</tt> and <tt>5</tt>.
-</p>
-
-<p>If <tt>cntnr</tt> is a
-tree-based container object, then an in-order walk will apply <tt>foo</tt>
-to the relevant elements, <i>e.g.</i>, as in Figure
-<a href = "#range_it_in_hts">Range iteration in different data-structures</a>
--A. If <tt>m</tt> is a
-hash-based container, then the order of elements between any two
-elements is undefined (and probably time-varying); there is no
-guarantee that the elements traversed will coincide with the
-<i>logical</i> elements between 1 and 5, <i>e.g.</i>, as in
-Figure <a href = "#range_it_in_hts">Range iteration in different data-structures</a>-B.
-</p>
-
-<p>
-The application of a
-range function <i>e.g.</i>, <tt>for_each</tt>, to a
-pair of hash-based container's iterators is possibly sensical only
-if the iterators are those returned by <tt>begin</tt> and <tt>end</tt>,
-respectively. Therefore, the iterator returned by
-<tt>m</tt>'s <tt>find</tt> method should be immovable.
-</p>
-
-<p>
- Another point also indicates that hash-based containers'
-find-type iterators and range-type iterators should be distinct.
-Consider Figure
-<a href = "#find_its_in_hash_tables">
-Find-type iterators in hash tables</a>-A.
-An
-(immovable) find-type iterator, designed only to access an
-element, requires at most a single pointer to the element's link.
-Conversely, an iterator designed for range operations
-requires some more information <i>e.g.</i>, the bucket number),
-since a cross-list traversal might be necessary. Alternatively,
-the lists might be linked, forming a monolithic total-element
-list, as in Figure
-<a href = "#find_its_in_hash_tables">
-Find-type iterators in hash tables</a>-B (this seems
-similar to the Dinkumware design
-[<a href = "references.html#dinkumware_stl">dinkumware_stl</a>]). This,
-however, complicates the hash-table's operations.
-
-<h6 align = "center">
-<a name = "range_it_in_hts">
-<img src = "find_iterators_range_ops_1.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Range iteration in different data-structures.
-</h6>
-
-
-<h6 align = "center">
-<a name = "find_its_in_hash_tables">
-<img src = "find_iterators_range_ops_2.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Find-type iterators in hash tables.
-</h6>
-
-<p>
- As a consequence of this design,
-</p>
-
-<pre>
-std::for_each(m.find(1), m.find(5), foo);
-</pre>
-
-<p>
- will compile for tree-based containers, but will not compile
-for hash-tables or other types. The returned type of <tt>find</tt>
-is a find-type iterator. For tree-based containers, this is synonymous
-with a range-type iterator, and therefore supports <tt><b>operator</b>++</tt>;
-for other types of containers, a find-type iterator lacks <tt><b>operator</b>++</tt>.
-</p>
-
-<h3>Invalidation Guarantees</h3>
-
-<p>
- Consider the following snippet:
-</p>
-
-<pre>
-it = c.find(3);
-
-c.erase(5);
-</pre>
-
-<p>
- Following the call to <tt>erase</tt>, what is the validity
-of <tt>it</tt>: can it be dereferenced? can it be incremented?
-</p>
-
-<p>
- The answer depends on the underlying data-structure of the container.
-Figure
-<a href = "#invalidation_guarantee_erase">Effect of erase in different underlying data-structures</a>
-shows three cases: A1 and A2 show a red-black tree;
-B1 and B2 show an ordered-vector tree; C1 and C2
-show a collision-chaining hash table.
-</p>
-
-<h6 align = "center">
-<a name = "invalidation_guarantee_erase">
-<img src = "invalidation_guarantee_erase.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Effect of erase in different underlying data-structures.
-</h6>
-
-
-<ol>
- <li>
- `Erasing 5 from A1 yields A2. Clearly, an iterator to 3
- can be dereferenced and incremented.
- </li>
- <li>
- Erasing 5 from B1 yields B2. Clearly, an iterator to 3 is
- not valid at all.
- </li>
- <li>
- Erasing 5 from C1 yields C2. Here the situation is more complicated.
-On the one hand, incrementing <tt>it</tt> can be undefined. On the other
-hand, there is no problem in dereferencing <tt>it</tt>. In
-classic STL, it is not possible to express whether <tt>it</tt>
-is valid or not.
- </li>
-</ol>
-
-<p>
- Thus again, the iterator concept seems overloaded. Distinguishing
-between find and range types allows fine-grained invalidation guarantees.
-<a href = #invalidation_guarantee_cd">Invalidation guarantees class hierarchy</a>
-shows tags corresponding to different types of invalidation guarantees.
-</p>
-
-<h6 align = "center">
-<a name = "invalidation_guarantee_cd">
-<img src = "invalidation_guarantee_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Invalidation guarantees class hierarchy.
-</h6>
-
-<ol>
- <li> <a href = "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a> corresponds to a basic guarantee that a find-type iterator, a found pointer, or a found reference, remains valid as long as the container object is not modified.
- </li>
- <li> <a href = "find_invalidation_guarantee.html"><tt>find_invalidation_guarantee</tt></a> corresponds to a guarantee that a find-type iterator, a found pointer, or a found reference, remains valid even if the containter object is modified.
- </li>
- <li> <a href = "range_invalidation_guarantee.html"><tt>range_invalidation_guarantee</tt></a> corresponds to a guarantee that a range-type iterator remains valid even if the containter object is modified.
- </li>
-</ol>
-
-
-<p>
- To find the invalidation guarantee of a container, one can use
-</p>
-<pre>
-<b>typename</b> <a href = "ds_traits.html">ds_traits</a>&lt;Cntnr&gt;::invalidation_guarantee
-</pre>
-
-<p>
- which is one of the classes in Figure
-<a href = #invalidation_guarantee_cd">Invalidation guarantees class hierarchy</a>.
-</p>
-
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ds_tag_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/ds_tag_cd.jpg
deleted file mode 100644
index 0526f86..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ds_tag_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ds_traits.html b/libstdc++-v3/docs/html/ext/pb_assoc/ds_traits.html
deleted file mode 100644
index c646af2..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ds_traits.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>ds_traits Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>ds_traits
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Signifies a basic invalidation guarantee that any iterator, pointer, or reference to a container object's mapped value type is valid as long as the container is not modified.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_1.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_1.jpg
deleted file mode 100644
index 0d6569a..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_1.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_2.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_2.jpg
deleted file mode 100644
index d6e4aa1..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_2.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/examples.html b/libstdc++-v3/docs/html/ext/pb_assoc/examples.html
deleted file mode 100644
index af20aad..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/examples.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Examples</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Examples</h1>
-
-<ol>
- <li><a href = "#basic_usage">Basic use</a></li>
- <li><a href = "#generics">Generics</a></li>
- <li><a href = "#hash_based">Hash-Based Containers</a></li>
- <li><a href = "#tree_based">Tree-Based Containers</a></li>
-</ol>
-
-<h2><a name = "basic_usage">Basic Use</a></h2>
-
-<ol>
- <li><a href = "../../../../testsuite/ext/pb_assoc/example/basic_map.cc"><tt>basic_map.cc</tt></a>- Basic use of &quot;maps&quot;.</li>
- <li><a href = "../../../../testsuite/ext/pb_assoc/example/basic_set.cc"><tt>basic_set.cc</tt></a>- Basic use of &quot;sets&quot;.
-See
-<a href = "ms_gen.html#ds_policy">Mapping Semantics::Data Types as a Policy</a>.
- </li>
- <li><a href = "../../../../testsuite/ext/pb_assoc/example/basic_multimap.cc"><tt>basic_multimap.cc</tt></a>- Basic use of &quot;multimaps&quot;.
-See
- <a href = "ms_gen.html#ds_policy">Mapping Semantics::Data Types as a Policy</a>.
- </li>
- <li><a href = "../../../../testsuite/ext/pb_assoc/example/erase_if.cc"><tt>erase_if.cc</tt></a>- Conditionally
-erasing values from a container object.
-See
-<a href = "motivation.html#methods">Motivation::Choice of Methods</a>.
- </li>
-</ol>
-
-
-
-<h2><a name = "generics">Generics</a></h2>
-
-<ol>
- <li><a href = "../../../../testsuite/ext/pb_assoc/example/ds_traits.cc"><tt>ds_traits.cc</tt></a>-
-Using
-<a href = "ds_traits.html"><tt>ds_traits</tt></a> to query about underlying
-data-structure behaviour.
-See
-<a href = "ds_gen.html#ds_traits">Data-Structure Genericity::Data-Structure Tags and Traits</a>.
- </li>
- <li> <a href = "../../../../testsuite/ext/pb_assoc/example/mapping_level.cc"><tt>mapping_level.cc</tt></a>-
-Rebinding a compound associative-container to different mapping levels.
-See
-<a href = "ms_gen.html#mapping_level">Mapping-Semantics::Mapping Levels</a>.
- </li>
- <li> <a href = "../../../../testsuite/ext/pb_assoc/example/ms_traits.cpp"><tt>ms_traits.cpp</tt></a>-
-Using <a href = "ms_traits.html"><tt>ms_traits</tt></a>
-to query about mapping semantics.
-See
-<a href = "ms_gen.html#ms_traits">Mapping-Semantics::Tags and Traits</a>.
- </li>
- <li><a href = "../../../../testsuite/ext/pb_assoc/example/cc_ht_extract_key.cc"><tt>cc_ht_extract_key.cc</tt></a>-
- Extracting the key from different types.
- </li>
-</ol>
-
-
-<h2><a name = "hash_based">Hash-Based Containers</a></h2>
-
-<p>
- See
-<a href = "hash_based_containers.html">Hash-Based Containers</a>.
-</p>
-
-<h3>General</h3>
-
-<ol>
- <li>
- <a href = "../../../../testsuite/ext/pb_assoc/example/hash_bad_find.cc"><tt>hash_bad_find.cc</tt></a>-
- A non-compiling example showing wrong use of finding keys in hash-based
- containers.
- See
- <a href = "ds_gen.html#find_range">Data-Structure Genericity::Find-Type and Range-Type Methods and Iterators</a>.
- </li>
-</ol>
-
-
-<h3>Resize-Related</h3>
-
-<p>See
- <a href = "../../../../testsuite/ext/pb_assoc/example/hash_based_containers.html#resize_policies">Hash-Based Containers::Resize Policies</a>.
-</p>
-
-<ol>
- <li>
- <a href = "../../../../testsuite/ext/pb_assoc/example/hash_initial_size.cc"><tt>hash_initial_size.cc</tt></a>-
- Setting the initial size of a hash-based container object.
- </li>
- <li>
- <a href = "../../../../testsuite/ext/pb_assoc/example/hash_bad_resize.cc"><tt>hash_bad_resize.cc</tt></a>-
- A non-compiling example showing how not to resize a hash-based container object.
- </li>
- <li>
- <a href = "../../../../testsuite/ext/pb_assoc/example/hash_resize.cc"><tt>hash_resize.cc</tt></a>-
- Resizing the size of a hash-based container object.
- </li>
- <li><a href = "../../../../testsuite/ext/pb_assoc/example/hash_illegal_resize.cc"><tt>hash_illegal_resize.cc</tt></a>-
- Showing an illegal resize of a hash-based container object.
- </li>
- <li>
- <a href = "../../../../testsuite/ext/pb_assoc/example/hash_load_set_change.cc"><tt>hash_load_set_change.cc</tt></a>-
- Changing the load factors of a hash-based container object.
- </li>
-</ol>
-
-
-<h3>Hash-Related</h3>
-
-<p>See
- <a href = "../../../../testsuite/ext/pb_assoc/example/hash_based_containers.html#hash_policies">Hash-Based Containers::Hash Policies</a>.
-</p>
-
-<ol>
- <li>
- <a href = "../../../../testsuite/ext/pb_assoc/example/hash_mod.cc"><tt>hash_mod.cc</tt></a>-
-Using a modulo range-hashing function.
- </li>
- <li>
- <a href = "../../../../testsuite/ext/pb_assoc/example/store_hash.cc"><tt>store_hash.cc</tt></a>-
- Storing the hash value along with each key.
- </li>
- <li>
- <a href = "../../../../testsuite/ext/pb_assoc/example/shift_mask.cc"><tt>shift_mask.cc</tt></a>-
- Writing a range-hashing functor.
- </li>
- <li><a href = "../../../../testsuite/ext/pb_assoc/example/ranged_hash.cc"><tt>ranged_hash.cc</tt></a>-
- Writing
- a ranged-hash functor.</li>
-</ol>
-
-
-
-
-
-<h2><a name = "tree_based">Tree-Based Containers</a></h2>
-
-<p>
- See
-<a href = "tree_based_containers.html">Tree-Based Containers</a>.
-</p>
-
-<h3>Node-Invariatns</h3>
-
-<p>
- See
-<a href = "tree_based_containers.html#invariants">Tree-Based Containers::Node Invariants</a>.
-</p>
-
-<ol>
- <li><a href="../../../../testsuite/ext/pb_assoc/example/tree_order_statistics.cc"><tt>tree_order_statistics.cc</tt></a>-
-Using trees for order statistics.
- </li>
- <li><a href="../../../../testsuite/ext/pb_assoc/example/tree_intervals.cc"><tt>tree_intervals.cc</tt></a>- Augmenting an
-<a href = "ov_tree_set.html"><tt>ov_tree_set</tt></a>
-to support operations on line intervals.
- </li>
-</ol>
-
-<h3>Split and Join</h3>
-
-<p>
- See
-<a href = "tree_based_containers.html#add_methods">Tree-Based Containers::Additional Types and Methods</a>.
-</p>
-
-<ol>
- <li><a href="../../../../testsuite/ext/pb_assoc/example/tree_join.cc"><tt>tree_join.cc</tt></a>- Joining
-two tree-based container objects.
- </li>
- <li><a href="../../../../testsuite/ext/pb_assoc/example/tree_split.cc"><tt>tree_split.cc</tt></a>- Splitting
-a tree-based container object.
- </li>
- <li><a href="../../../../testsuite/ext/pb_assoc/example/tree_order_statistics_join.cc"><tt>tree_order_statistics_join.cc</tt></a>- Order statistics while joining two tree-based container objects.
-</ol>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html b/libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html
deleted file mode 100644
index 48f12bc..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
-<head>
- <title>Exception Guarantee Specifics</title>
-</head>
-<body bgcolor = "white">
-<h1>Exception Guarantee Specifics</h1>
-The following represent exception guaratee specifics, subject to the <a href="component_requirements.html#exception_requirements">component exception-requirements</a>.
-<ol>
- <li> <a name="basic_guarantee">No</a> resources are leaked in the face of exceptions. In particular, this means:
- <ol>
- <li>By the time a container's destructor completes:
- <ol>
- <li>It has returned all memory it has allocated to the appropriate deallocation function.</li>
- <li>The destructor has been called for all objects constructed by the container.</li>
- </ol>
- <li>Algorithms destroy all temporary objects and deallocate all temporary memory even if the algorithm does not complete due to an exception.</li>
- <li>Algorithms which construct objects either complete successfully or destroy any objects they have constructed at the time of the exception.</li>
- <li>Algorithms which destruct objects always succeed.</li>
- <li>Containers continue to fulfill all of their requirements, even after an exception occurs during a mutating function. For example, they will never give an inaccurate report of its size, or fail to meet performance requirements because of some thrown exception.</li>
- </ol>
- </li>
- <li> <a name="strong_guarantee">The</a> <i>strong guarantee</i>: If an operation on a container fails due to an exception, then, semantically, the operation is a no-op applied to the container.</li>
- <li> <a name="cannot_throw_guarantee">The</a> operation cannot throw an exception.</li>
-</ol>
-(The phrasing of the above is based on <a href="references.html#abrahams97exception">[abrahams97exception]</a>.)
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/find_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_assoc/find_invalidation_guarantee.html
deleted file mode 100644
index 38d9447..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/find_invalidation_guarantee.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>find_invalidation_guarantee Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>find_invalidation_guarantee
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Signifies an invalidation guarantee that includes all those of its base, and additionally, that any find-type iterator, pointer, or reference to a container object's mapped value type is valid as long as its corresponding entry has not be erased, regardless of modifications to the container object.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_cd.jpg
deleted file mode 100644
index 5b0e80d..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_1.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_1.jpg
deleted file mode 100644
index 6cc788f..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_1.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_2.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_2.jpg
deleted file mode 100644
index 5e567e4..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_2.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/generics.html b/libstdc++-v3/docs/html/ext/pb_assoc/generics.html
deleted file mode 100644
index 5b7f2fb..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/generics.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Generics</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Generics</h1>
-
-<p>
- Naturally, the ability to program generically different associative containers, is beneficial.
-The distinction in this library between <a href = "data_type_defs.html">data_type</a>s and
-<a href = "mapped_data_type_defs.html">mapped_data_type</a>s, and between <a href = "value_type_defs.html">value_type</a>s and
-<a href = "mapped_value_type_defs.html">mapped_value_type</a>s, somewhat complicates this.
-</p>
-
-<p>
- The generic utility classes ease static detection of different associative-container
-types (<i>e.g.</i>, whether they are map or multimap types), and the extraction of data from iterators.
-</p>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_assoc_cntnr.html
deleted file mode 100644
index 3451380..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_assoc_cntnr.html
+++ /dev/null
@@ -1,816 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>gp_hash_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>gp_hash_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A general-probing hash-based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Hash_Fn3735929222">Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Hash functor.</p>
-
-
-</td>
-
-<td>
-<pre>__gnu_cxx::hash&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>if using gcc;<pre>stdext::hash_value&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>if using Visual C++ .net
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor.</p>
-
-
-</td>
-
-<td>
-<pre>std::equal_to&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Comb_Probe_Fn3735929818">Comb_Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Combining probe functor.</p>
-
-
-<p>If <a href = "#Hash_Fn3735929222">Hash_Fn</a> is <a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>, and <a href = "#Probe_Fn3735929338">Probe_Fn</a> is <a href = "comb_probe_fn.html"><tt>comb_probe_fn</tt></a>, then this is the <a href = "concepts.html#concepts_hash_fns">ranged_hash function</a> functor; otherwise, this is the <a href = "concepts.html#concepts_hash_fns">range_hashing function</a> functor;</p>
-
-
-</td>
-
-<td>
-<pre><a href = "direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;
- <a href = "#Allocator3735929488">Allocator</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Probe_Fn3735929338">Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Probe functor.</p>
-
-
-</td>
-
-<td>
-If <tt><a href = "#comb_hash_fn3735929798">comb_hash_fn</a></tt> is <tt><a href = "direct_mask_range_hashing.html">direct_mask_range_hashing&lt;&gt;</a></tt>, then <pre><a href = "linear_probe_fn.html">linear_probe_fn</a>&lt;
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>otherwise, <pre><a href = "quadratic_probe_fn.html">quadratic_probe_fn</a>&lt;
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Resize_Policy3735929904">Resize_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Resize policy.</p>
-
-
-</td>
-
-<td>
-If <tt><a href = "#comb_hash_fn3735929798">comb_hash_fn</a></tt> is <tt><a href = "direct_mask_range_hashing.html">direct_mask_range_hashing&lt;&gt;</a></tt>, then <pre><a href = "hash_standard_resize_policy.html">hash_standard_resize_policy</a>&lt;
- <a href = "hash_exponential_size_policy.html">hash_exponential_size_policy</a>&lt;
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
- <a href = "hash_load_check_resize_trigger.html">hash_load_check_resize_trigger</a>&lt;
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
- <b>false</b>,
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>otherwise, <pre><a href = "hash_standard_resize_policy.html">hash_standard_resize_policy</a>&lt;
- <a href = "hash_exponential_size_policy.html"><tt>hash_prime_size_policy</tt></a>&lt;
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
- <a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>&lt;
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
- <b>false</b>,
- <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Store_Hash3735929567">Store_Hash</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether the hash value will be stored along with each key.</p>
-
-
-<p>If <tt><a href = "#hash_fn3735929286">hash_fn</a></tt> is <tt><a href = "null_hash_fn.html">null_hash_fn</a></tt>, then the container will not compile if this value is <tt><b>true</b></tt></p>
-
-
-</td>
-
-<td>
-<pre><tt><b>false</b></tt></pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#Probe_Fn3735929338">Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "basic_hash_assoc_cntnr.html"<tt>basic_hash_assoc_cntnr</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "comb_probe_fn3735929914">comb_probe_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Combining probe functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "probe_fn3735929402">probe_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Probe_Fn3735929338">Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Probe functor type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> gp_hash_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> gp_hash_assoc_cntnr
- (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> gp_hash_assoc_cntnr
- (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> gp_hash_assoc_cntnr
- (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> gp_hash_assoc_cntnr
- (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn,
- <b>const</b> <a href = "#Probe_Fn3735929338">Probe_Fn</a> &amp;r_probe_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_probe_fn</tt></font> will be copied by the <a href = "#Probe_Fn3735929338"><tt>Probe_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> gp_hash_assoc_cntnr
- (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn,
- <b>const</b> <a href = "#Probe_Fn3735929338">Probe_Fn</a> &amp;r_probe_fn,
- <b>const</b> <a href = "#Resize_Policy3735929904">Resize_Policy</a> &amp;r_resize_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_probe_fn</tt></font> will be copied by the <a href = "#Probe_Fn3735929338"><tt>Probe_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_resize_policy</tt></font> will be copied by the <a href = "#Resize_Policy3735929904"><tt>Resize_Policy</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- gp_hash_assoc_cntnr
- (It first_it,
- It last_it)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- gp_hash_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- gp_hash_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- gp_hash_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- gp_hash_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn,
- <b>const</b> <a href = "#Probe_Fn3735929338">Probe_Fn</a> &amp;r_probe_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_probe_fn</tt></font> will be copied by the <a href = "#Probe_Fn3735929338"><tt>Probe_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- gp_hash_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn,
- <b>const</b> <a href = "#Probe_Fn3735929338">Probe_Fn</a> &amp;r_probe_fn,
- <b>const</b> <a href = "#Resize_Policy3735929904">Resize_Policy</a> &amp;r_resize_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_probe_fn</tt></font> will be copied by the <a href = "#Probe_Fn3735929338"><tt>Probe_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_resize_policy</tt></font> will be copied by the <a href = "#Resize_Policy3735929904"><tt>Resize_Policy</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> gp_hash_assoc_cntnr
- (<b>const</b> <font color = "olive">gp_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~gp_hash_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><font color = "olive">gp_hash_assoc_cntnr</font> &amp;
- <b>operator</b>=
- (<b>const</b> <font color = "olive">gp_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Assignment operator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">gp_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#comb_probe_fn3735929914">comb_probe_fn</a> &amp;
- get_comb_probe_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#comb_probe_fn3735929914"><tt>comb_probe_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#comb_probe_fn3735929914">comb_probe_fn</a> &amp;
- get_comb_probe_fn
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#comb_probe_fn3735929914"><tt>comb_probe_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#probe_fn3735929402">probe_fn</a> &amp;
- get_probe_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#probe_fn3735929402"><tt>probe_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#probe_fn3735929402">probe_fn</a> &amp;
- get_probe_fn
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#probe_fn3735929402"><tt>probe_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_ds_tag.html
deleted file mode 100644
index 247a193..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>gp_hash_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>gp_hash_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>General-probing hash data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_hash_ds_tag.html"><tt>basic_hash_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_policy_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_policy_cd.jpg
deleted file mode 100644
index 395349f..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_policy_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_and_probe_general.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_and_probe_general.html
deleted file mode 100644
index c4b4833..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_and_probe_general.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Hash and Probe Policies</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Hash and Probe Policies</h1>
-
-
-<p>
- As mentioned in
-<a href = "hash_policies.html">Hash Policies</a>,
-some of the containers require a ranged-hash function policy for
-mapping key types into a non-negative integral type in a range.
-<i>E.g.</i>, collision-based containers
-(<a href = "cc_ht_map_interface.html"><tt>cc_ht_map</tt></a>,
-<a href = "cc_ht_set_interface.html"><tt>cc_ht_set</tt></a>,
-<a href = "cc_ht_multimap_interface.html"><tt>cc_ht_multimap</tt></a>,
-and
-<a href = "cc_ht_multiset_interface.html"><tt>cc_ht_multiset</tt></a>),
-require a ranged-hash function.
-</p>
-
-<p>
- Similarly, some hash tables
-need a ranged-probe function policy for mapping
-key types into a sequence of non-negative integral types in a range.
-<i>E.g.</i>, probing-based containers
-(<a href = "gp_ht_map_interface.html"><tt>gp_ht_map</tt></a>,
-<a href = "gp_ht_set_interface.html"><tt>gp_ht_set</tt></a>,
-<a href = "gp_ht_multimap_interface.html"><tt>gp_ht_multimap</tt></a>,
-and
-<a href = "gp_ht_multiset_interface.html"><tt>gp_ht_multiset</tt></a>),
-require a ranged-hash function.
-</p>
-
-<p>
- <a href = "interface.html#policy_classes">Policy Classes</a>
-contains classes for creating ranged-hash and ranged-probe function policies.
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_based_containers.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_based_containers.html
deleted file mode 100644
index 5278851..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_based_containers.html
+++ /dev/null
@@ -1,1056 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Hash-Based Containers</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-
-<body bgcolor = "white">
-
-<h1>Hash-Based Containers</h1>
-
-<p>
- This section describes hash-based containers. It is organized
-as follows.
-</p>
-
-<ol>
- <li>
- <a href = "#overview">Overview</a> is an overview.
- </li>
- <li>
- <a href = "#hash_policies">Hash Policies</a> discusses
- hash policies.
- </li>
- <li>
- <a href = "#resize_policies">Resize Policies</a> discusses
- resize policies.
- </li>
- <li>
- <a href = "#policy_interaction">Policy Interaction</a> discusses
- interaction between policies.
- </li>
-</ol>
-
-
-
-<h2><a name = "overview">Overview</a></h2>
-
-
-<p>
- Figure
-<a href = "#hash_cd">Hash-based containers</a>
- shows the container-hierarchy; the hash-based containers are circled.
-<a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a>
-is a collision-chaining hash-based container;
-<a href = "gp_hash_assoc_cntnr.html"><tt>gp_hash_assoc_cntnr</tt></a>
-is a (general) probing hash-based container.
-</p>
-
-<h6 align = "center">
-<a name = "hash_cd">
-<img src = "hash_cd.jpg" width = "70%" alt = "no image">
-</h6>
-<h6 align = "center">
-</a>
-Hash-based containers.
-</h6>
-
-<p>
- The collision-chaining hash-based container has the following declaration.
-</p>
-<pre>
-<b>template</b>&lt;
- <b>typename</b> Key,
- <b>typename</b> Data,
- <b>class</b> Hash_Fn = std::hash&lt;Key&gt;,
- <b>class</b> Eq_Fn = std::equal_to&lt;Key&gt;,
- <b>class</b> Comb_Hash_Fn =
- <a href = "direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;&gt;
- <b>class</b> Resize_Policy = <i>default explained below.</i>
- <b>bool</b> Store_Hash = <b>false</b>,
- <b>class</b> Allocator =
- std::allocator&lt;<b>char</b>&gt; &gt;
-<b>class</b> <a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>;
-</pre>
-
-<p>
- The parameters have the following meaning:
-</p>
-<ol>
- <li> <tt>Key</tt> is the key type.
- </li>
- <li> <tt>Data</tt> is the data-policy, and is explained in
-<a href = "ms_gen.html#ds_policy">Mapping-Semantics Genericity::Data Types as a Policy</a>.
- </li>
- <li> <tt>Hash_Fn</tt> is a key hashing functor.</li>
- <li> <tt>Eq_Fn</tt> is a key equivalence functor.</li>
- <li> <tt>Comb_Hash_Fn</tt> is a <i>range-hashing_functor</i>; it
-describes how to translate hash values into positions within the table.
-This is described in
-<a name = "#hash_policies">Hash Policies</a>.</li>
- </li>
- <li> <tt>Resize_Policy</tt> describes how a container object should
-change its internal size. This is described in
-<a name = #resize_policies">Resize Policies</a>.</li>
- <li> <tt>Store_Hash</tt> indicates whether the hash value should
-be stored with each entry. This is described in
-<a name = "#policy_interaction">Policy Interaction</a>.</li>
- <li> <tt>Allocator</tt> is (surprisingly) an allocator type.
- </li>
-</ol>
-
-<p>
- The probing hash-based container has the following declaration.
-</p>
-<pre>
-<b>template</b>&lt;
- <b>typename</b> Key,
- <b>typename</b> Data,
- <b>class</b> Hash_Fn =
- std::hash&lt;
- Key&gt;,
- <b>class</b> Eq_Fn =
- std::equal_to&lt;
- Key&gt;,
- <b>class</b> Comb_Probe_Fn =
- <a href = "direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;&gt;
- <b>class</b> Probe_Fn = <i>default explained below.</i>
- <b>class</b> Resize_Policy = <i>default explained below.</i>
- <b>bool</b> Store_Hash = <b>false</b>,
- <b>class</b> Allocator =
- std::allocator&lt;<b>char</b>&gt; &gt;
-<b>class</b> <a href = "gp_hash_assoc_cntnr.html">gp_hash_assoc_cntnr</a>;
-</pre>
-
-<p>
- The parameters are identical to those of the collision-chaining container, except
-for the following.
-</p>
-<ol>
- <li> <tt>Comb_Probe_Fn</tt> describes how to transform a probe sequence into
-a sequence of positions within the table.
- </li>
- <li> <tt>Probe_Fn</tt> describes a probe sequence policy.</li>
-</ol>
-
-
-<p>
- Some of the default template values depend on the values of other parameters,
-and are explained in
-<a name = "#policy_interaction">Policy Interaction</a>.
-</p>
-
-<h2><a name = "hash_policies">Hash Policies</h2></a>
-<p>
- This subsection describes hash policies. It is organized as follows:
-</p>
-<ol>
- <li> <a href = "#general_terms">General Terms</a> describes
- some general terms.
- </li>
- <li> <a href = "#range_hashing_fns">Range-Hashing Functions</a>
- describes range-hasing functions.</li>
- <li> <a href = "#hash_policies_ranged_hash_policies">Ranged-Hash Functions</a>
- describes ranged-hash functions. </li>
- <li> <a href = "#pb_assoc_imp">Implementation in <tt>pb_assoc</tt></a>
- describes the implementation of these concepts in <tt>pb_assoc</tt>.
- </li>
-</ol>
-
-
-<h3><a name="general_terms">General Terms</a></h3>
-
-<p>
- There
-are actually three functions involved in transforming a key into a hash-table's
-position (see Figure
-<a href = "#hash_ranged_hash_range_hashing_fns">
-Hash runctions, ranged-hash functions, and range-hashing functions
-</a>):
-</p>
-<ol>
- <li>
- A <i>ranged-hash</i> function, which maps keys into an interval of the
- non-negative integrals. This is the function actually required by the
- hash-table algorithm.
- </li>
- <li>
- A hash function, which maps keys into non-negative integral types. This is
- typically specified by the writer of the key class.
- </li>
- <li>
- A <i>range-hashing</i> function, which maps non-negative integral types into an
- interval of non-negative integral types.
- </li>
-</ol>
-
-<h6 align = "center">
-<a name = "hash_ranged_hash_range_hashing_fns">
-<img src = "hash_ranged_hash_range_hashing_fns.jpg" width = "70%" alt = "no image">
-</h6>
-<h6 align = "center">
-</a>
-Hash runctions, ranged-hash functions, and range-hashing functions.
-</h6>
-
-<p>
- Let <i>U</i> be a domain (<i>e.g.</i>, the integers, or the strings of 3
- characters). A hash-table algorithm needs to map elements of <i>U</i> "uniformly"
- into the range <i>[0,..., m - 1]</i> (where <i>m</i> is a non-negative integral
- value, and is, in general, time varying). <i>I.e.</i>, the algorithm needs a <i>ranged-hash</i>
- function
-</p>
-<p>
- <i>f : U &times; Z<sub>+</sub> &rarr; Z<sub>+</sub> </i>,
-</p>
-<p>
- such that for any <i>u</i> in <i>U</i>
-,
-</p>
-<p>
- <i>0 &le; f(u, m) &le; m - 1 </i>,
-</p>
-<p>
- and which has "good uniformity" properties [<a href="references.html#knuth98sorting">knuth98sorting</a>].
- One common solution is to use the composition of the hash function
-</p>
-<p>
- <i>h : U &rarr; Z<sub>+</sub> </i>,
-</p>
-<p>
- which maps elements of <i>U</i> into the non-negative integrals, and
-</p>
-<p>
- <i>g : Z<sub>+</sub> &times; Z<sub>+</sub> &rarr; Z<sub>+</sub>, </i>
-</p>
-<p>
- which maps a non-negative hash value, and a non-negative range upper-bound into
- a non-negative integral in the range between 0 (inclusive) and the range upper
- bound (exclusive), <i>i.e.</i>, for any <i>r</i> in <i>Z<sub>+</sub></i>,
-</p>
-<p>
- <i>0 &le; g(r, m) &le; m - 1 </i>.
-</p>
-<p>
- The resulting ranged-hash function, is
-</p>
-<p>
- <i><a name="eqn:ranged_hash_composed_of_hash_and_range_hashing">f(u , m) = g(h(u), m) </a>
- </i>(1) .
-</p>
-
-<p>
- From the above, it is obvious that given <i>g</i> and <i>h</i>, <i>f</i> can
- always be composed (however the converse is not true). The STL's hash-based
- containers allow specifying a hash function, and use a hard-wired range-hashing function; the ranged-hash function is implicitly composed.
-</p>
-
-
-<p>
- The above describes the case where a key is to be mapped into a <i>single
-position</i> within a hash table, <i>e.g.</i>, in a collision-chaining table.
-In other cases, a key is to be mapped into a <i>sequence of poisitions</i>
-within a table, <i>e.g.</i>, in a probing table.
-</p>
-<p>
- Similar terms apply in this case: the table requires a <i>ranged probe</i>
-function, mapping a key into a sequence of positions withing the table. This is
-typically acheived by composing a <i>hash function</i> mapping the key
-into a non-negative integral type, a <i>probe</i> function transforming the
-hash value into a sequence of hash values, and a <i>range-hashing</i> function
-transforming the sequence of hash values into a sequence of positions.
-</p>
-
-
-<h3><a name="range_hashing_fns">Range-Hashing Functions</a></h3>
-
-<p>
- Some common choices for range-hashing functions are the division,
- multiplication, and middle-square methods [<a href="references.html#knuth98sorting">knuth98sorting</a>],
- defined as
-</p>
-<p>
- <i><a name="eqn:division_method">g(r, m) = r mod m </a></i>(2) ,
-</p>
-<p>
- <i>g(r, m) = &lceil; u/v ( a r mod v ) &rceil; </i>,
-</p>
-<p>
- and
-</p>
-<p>
- <i>g(r, m) = &lceil; u/v ( r<sup>2</sup> mod v ) &rceil; </i>,
-</p>
-<p>
-respectively, for some positive integrals <i>u</i> and <i>v</i> (typically
-powers of 2), and some <i>a</i>. Each of these range-hashing functions works
-best for some different setting.
-</p>
-<p>
- The division method <a href="#division_method">(2)</a> is a very common
- choice. However, even this single method can be implemented in two very
- different ways. It is possible to implement <a href="#division_method">(2)</a>
- using the low level <i>%</i> (modulo) operation (for any <i>m</i>), or the low
- level <i>&amp;</i> (bit-mask) operation (for the case where <i>m</i> is a power of
- 2), <i>i.e.</i>,
-</p>
-<p>
- <i><a name="eqn:division_method_prime_mod">g(r, m) = r % m </a></i>(3) ,
-</p>
-<p>
- and
-</p>
-<p>
- <a name="eqn:division_method_bit_mask">
- <i>g(r, m) = r &amp; m - 1, ( m = 2<sup>k</sup>
- </i>
- for some<i> k) </i></a>(4) ,
-</p>
-<p>
- respectively.
-</p>
-<p>
- The <i>%</i> (modulo) implementation <a href="#division_method_prime_mod">(3)</a>
- has the advantage that for <i>m</i> a prime far from a power of 2, <i>g(r, m)</i>
- is affected by all the bits of <i>r</i> (minimizing the chance of collision).
- It has the disadvantage of using the costly modulo operation. This method is
- hard-wired into SGI's implementation [<a href="references.html#sgi_stl">sgi_stl</a>].
-</p>
-
-<p>
- The <i>&amp;</i> (bit-mask) implementation <a href="#division_method_bit_mask">(4)</a>
- has the advantage of relying on the fast bitwise and operation. It has the
- disadvantage that for <i>g(r, m)</i> is affected only by the low order bits of <i>r</i>.
- This method is hard-wired into Dinkumware's implementation [<a href="references.html#dinkumware_stl">dinkumware_stl</a>].
-</p>
-
-
-
-
-<h3><a name="hash_policies_ranged_hash_policies">Ranged-Hash Functions</a></h3>
-
-<p>
- In some less frequent cases it is beneficial to allow the client to
-directly specify a ranged-hash hash function. It is true, that the writer of
-the ranged-hash function cannot rely on the values of <i>m</i> having specific
-numerical properties suitable for hashing (in the sense used in [<a href="references.html#knuth98sorting">knuth98sorting</a>]),
-since the values of <i>m</i> are determined by a resize policy with possibly
-orthogonal considerations.
-</p>
-
-<p>
- There are two cases where a ranged-hash function can be superior. The firs is when using perfect hashing
-[<a href="references.html#knuth98sorting">knuth98sorting</a>]; the second
-is when the values of <i>m</i> can be used to estimate the
-"general" number of distinct values required. This is described in the following.
-</p>
-
-<p>
- Let
-</p>
-
-<p>
- <i>s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>] </i>
-</p>
-
-<p>
- be a string of <i>t</i> characters, each of which is from domain <i>S</i>.
-Consider the following ranged-hash function:
-</p>
-
-<p>
- <a name="eqn:total_string_dna_hash">
- <i>
- f<sub>1</sub>(s, m) =
- &sum; <sub>i =
- 0</sub><sup>t - 1</sup> s<sub>i</sub> a<sup>i</sup> </i>mod<i> m </i>
- </a> (5) ,
-</p>
-
-<p>
- where <i>a</i> is some non-negative integral value. This is the standard
-string-hashing function used in SGI's implementation (with <i>a = 5</i>) [<a href="references.html#sgi_stl">sgi_stl</a>].
-Its advantage is that it takes into account all of the characters of the
-string.
-</p>
-
-<p>
- Now assume that <i>s</i> is the string representation of a of a long DNA
-sequence (and so <i>S = {'A', 'C', 'G', 'T'}</i>). In this case, scanning the
-entire string might be prohibitively expensive. A possible alternative might be
-to use only the first <i>k</i> characters of the string, where
-</p>
-
-<p>
- k <sup>|S|</sup> &ge; m ,
-</p>
-<p>
- <i>i.e.</i>, using the hash function
-</p>
-<p>
- <a name="eqn:only_k_string_dna_hash"><i>f<sub>2</sub>(s, m) = &sum; <sub>i = 0</sub><sup>k
- - 1</sup> s<sub>i</sub> a<sup>i</sup> </i>mod <i>m </i></a>, (6)
-</p>
-<p>
- requiring scanning over only
-</p>
-<p>
- <i>k = </i>log<i><sub>4</sub>( m ) </i>
-</p>
-<p>
- characters.
-</p>
-<p>
- Other more elaborate hash-functions might scan <i>k</i> characters starting at
- a random position (determined at each resize), or scanning <i>k</i> random
- positions (determined at each resize), <i>i.e.</i>, using
-</p>
-<p>
- <i>f<sub>3</sub>(s, m) = &sum; <sub>i = r<sub>0</sub></sub><sup>r<sub>0</sub> + k - 1</sup>
- s<sub>i</sub> a<sup>i</sup> </i>mod <i>m </i>,
-</p>
-<p>
- or
-</p>
-<p>
- <i>f<sub>4</sub>(s, m) = &sum; <sub>i = 0</sub><sup>k - 1</sup> s<sub>r<sub>i</sub></sub>
- a<sup>r<sub>i</sub></sup> </i>mod <i>m </i>,
-</p>
-<p>
-<p>
- respectively, for <i>r<sub>0</sub>,..., r<sub>k-1</sub></i> each in the
- (inclusive) range <i>[0,...,t-1]</i>.
-</p>
-
-
-<h3><a name="pb_assoc_imp">Implementation in <tt>pb_assoc</tt></a></h3>
-
-<p>
-<a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a> is
-parameterized by <tt>Hash_Fn</tt> and <tt>Comb_Hash_Fn</tt>, a hash functor
-and a combining hash functor, respectively.
-</p>
-
-<p>
- For any hash functor except <a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>,
-one of the
-<a href = "concepts.html#concepts_null_policies">Concepts::Null Policy Classes</a>,
-then <tt>Comb_Hash_Fn</tt> is considered a range-hashing functor.
-The container will synthesize a ranged-hash functor from both. For example, Figure
-<a href = "#hash_range_hashing_seq_diagram">
-Insert hash sequence diagram
-</a>
-shows an <tt>insert</tt> sequence diagram. The user inserts an element (point A),
-the container transforms the key into a non-negative integral using the hash
-functor (points B and C), and transforms the result into a position
-using the combining functor (points D and E).
-</p>
-
-<h6 align = "center">
-<a name = "hash_range_hashing_seq_diagram">
-<img src = "hash_range_hashing_seq_diagram.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert hash sequence diagram.
-</h6>
-
-
-<p>
- <tt>pb_assoc</tt> contains the following range-hashing policies:
-</p>
-
-<ol>
- <li>
-<a href = "direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
-and
-<a href = "direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
-are range-hashing functions based on a bit-mask and a modulo operation, respectively.
- </li>
-</ol>
-
-
-<p>
- If <tt>Comb_Hash_Fn</tt> is instantiated by
-<a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>,
-and a combining-hash functor, the container treats
-the combining hash functor as a ranged-hash function. For example, Figure
-<a href = "#hash_range_hashing_seq_diagram2">
-Insert hash sequence diagram with a null combination policy
-</a>
-shows an <tt>insert</tt> sequence diagram. The user inserts an element (point A),
-the container transforms the key into a position
-using the combining functor (points B and C).
-</p>
-
-
-<h6 align = "center">
-<a name = "hash_range_hashing_seq_diagram2">
-<img src = "hash_range_hashing_seq_diagram2.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert hash sequence diagram with a null combination policy.
-</h6>
-
-<p>
- Similarly,
-<a href = "gp_hash_assoc_cntnr.html"></a><tt>gp_hash_assoc_cntnr</tt>
-is parameterized by <tt>Hash_Fn</tt>, <tt>Probe_Fn</tt>, and
-<tt>Comb_Probe_Fn</tt>. As before, if <tt>Probe_Fn</tt>
-and <tt>Comb_Probe_Fn</tt> are, respectively,
-<a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a> and
-<a href = "null_probe_fn.html"><tt>null_probe_fn</tt></a>,
-then <tt>Comb_Probe_Fn</tt> is a ranged-probe functor. Otherwise, <tt>Hash_Fn</tt>
-is a hash functor, <tt>Probe_Fn</tt> is a functor for offsets from a hash value,
-and <tt>Comb_Probe_Fn</tt> transforms a probe sequence into a sequence of positions
-within the table.
-</p>
-
-<p>
- <tt>pb_assoc</tt> contains the following probe policies:
-</p>
-
-<ol>
- <li>
-<a href = "linear_probe_fn.html"><tt>linear_probe_fn</tt></a> is a linear probe
-function.
- </li>
- <li>
-<a href = "quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a> is
-a quadratic probe function.
- </li>
-</ol>
-
-
-
-
-
-
-
-
-
-<h2><a name = "resize_policies">Resize Policies</a></h2>
-
-<p>
- This subsection describes resize policies. It is organized as follows:
-</p>
-
-<ol>
- <li> <a href = "#general">General Terms</a> describes general
- terms.
- </li>
- <li> <a href = "#size_policies">Size Policies</a> describes size
- policies.
- </li>
- <li> <a href = "#trigger_policies">Trigger Policies</a> describes trigger
- policies.
- </li> <li> <a href = "#imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a>
- describes the implementation of these concepts in <tt>pb_assoc</tt>.
- </li>
-</ol>
-
-
-<h3><a name = "general">General Terms</a></h3>
-
-<p>
- Hash-tables, as opposed to trees, do not naturally grow or shrink. It
-is necessary to specify policies to determine how and when a hash table should change
-its size.
-</p>
-
-<p>
- In general, resize policies can be decomposed into (probably orthogonal)
-policies:
-</p>
-<ol>
- <li> A <i>size policy</i> indicating <i>how</i> a hash table should
-grow (<i>e.g.,</i> it should multiply by powers of 2).
- </li>
- <li> A <i>trigger policy</i> indicating <i>when</i> a hash table should
-grow (<i>e.g.,</i> a load factor is exceeded).
- </li>
-</ol>
-
-
-
-<h3><a name = "size_policies">Size Policies</a></h3>
-
-<p>
- Size policies determine how a hash table
-changes size. These policies are simple, and there are relatively
-few sensible options. An exponential-size policy (with the initial
-size and growth factors both powers of 2) works well with a
-mask-based range-hashing function (see the <a href = "hash_policies.html#hash_policies_range_hashing_policies">Range-Hashing Policies</a> subsection),
-and is the
-hard-wired policy used by Dinkumware
-[<a href = "references.html#dinkumware_stl">dinkumware_stl</a>]. A
-prime-list based policy works well with a modulo-prime range
-hashing function (see the <a href = "hash_policies.html#hash_policies_range_hashing_policies">Range-Hashing Policies</a> subsection),
-and is the
-hard-wired policy used by SGI's implementation
-[<a href = "references.html#sgi_stl">sgi_stl</a>].
-</p>
-
-
-
-
-<h3><a name = "trigger_policies">Trigger Policies</a></h3>
-
-<p>
- Trigger policies determine when a hash table changes size.
-Following is a description of two polcies: <i>load-check</i>
-policies, and a collision-check policies.
-</p>
-
-<p>
- Load-check policies are straightforward. The user
-specifies two factors, <i>&alpha;<sub>min</sub></i> and <i>&alpha;<sub>max</sub></i>, and
-the hash table maintains the invariant that
-</p>
-<p>
- <i>
- <a name = "eqn:load_factor_min_max">
- &alpha;<sub>min</sub>
- &le;
- (number of stored elements) / (hash-table size)
- &le;
- &alpha;<sub>max</sub>
- </a>
- </i>
- (1)
- .
-</p>
-
-<p>
- Collision-check policies work in the opposite direction of
-load-check policies. They focus on keeping the number of
-collisions moderate and hoping
-that the size of the table will not grow very large,
-instead of keeping a moderate load-factor and
-hoping that the number of collisions will be small.
-A
-maximal collision-check policy resizes when the shortest
-probe-sequence grows too large.
-</p>
-
-
-<p>
- Consider Figure
-<a href = "#balls_and_bins">Balls and bins</a>.
- Let the size of the hash table be denoted by <i>m</i>, the
-length of a probe sequence be denoted by <i>k</i>, and some load
-factor be denoted by &alpha;. We would like to calculate the
-minimal length of <i>k</i>, such that if there were <i>&alpha; m</i> elements
-in the hash table, a probe sequence of length <i>k</i> would be found
-with probability at most <i>1/m</i>.
-</p>
-
-<h6 align = "center">
-<a name = "balls_and_bins">
-<img src = "balls_and_bins.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Balls and bins.
-</h6>
-
-
-<p>
- Denote the probability that a probe sequence of length <i>k</i>
-appears in bin <i>i</i> by <i>p<sub>i</sub></i>, the length of the probe sequence
-of bin <i>i</i> by <i>l<sub>i</sub></i>, and assume uniform distribution.
-Then
-</p>
- <p>
- <a name = "eqn:prob_of_p1">
- <i>p<sub>1</sub>
- = </i>(3)
- </a>
- </p>
- <p>
- <i>
- <b>P</b>(l<sub>1</sub> &ge; k)
- =
- </i>
- </p>
- <p>
- <i><b>P</b>(l<sub>1</sub> &ge; &alpha; ( 1 + k / &alpha; - 1 )
- &le; </i>(a)
- </p>
- <p>
- <i>
- e
- ^
- (
- -
- (
- &alpha; ( k / &alpha; - 1 )<sup>2</sup>
- )
- /2
- )
- </i>
- ,
-</p>
-<p>
- where (a) follows from the Chernoff bound
-[<a href = "references.html#motwani95random">motwani95random</a>].
-To
-calculate the probability that <i>some</i> bin contains a probe
-sequence greater than <i>k</i>, we note that the <i>l<sub>i</sub></i> are
-negatively-dependent
-[<a href = "references.html#dubhashi98neg">dubhashi98neg</a>].
-Let <i><b>I</b>(.)</i>
-denote the indicator function. Then
- <p>
- <a name = "eqn:at_least_k_i_n_some_bin">
- <i><b>P</b>( exists<sub>i</sub> l<sub>i</sub> &ge; k )
- = </i>(3)
- </a>
- </p>
- <p>
- <i>
- <b>P</b>
- (
- &sum; <sub>i = 1</sub><sup>m</sup>
- <b>I</b>(l<sub>i</sub> &ge; k) &ge; 1
- )
- =
- </i>
- </p>
- <p>
- <i>
- <b>P</b>
- (
- &sum; <sub>i = 1</sub><sup>m</sup>
- <b>I</b>
- (
- l<sub>i</sub> &ge; k
- )
- &ge;
- m p<sub>1</sub> ( 1 + 1 / (m p<sub>1</sub>) - 1 )
- )
- &le; </i>(a)
- </p>
- <p>
- <i>
- e
- ^
- (
- (
- -
- m p<sub>1</sub>
- (
- 1 / (m p<sub>1</sub>) - 1
- )
- <sup>2</sup>
- )
- /
- 2
- )
- ,
- </i>
- </p>
-<p>
-where (a) follows from the fact that the Chernoff bound can be
-applied to negatively-dependent variables
-[<a href = "references.html#dubhashi98neg">dubhashi98neg</a>].
-Inserting <a href = "#prob_of_p1">(2)</a> into
-<a href = "#at_least_k_i_n_some_bin">(3)</a>, and equating with <i>1/m</i>,
-we obtain
-</p>
-<p>
- <i>
- k
- ~
- &radic;
- (
- 2 &alpha; </i>ln<i> 2 m </i>ln<i>(m) )
- )
- </i>
- .
-</p>
-
-
-
-
-
-
-
-
-
-<h3><a name = "imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a></h3>
-
-<p>
- The resize policies in the previous subsection are conceptually straightforward. The design
-of hash-based containers' size-related interface is complicated by some factors.
-</p>
-<ol>
- <li> Most containers, <i>i.e.</i> lists, trees, and vectors, have a single "size" concept. There is no
-distinction between the number of entries the container holds and the number of entries it is using. This,
-of course, is not the case for hash-based containers. Moreover, even describing the
-"actual" size of a hash-based container (as opposed to its logical size) is difficult - a probing-based container
-holds entries to elements, even those it does not use, while a chaining-based container holds pointers to entries.
- </li>
- <li>
- The policies mentioned above operate in terms of invariants. <i>E.g.</i> a load-check trigger policy
-maintains an invariant concerning the load factor of a container object. This is sometimes too rigid:
- <ol>
- <li>In some cases it is desirable to allow controlled override of an entire policy, <i>e.g.</i> by externally resizing a container object (or giving it an initial size, which is a special case of externally resizing the container).
- </li>
- <li>
- In other cases it is desirable to allow changing the specifics of a policy in runtime, <i>e.g.</i>, changing the load factors of a load-check policy.
- </li>
- </ol>
- </li>
- <li>
- Resize policies interact strongly with hash policies. Performance-wise, for example, it is undesirable to use an exponential size policy of powers of two with a modulo range-hashing function, and it is undesirable to use a prime size policy with a mask range-hashing function. In other cases, the effects are more dramatic. For example, using a quadratic probe function with an exponential size policy will probably cause cases where the container object has available entries which are never reached by the probe function. (<a href = "hash_policies.html">Hash Policies</a>
-discusses the previous concepts.)
- </li>
-</ol>
-
-<p>
- Clearly, the more of these points an interface addresses, the greater its flexibility but the lower its encapsulation and uniformity between associative containers.
-</p>
-
-
-
-<p>
- This library attempts to address these types of problems by delegating all size-related functionality to
-policy classes. Hash-based containers
-are parameterized by a resize-policy class (among others), and derive publicly from
-the resize-policy class
-[<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>]
- <i>E.g.</i>, a collision-chaining
-hash table is defined as follows:
-</p>
-<pre>
-cc_ht_map&lt;
- <b>class</b> Key,
- <b>class</b> Data,
- ...
- <b>class</b> Resize_Policy
- ...&gt; :
- <b>public</b> Resize_Policy
-</pre>
-
-<p>
- The containers themselves lack any functionality or public interface for manipulating sizes. A container
-object merely forwards events to its resize policy object and queries it for needed actions.
-</p>
-
-<p>
- Figure
-<a href = "#insert_resize_sequence_diagram1">
-Insert resize sequence diagram
-</a>
-shows a (possible) sequence diagram of an insert operation.
-The user inserts an element; the hash table
-notifies its resize policy that a search has started (point A);
-in this case, a single collision is encountered - the table
-notifies its resize policy of this (point B); the container
-finally notifies its resize policy that the search has ended (point C);
-it then queries its resize policy whether a resize is needed, and if so,
-what is the new size (points D to G); following the resize, it notifies
-the policy that a resize has completed (point H); finally, the element
-is inserted, and the policy notified (point I).
-</p>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram1">
-<img src = "insert_resize_sequence_diagram1.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert resize sequence diagram.
-</h6>
-
-<p>
- This addresses, to some extent, the problems mentioned above:
-</p>
-<ol>
- <li>
- Different instantiations of range-hashing policies can be met with different instantiations of
- resize policies.
- </li>
- <li>
- Questions on size-related interface are avoided, since the containers have no size-related methods. Thus
- a container has no method for querying its actual size. It merely continuously forwards enough information to
- its resize policy to answer such queries; the designer of the resize policy can decide whether, or how, to design the appropriate method. Also, a container has no methods for setting its size. It merely queries its
-resize policy for an initial size, queries it on a new size (if the resize policy indicates a resize is needed), and
-supports a <tt><b>protected virtual</b></tt> function for external resize.
- </li>
-</ol>
-
-<p>
- The library contains a single class for instantiating a resize policy,
-<tt>pb_assoc</tt> contains
-a standard resize policy,
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a> (the name is explained shortly).
-In terms of interface, it is parameterized by a boolean constant indicating whether its public interface supports
-queries of actual size and external resize operations (the inclusion and exclusion of these methods in the interface have obvious tradeoffs in terms of encapsulation and flexibility).
-([<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>] shows many techniques for
-changing between alternative interfaces at compile time.)
-</p>
-
-<p>
-As noted before,
- size and trigger policies are usually orthogonal.
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
-is parameterized by size and trigger policies. For example,
-a collision-chaining hash table
-is typically be defined as follows:
-</p>
-<pre>
-cc_ht_map&lt;
- key,
- data,
- ...
- hash_standard_resize_policy&lt;
- some_trigger_policy,
- some_size_policy,
- ...&gt; &gt;
-</pre>
-
-<p>
- The sole function of
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
- is to
-act as a standard delegator
-[<a href = "references.html#gamma95designpatterns">gamma95designpatterns</a>] for these
-policies.
-
-<p>
- Figures
-<a href = "#insert_resize_sequence_diagram2">Standard resize policy trigger sequence diagram</a>
- and
-<a href = "#insert_resize_sequence_diagram3">Standard resize policy size sequence diagram</a>
- show sequence diagrams illustrating the interaction between
- the standard resize policy and its trigger and size policies, respectively.
-</p>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram2">
-<img src = "insert_resize_sequence_diagram2.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Standard resize policy trigger sequence diagram.
-</h6>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram3">
-<img src = "insert_resize_sequence_diagram3.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Standard resize policy size sequence diagram.
-</h6>
-
-<p>
- The library (currently) supports the following instantiations of size
-and trigger policies:
-</p>
-
-<ol>
- <li>
- <a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a> implements
- a load check trigger policy.
- </li>
- <li>
- <a href = "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>
- implements a collision check trigger policy.
- </li>
- <li>
-<a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a> implemens
-an exponential-size policy (which should be used with mask range hashing).
- </li>
- <li>
-<a href = "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a> implementing
-a size policy based on a sequence of primes
-[<a href = "references.html#sgi_stl">sgi_stl</a>] (which should be used with mod range hashing
- </li>
-</ol>
-
-<p>
- The trigger policies also support interfaces for changing their specifics which depend on compile time constants.
-</p>
-
-
-<p>
- Figure
-<a href = "#resize_policy_cd">Resize policy class diagram</a> gives an overall picture
-of the resize-related classes.
-<tt>Container</tt> (which stands for any of the hash-based containers) is parameterized
-by <tt>Resize_Policy</tt>, from which it subclasses publicly
-[<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>].
-This class is currently instantiated only by
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>.
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a> itself
-is parameterized by <tt>Trigger_Policy</tt> and <tt>Size_Policy</tt>.
-Currently, <tt>Trigger_Policy</tt> is instantiated by
-<a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>,
-or
-<a href = "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>; <tt>Size_Policy</tt> is instantiated by
-<a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>,
-or
-<a href = "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>.
-</p>
-
-
-<h6 align = "center">
-<a name = "resize_policy_cd">
-<img src = "resize_policy_cd.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Resize policy class diagram.
-</h6>
-
-
-
-
-<h2><a name = "#policy_interaction">Policy Interaction</a></h2>
-
-<p>
- Hash-tables are unfortunately susceptible to choice of policies. One
-of the more complicated aspects of this is that poor combinations of good policies
-can alter performance drastically. Following are some considerations.
-</p>
-
-
-
-
-
-<h3>Range-Hashing Policies and Resize Policies</h3>
-
-<p>
-</p>
-
-
-<h3>Equivalence Functors, Storing Hash Values, and Hash Functions</h3>
-
-
-<p>
-<a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a>
-and
-<a href = "gp_hash_assoc_cntnr.html"><tt>gp_hash_assoc_cntnr</tt></a>
-are parameterized by an equivalenc functor and by a <tt>Store_Hash</tt>
-parameter. If the latter parameter is <tt><b>true</b></tt>, then
-the container stores with each entry a hash value, and uses
-this value in case of collisions to determine whether to apply a hash value.
-This can lower the cost of collision for some types, but increase the cost of collisions for other types.
-</p>
-
-<p>
- If a ranged-hash function or ranged probe function is directly supplied, however,
-then it makes no sense to store the hash value with each entry. <tt>pb_assoc</tt>'s container will fail at compilation, by design, if this is attempted.
-</p>
-
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/hash_cd.jpg
deleted file mode 100644
index 6c26a177..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_exponential_size_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_exponential_size_policy.html
deleted file mode 100644
index f0fc5a7..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_exponential_size_policy.html
+++ /dev/null
@@ -1,267 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>hash_exponential_size_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>hash_exponential_size_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A size policy whose sequence of sizes form an exponential sequence (typically powers of 2)
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructors, and related methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Size methods
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructors, and related methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> hash_exponential_size_policy
- (<a href = "#size_type3735929547">size_type</a> start_size = 8,
- <a href = "#size_type3735929547">size_type</a> grow_factor = 2)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor, or onstructor taking a <font color = "#666666"><tt>start_size</tt></font>, a start size and <font color = "#666666"><tt>grow_factor</tt></font>, a growth factor. The policy will use the sequence of sizes <font color = "#666666"><tt>start_size</tt></font>, <font color = "#666666"><tt>start_size</tt></font> * <font color = "#666666"><tt>grow_factor</tt></font>, <font color = "#666666"><tt>start_size</tt></font> * <font color = "#666666"><tt>grow_factor</tt></font>^2, ...</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">hash_exponential_size_policy</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Size methods
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#size_type3735929547">size_type</a>
- get_init_size
- (<a href = "#size_type3735929547">size_type</a> suggested_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size, returns an initial size of the container related to the initial size.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#size_type3735929547">size_type</a>
- get_nearest_larger_size
- (<a href = "#size_type3735929547">size_type</a> cur_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>cur_size</tt></font>, the current size, returns a size that is larger.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#size_type3735929547">size_type</a>
- get_nearest_smaller_size
- (<a href = "#size_type3735929547">size_type</a> cur_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>cur_size</tt></font>, the current size, returns a size that is smaller.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_fn.html
deleted file mode 100644
index 6ef435b..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_fn.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Hash Functions</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Hash Functions</h1>
-
-<p>
-A hash function is essentially an <tt>std::unary_operator</tt>. It takes a
-<a href = "key_type_defs.html"><tt>const_key_reference</tt></a>, and returns
-a (non-negative) integral type.
-</p>
-
-<p>
- A special hash function, <a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>
-serves to indicate that the <a href = "hash_policies.html">ranged-hash</a> function
-or <a href = "hash_policies.html">ranged-probe</a> function should not be formed by composition.
-</p>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_load_check_resize_trigger.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_load_check_resize_trigger.html
deleted file mode 100644
index 6670d69..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_load_check_resize_trigger.html
+++ /dev/null
@@ -1,744 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>hash_load_check_resize_trigger Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>hash_load_check_resize_trigger
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A resize trigger policy based on a load check. It keeps the load factor between some load factors load_min and load_max.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Load access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link5">Insert search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Find search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Erase search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Content change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Size change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Queries.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "External_Load_Access3735929540">External_Load_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Specifies whether the load factor can be accessed externally. The two options have different tradeoffs in terms of flexibility, genericity, and encapsulation.</p>
-
-
-</td>
-
-<td>
-<tt><b>false</b></tt>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "external_load_access3735929604">external_load_access</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#External_Load_Access3735929540">External_Load_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether loads can be accessed externally</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> hash_load_check_resize_trigger
- (float load_min = 0.125,
- float load_max = 0.5)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor, or constructor taking <font color = "#666666"><tt>load_min</tt></font> and <font color = "#666666"><tt>load_max</tt></font> load factors between which this policy will keep the actual load.</p>
-
-
-<p>It is the responsibility of the user to ensure that <font color = "#666666"><tt>load_min</tt></font> is smaller than <font color = "#666666"><tt>load_max</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">hash_load_check_resize_trigger</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> <b>virtual</b>
- ~hash_load_check_resize_trigger
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Load access methods.
-</a>
-
-</h2>
-
-<p> These methods are only available if the external access parameter is set.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> std::pair&lt;float, float&gt;
- get_loads
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a pair of the minimal and maximal loads, respectively.</p>
-
-
-<p>Calling this method will not compile when <a href = "#External_Load_Access3735929540"><tt>External_Load_Access</tt></a> == <tt><b>false</b></tt>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- set_loads
- (std::pair&lt;float, float&gt; load_pair)</pre>
-
-
-</td>
-
-<td>
-<p>Sets the loads through a pair of the minimal and maximal loads, respectively.</p>
-
-
-<p>Calling this method resizes the container, and might throw an exception. It is the responsibility of the user to pass appropriate loads to this function. Calling this method will not compile when <a href = "#External_Load_Access3735929540"><tt>External_Load_Access</tt></a> == <tt><b>false</b></tt>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Insert search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Find search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during a find operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Erase search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Content change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the content of the table changes in a way that can affect the resize policy.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_inserted
- (<a href = "#size_type3735929547">size_type</a> num_entries)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was inserted. the total number of entries in the table is <font color = "#666666"><tt>num_entries</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erased
- (<a href = "#size_type3735929547">size_type</a> num_entries)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_cleared
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was cleared.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Size change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the table changes size.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_resized
- (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized as a result of this object's signifying that a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_externally_resized
- (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized externally.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Queries.
-</a>
-
-</h2>
-
-<p>Called to query whether/how to resize.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- is_resize_needed
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- is_grow_needed
- (<a href = "#size_type3735929547">size_type</a> size,
- <a href = "#size_type3735929547">size_type</a> num_entries) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a grow is needed.</p>
-
-
-<p>This method is called only if this object indicated resize is needed. The actual <font color = "#666666"><tt>size</tt></font> of the table is <font color = "#666666"><tt>size</tt></font>, and the number of entries in it is <font color = "#666666"><tt>num_entries</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- is_shrink_needed
- (<a href = "#size_type3735929547">size_type</a> size,
- <a href = "#size_type3735929547">size_type</a> num_entries) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a shrink is needed.</p>
-
-
-<p>This method is called only if this object indicated resize is needed. The actual <font color = "#666666"><tt>size</tt></font> of the table is <font color = "#666666"><tt>size</tt></font>, and the number of entries in it is <font color = "#666666"><tt>num_entries</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_policies.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_policies.html
deleted file mode 100644
index c5bc2aa..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_policies.html
+++ /dev/null
@@ -1,375 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
- <title>Hash Policies</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor="white">
-
-<h1>Hash Policies</h1>
-<p>
- This subsection describes hash policies. It is organized as follows:
-</p>
-<ol>
- <li> The <a href = "#general_terms">General Terms</a> Section describes
- some general terms.
- </li>
- <li> The <a href = "#range_hashing_fns">Range-Hashing Functions</a> Section
- describes range-hasing functions.</li>
- <li> The <a href = "#hash_policies_ranged_hash_policies">Ranged-Hash Functions</a> Section
- describes ranged-hash functions. </li>
- <li> The <a href = "#pb_assoc_imp">Implementation in <tt>pb_assoc</tt></a> Section
- describes the implementation of these concepts in <tt>pb_assoc</tt>.
- </li>
-</ol>
-
-
-<h2><a name="general_terms">General Terms</a></h2>
-
-<p>
- There
-are actually three functions involved in transforming a key into a hash-table's
-position (see Figure
-<a href = "#hash_ranged_hash_range_hashing_fns">
-Hash runctions, ranged-hash functions, and range-hashing functions
-</a>):
-</p>
-<ol>
- <li>
- A <i>ranged-hash</i> function, which maps keys into an interval of the
- non-negative integrals. This is the function actually required by the
- hash-table algorithm.
- </li>
- <li>
- A hash function, which maps keys into non-negative integral types. This is
- typically specified by the writer of the key class.
- </li>
- <li>
- A <i>range-hashing</i> function, which maps non-negative integral types into an
- interval of non-negative integral types.
- </li>
-</ol>
-
-<h6 align = "center">
-<a name = "hash_ranged_hash_range_hashing_fns">
-<img src = "hash_ranged_hash_range_hashing_fns.jpg" width = "40%" alt = "no image">
-</a>
-Hash runctions, ranged-hash functions, and range-hashing functions.
-</h6>
-
-<p>
- Let <i>U</i> be a domain (<i>e.g.</i>, the integers, or the strings of 3
- characters). A hash-table algorithm needs to map elements of <i>U</i> "uniformly"
- into the range <i>[0,..., m - 1]</i> (where <i>m</i> is a non-negative integral
- value, and is, in general, time varying). <i>I.e.</i>, the algorithm needs a <i>ranged-hash</i>
- function
-</p>
-<p>
- <i>f : U &times; Z<sub>+</sub> &rarr; Z<sub>+</sub> </i>,
-</p>
-<p>
- such that for any <i>u</i> in <i>U</i>
-,
-</p>
-<p>
- <i>0 &le; f(u, m) &le; m - 1 </i>,
-</p>
-<p>
- and which has "good uniformity" properties [<a href="references.html#knuth98sorting">knuth98sorting</a>].
- One common solution is to use the composition of the hash function
-</p>
-<p>
- <i>h : U &rarr; Z<sub>+</sub> </i>,
-</p>
-<p>
- which maps elements of <i>U</i> into the non-negative integrals, and
-</p>
-<p>
- <i>g : Z<sub>+</sub> &times; Z<sub>+</sub> &rarr; Z<sub>+</sub>, </i>
-</p>
-<p>
- which maps a non-negative hash value, and a non-negative range upper-bound into
- a non-negative integral in the range between 0 (inclusive) and the range upper
- bound (exclusive), <i>i.e.</i>, for any <i>r</i> in <i>Z<sub>+</sub></i>,
-</p>
-<p>
- <i>0 &le; g(r, m) &le; m - 1 </i>.
-</p>
-<p>
- The resulting ranged-hash function, is
-</p>
-<p>
- <i><a name="eqn:ranged_hash_composed_of_hash_and_range_hashing">f(u , m) = g(h(u), m) </a>
- </i>(1) .
-</p>
-
-<p>
- From the above, it is obvious that given <i>g</i> and <i>h</i>, <i>f</i> can
- always be composed (however the converse is not true).
-</p>
-
-
-<p>
- The above describes the case where a key is to be mapped into a <i>single
-position</i> within a hash table, <i>e.g.</i>, in a collision-chaining table.
-In other cases, a key is to be mapped into a <i>sequence of poisitions</i>
-within a table, <i>e.g.</i>, in a probing table.
-</p>
-<p>
- Similar terms apply in this case: the table requires a <i>ranged probe</i>
-function, mapping a key into a sequence of positions withing the table. This is
-typically acheived by composing a <i>hash function</i> mapping the key
-into a non-negative integral type, a <i>probe</i> function transforming the
-hash value into a sequence of hash values, and a <i>range-hashing</i> function
-transforming the sequence of hash values into a sequence of positions.
-</p>
-
-
-<h2><a name="range_hashing_fns">Range-Hashing Functions</a></h2>
-
-<p>
- Some common choices for range-hashing functions are the division,
- multiplication, and middle-square methods [<a href="references.html#knuth98sorting">knuth98sorting</a>],
- defined as
-</p>
-<p>
- <i><a name="eqn:division_method">g(r, m) = r mod m </a></i>(2) ,
-</p>
-<p>
- <i>g(r, m) = &lceil; u/v ( a r mod v ) &rceil; </i>,
-</p>
-<p>
- and
-</p>
-<p>
- <i>g(r, m) = &lceil; u/v ( r<sup>2</sup> mod v ) &rceil; </i>,
-</p>
-<p>
-respectively, for some positive integrals <i>u</i> and <i>v</i> (typically
-powers of 2), and some <i>a</i>. Each of these range-hashing functions works
-best for some different setting.
-</p>
-<p>
- The division method <a href="#division_method">(2)</a> is a very common
- choice. However, even this single method can be implemented in two very
- different ways. It is possible to implement <a href="#division_method">(2)</a>
- using the low level <i>%</i> (modulo) operation (for any <i>m</i>), or the low
- level <i>&amp;</i> (bit-mask) operation (for the case where <i>m</i> is a power of
- 2), <i>i.e.</i>,
-</p>
-<p>
- <i><a name="eqn:division_method_prime_mod">g(r, m) = r % m </a></i>(3) ,
-</p>
-<p>
- and
-</p>
-<p>
- <a name="eqn:division_method_bit_mask">
- <i>g(r, m) = r &amp; m - 1, ( m = 2<sup>k</sup>
- </i>
- for some<i> k) </i></a>(4) ,
-</p>
-<p>
- respectively.
-</p>
-<p>
- The <i>%</i> (modulo) implementation <a href="#division_method_prime_mod">(3)</a>
- has the advantage that for <i>m</i> a prime far from a power of 2, <i>g(r, m)</i>
- is affected by all the bits of <i>r</i> (minimizing the chance of collision).
- It has the disadvantage of using the costly modulo operation. This method is
- hard-wired into SGI's implementation [<a href="references.html#sgi_stl">sgi_stl</a>].
-</p>
-
-<p>
- The <i>&amp;</i> (bit-mask) implementation <a href="#division_method_bit_mask">(4)</a>
- has the advantage of relying on the fast bitwise and operation. It has the
- disadvantage that for <i>g(r, m)</i> is affected only by the low order bits of <i>r</i>.
- This method is hard-wired into Dinkumware's implementation [<a href="references.html#dinkumware_stl">dinkumware_stl</a>].
-</p>
-
-
-
-
-<h2><a name="hash_policies_ranged_hash_policies">Ranged-Hash Functions</a></h2>
-
-<p>
- Although rarer, there are cases where it is beneficial to allow the client to
-directly specify a ranged-hash hash function. It is true, that the writer of
-the ranged-hash function cannot rely on the values of <i>m</i> having specific
-numerical properties suitable for hashing (in the sense used in [<a href="references.html#knuth98sorting">knuth98sorting</a>]),
-since the values of <i>m</i> are determined by a resize policy with possibly
-orthogonal considerations [<a href="references.html#austern98segmented">austern98segmented</a>].
-The values of <i>m</i> can be used in some cases, though, to estimate the
-"general" number of distinct values required.
-</p>
-
-<p>
- Let
-</p>
-
-<p>
- <i>s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>] </i>
-</p>
-
-<p>
- be a string of <i>t</i> characters, each of which is from domain <i>S</i>.
-Consider the following ranged-hash function:
-</p>
-
-<p>
- <a name="eqn:total_string_dna_hash">
- <i>
- f<sub>1</sub>(s, m) =
- &sum; <sub>i =
- 0</sub><sup>t - 1</sup> s<sub>i</sub> a<sup>i</sup> </i>mod<i> m </i>
- </a> (5) ,
-</p>
-
-<p>
- where <i>a</i> is some non-negative integral value. This is the standard
-string-hashing function used in SGI's implementation (with <i>a = 5</i>) [<a href="references.html#sgi_stl">sgi_stl</a>].
-Its advantage is that it takes into account all of the characters of the
-string.
-</p>
-
-<p>
- Now assume that <i>s</i> is the string representation of a of a long DNA
-sequence (and so <i>S = {'A', 'C', 'G', 'T'}</i>). In this case, scanning the
-entire string might be prohibitively expensive. A possible alternative might be
-to use only the first <i>k</i> characters of the string, where
-</p>
-
-<p>
- k <sup>|S|</sup> &ge; m ,
-</p>
-<p>
- <i>i.e.</i>, using the hash function
-</p>
-<p>
- <a name="eqn:only_k_string_dna_hash"><i>f<sub>2</sub>(s, m) = &sum; <sub>i = 0</sub><sup>k
- - 1</sup> s<sub>i</sub> a<sup>i</sup> </i>mod <i>m </i></a>, (6)
-</p>
-<p>
- requiring scanning over only
-</p>
-<p>
- <i>k = </i>log<i><sub>4</sub>( m ) </i>
-</p>
-<p>
- characters.
-</p>
-<p>
- Other more elaborate hash-functions might scan <i>k</i> characters starting at
- a random position (determined at each resize), or scanning <i>k</i> random
- positions (determined at each resize), <i>i.e.</i>, using
-</p>
-<p>
- <i>f<sub>3</sub>(s, m) = &sum; <sub>i = r<sub>0</sub></sub><sup>r<sub>0</sub> + k - 1</sup>
- s<sub>i</sub> a<sup>i</sup> </i>mod <i>m </i>,
-</p>
-<p>
- or
-</p>
-<p>
- <i>f<sub>4</sub>(s, m) = &sum; <sub>i = 0</sub><sup>k - 1</sup> s<sub>r<sub>i</sub></sub>
- a<sup>r<sub>i</sub></sup> </i>mod <i>m </i>,
-</p>
-<p>
-<p>
- respectively, for <i>r<sub>0</sub>,..., r<sub>k-1</sub></i> each in the
- (inclusive) range <i>[0,...,t-1]</i>.
-</p>
-
-
-<h2><a name="pb_assoc_imp">Implementation in <tt>pb_assoc</tt></a></h2>
-
-<p>
- Containers based on collision-chaining hash tables in <tt>pb_assoc</tt>
-are parameterized by the functors <tt>Hash_Fn</tt>, and <tt>Comb_Hash_Fn</tt>.
-</p>
-
-<p>
- If such a container is instantiated with any hash functor and
-range-hashing functor, the container will synthesize a ranged-hash functor
-automatically. For example, Figure
-<a href = "#hash_range_hashing_seq_diagram">
-Insert hash sequence diagram
-</a>
-shows an <tt>insert</tt> sequence diagram. The user inserts an element (point A),
-the container transforms the key into a non-negative integral using the hash
-functor (points B and C), and transforms the result into a position
-using the combining functor (points D and E).
-</p>
-
-<h6 align = "center">
-<a name = "hash_range_hashing_seq_diagram">
-<img src = "hash_range_hashing_seq_diagram.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert hash sequence diagram.
-</h6>
-
-
-<p>
- If such a container is instantiated with the
-<a href = "concepts.html#concepts_null_policies">null policy</a>
-hash functor,
-<a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>,
-and a combining-hash functor, the container treats
-the combining hash functor as a ranged-hash function. For example, Figure
-<a href = "#hash_range_hashing_seq_diagram2">
-Insert hash sequence diagram with a null combination policy
-</a>
-shows an <tt>insert</tt> sequence diagram. The user inserts an element (point A),
-the container transforms the key into a position
-using the combining functor (points B and C).
-</p>
-
-
-<h6 align = "center">
-<a name = "hash_range_hashing_seq_diagram2">
-<img src = "hash_range_hashing_seq_diagram2.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert hash sequence diagram with a null combination policy.
-</h6>
-
-<p>
- <tt>pb_assoc</tt> contains the following hash-related policies:
-</p>
-
-<ol>
- <li>
-<a href = "direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
-and
-<a href = "direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
-are range-hashing functions based on a bit-mask and a modulo operation, respectively.
- </li>
- <li>
-<a href = "linear_probe_fn.html"><tt>linear_probe_fn</tt></a> and
-<a href = "quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a> are probe
-classes based on linear and quadratic increment, respectively.
- </li>
- <li>
-<a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>
-and
-<a href = "null_probe_fn.html"><tt>null_probe_fn</tt></a>
-are
-<a href = "concepts.html#concepts_null_policies">null policy classes</a> for creating
-ranged-hash and ranged-probe functions directly (<i>i.e.</i>, not through
-composition).
- </li>
-</ol>
-
-<p>
- <tt>pb_assoc</tt> does not provide any hash functions (it relies on those
-of the STL).
-</p>
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_policy_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/hash_policy_cd.jpg
deleted file mode 100644
index c5d2290..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_policy_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_prime_size_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_prime_size_policy.html
deleted file mode 100644
index 5b6d0ac..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_prime_size_policy.html
+++ /dev/null
@@ -1,211 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>hash_prime_size_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>hash_prime_size_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A size policy whose sequence of sizes form a nearly-exponential sequence of primes.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link1">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Size methods
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre>size_t</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- swap
- (<font color = "olive">hash_prime_size_policy</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Size methods
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- get_init_size
- (<a href = "#size_type3735929547">size_type</a> suggested_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size, returns an initial size of the container related to the initial size.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- get_nearest_larger_size
- (<a href = "#size_type3735929547">size_type</a> cur_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>cur_size</tt></font>, the current size, returns a size that is larger.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- get_nearest_smaller_size
- (<a href = "#size_type3735929547">size_type</a> cur_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>cur_size</tt></font>, the current size, returns a size that is smaller.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram.jpg
deleted file mode 100644
index f675cea..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram2.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram2.jpg
deleted file mode 100644
index a292d5a..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram2.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_ranged_hash_range_hashing_fns.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/hash_ranged_hash_range_hashing_fns.jpg
deleted file mode 100644
index ba5f6cd..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_ranged_hash_range_hashing_fns.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_standard_resize_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_standard_resize_policy.html
deleted file mode 100644
index 151ecfc..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_standard_resize_policy.html
+++ /dev/null
@@ -1,986 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>hash_standard_resize_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>hash_standard_resize_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A resize policy which delegates operations to size and trigger policies.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">General definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link5">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Policy access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Size access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link8">Insert search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Find search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Erase search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Content change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link12">Size change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link13">Queries.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Policy3735929689">Size_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Size policy type.</p>
-
-
-</td>
-
-<td>
-<a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy&lt;&gt;</tt></a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Trigger_Policy3735930002">Trigger_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Trigger policy type.</p>
-
-
-</td>
-
-<td>
-<a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger&lt;&gt;</tt></a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "External_Size_Access3735929535">External_Size_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether physical sizes can be accessed externally.</p>
-
-
-</td>
-
-<td>
-<tt><b>false</b></tt>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Size_Policy3735929689">Size_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#Trigger_Policy3735930002">Trigger_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "trigger_policy3735930066">trigger_policy</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Trigger_Policy3735930002">Trigger_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Trigger policy type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "size_policy3735929753">size_policy</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Policy3735929689">Size_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Size policy type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "external_size_access3735929599">external_size_access</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#External_Size_Access3735929535">External_Size_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether sizes can be accessed externally.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> hash_standard_resize_policy
- (<a href = "#size_type3735929547">size_type</a> suggested_size = 8)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor, or constructor taking <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> hash_standard_resize_policy
- (<b>const</b> <a href = "#Size_Policy3735929689">Size_Policy</a> &amp;r_size_policy,
- <a href = "#size_type3735929547">size_type</a> suggested_size = 8)</pre>
-
-
-</td>
-
-<td>
-<p>constructor taking some policies and <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object). <font color = "#666666"><tt>r_size_policy</tt></font> will be copied by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object of this object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> hash_standard_resize_policy
- (<b>const</b> <a href = "#Size_Policy3735929689">Size_Policy</a> &amp;r_size_policy,
- <b>const</b> <a href = "#Trigger_Policy3735930002">Trigger_Policy</a> &amp;r_trigger_policy,
- <a href = "#size_type3735929547">size_type</a> suggested_size = 8)</pre>
-
-
-</td>
-
-<td>
-<p>constructor taking some policies and <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object). <font color = "#666666"><tt>r_size_policy</tt></font> will be copied by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object of this object. <font color = "#666666"><tt>r_trigger_policy</tt></font> will be copied by the <a href = "#Trigger_Policy3735930002"><tt>Trigger_Policy</tt></a> object of this object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~hash_standard_resize_policy
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- swap
- (<font color = "olive">hash_standard_resize_policy</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Size_Policy3735929689">Size_Policy</a> &amp;
- get_size_policy
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object used.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#Size_Policy3735929689">Size_Policy</a> &amp;
- get_size_policy
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object used.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#Trigger_Policy3735930002">Trigger_Policy</a> &amp;
- get_trigger_policy
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#Trigger_Policy3735930002"><tt>Trigger_Policy</tt></a> object used.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#Trigger_Policy3735930002">Trigger_Policy</a> &amp;
- get_trigger_policy
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#Trigger_Policy3735930002"><tt>Trigger_Policy</tt></a> object used.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Size access methods.
-</a>
-
-</h2>
-
-<p>These methods are available only if the external size parameter indicates that external size access is allowed.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- get_actual_size
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the actual size of the container.</p>
-
-
-<p>This method returns the number of entries (used and unused) in the container. It is different from the container's size method, which returns the number of used entries. Calling this method will not compile when <a href = "#External_Size_Access3735929535"><tt>External_Size_Access</tt></a> == <tt><b>false</b></tt>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- resize
- (<a href = "#size_type3735929547">size_type</a> suggested_new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Resizes the container to <font color = "#666666"><tt>suggested_new_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object).</p>
-
-
-<p>Calling this method will not compile when <a href = "#External_Size_Access3735929535"><tt>External_Size_Access</tt></a> == <tt><b>false</b></tt>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Insert search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Find search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during a find operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Erase search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Content change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the content of the table changes in a way that can affect the resize policy.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_inserted
- (<a href = "#size_type3735929547">size_type</a> num_e)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was inserted.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erased
- (<a href = "#size_type3735929547">size_type</a> num_e)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_cleared
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was cleared.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link12">Size change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the table changes size.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_resized
- (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized to <font color = "#666666"><tt>new_size</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link13">Queries.
-</a>
-
-</h2>
-
-<p>Called to query whether/how to resize.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#size_type3735929547">size_type</a>
- get_init_size
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries initial size.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- is_resize_needed
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#size_type3735929547">size_type</a>
- get_new_size
- (<a href = "#size_type3735929547">size_type</a> size, <a href = "#size_type3735929547">size_type</a> num_used_e) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries what the new <font color = "#666666"><tt>size</tt></font> should be.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/home.html b/libstdc++-v3/docs/html/ext/pb_assoc/home.html
deleted file mode 100644
index 79b8066..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/home.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>pb_assoc</TITLE>
-<META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-</HEAD>
-<BODY>
-<h1>
- <tt>pb_assoc</tt> -
- Policy Based Associative Containers
-</h1>
-
- <h5>Ami Tavory and Vladimir Dreizin, IBM Haifa Research Laboratories,
- and Benjamin Kosnik, Red Hat
- </h5>
-
- <h5>
- <a href = "mailto:pbassoc@gmail.com">pbassoc@gmail.com</a>
- </h5>
-
-<p>
-</p>
-
-<p>
- The <tt>pb_assoc</tt> library is a library of policy-based associative
-containers, designed for high-performance, flexibility, and semantic safety.
-</p>
-
-<p>The documentation is organized as follows.
-</p>
-<ol>
- <li> The <a href = "introduction.html">Introduction</a> Section describes the problems which this library tries to address.</li>
- <li>The <a href = "motivation.html">Motivation</a> Section describes and motivates
-the main differences between this library and the STL's associative containers.</li>
- <li>The <a href = "design.html">Design</a> Section describes the design.
- <ol>
- <li> <a href = "overview.html">Overview</a> describes an overview.</li>
- <li> <a href = "ds_gen.html">Data-Structure Genericity</a> discusses generic manipulation of containers based on different underlying data-structures.</li>
- <li> <a href = "ms_gen.html">Mapping-Semantic Genericity</a> discusses generic manipulation of containers with different mapping semantics.</li>
- <li> <a href = "hash_based_containers.html">Hash-Based Containers</a> describes the design and policies of hash-based containers.</li>
- <li> <a href = "tree_based_containers.html">Tree-Based Containers</a> describes the design and policies of tree-based containers.</li>
- <li> <a href = "lu_based_containers.html">List-Based Containers</a> describes the design and policies of list-based containers with update policies.</li>
- </ol>
- </li>
- <li> The <a href = "interface.html">Interface</a>
-Section provides links to the interfaces of the classes.
- </li>
- <li>The
-<a href = "examples.html">Examples</a> Section shows examples of using and extending
-the library.
- </li>
-</ol>
-
-
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/index.html b/libstdc++-v3/docs/html/ext/pb_assoc/index.html
deleted file mode 100644
index 1e08641..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>pb_assoc</TITLE>
-<META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-</HEAD>
-
-<frameset cols = "15%, 85%">
- <frame src = "toc.html">
- <frame src = "home.html" name = "content">
-</frameset>
-
-</HTML> \ No newline at end of file
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram1.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram1.jpg
deleted file mode 100644
index 6e8a94d..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram1.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram2.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram2.jpg
deleted file mode 100644
index 4aa2c6c..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram2.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram3.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram3.jpg
deleted file mode 100644
index e7cadf1..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram3.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/insert_type_methods.html b/libstdc++-v3/docs/html/ext/pb_assoc/insert_type_methods.html
deleted file mode 100644
index 3687a5b..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/insert_type_methods.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Insert-type Methods</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h2>Insert-Type Methods</h2>
-<TABLE WIDTH="100%" BORDER="1" ID="Table1">
- <TR>
- <TD Width = "30%" ALIGN="left"><b>Method</b></TD>
- <TD Width = "50%" ALIGN="left"><b>Description</b></TD>
- <TD Width = "10%" ALIGN="left"><b>Complexity Guarantee</b></TD>
- <TD Width = "10%" ALIGN="left"><b>Exception Guarantee</b></TD>
- </TR>
- <TR>
- <TD ALIGN="left">
-<pre><b>inline</b> std::pair&lt;<a href = "find_iterator.html">find_iterator</a>, <b>bool</b>&gt;
- insert
- (<a href = "mapped_value_type_defs.html">const_mapped_reference</a> r_value)
-</pre>
- </TD>
- <TD ALIGN="left">Inserts <tt>r_value</tt> into the table. Writes only if an entry with an equivalent key does not exist. If the entry was written, returns
-<pre>std::make_pair(it, <b>true</b>)
-</pre> where <tt>it</tt> corresponds to the new entry;
- Otherwise, returns
-<pre>std::make_pair(<a href = "find_type_methods.html">find_end()</a>, <b>false</b>)
-</pre>.</TD>
- <TD ALIGN="left"><i>O(1)</i> average <p><i>O(m)</i> worst</p> <p>(<i>m</i> = #entries)</p> <p><sub><a href = "#mmap_complex">[1]</a></sub></p></TD>
- <TD ALIGN="left"><a href = "exception_guarantees_specifics.html#basic_guarantee">1</a>,<a href = "exception_guarantees_specifics.html#strong_guarantee">2</a></TD>
- </TR>
-</TABLE>
-
-<p>
-<a name = "mmap_complex">[1]</a> Note that for multimap types, the mapped data part is a collection, and so the average and worst case complexities
-need to be multiplied by the corresponding complexities of copying collections.
-</p>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/interface.html b/libstdc++-v3/docs/html/ext/pb_assoc/interface.html
deleted file mode 100644
index d5b5eb6..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/interface.html
+++ /dev/null
@@ -1,342 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
- <TITLE>Interface</TITLE>
- <META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-</HEAD>
-<BODY>
-
-<H1>Interface</H1>
-<p>
- Following is the library's interface:
-</p>
-<ol>
- <li> <a href = "tutorial.html">Short Tutorial</a> is a short tutorial. </li>
- <li> <a href="#containers">Containers</a> describes the containers of
-the library.
- </li>
- <li>
- <a href="#ds_pol">Data-Type Policies</a> describes data-type policies.
- </li>
- <li>
- <a href="#ds_tag">Data-Structure Tags and Traits</a> describes
- tags and traits identifying the underlying data-structure and its behaviour.
- </li>
- <li>
- <a href="#ms_tag">Mapping-Semantics Tags and Traits</a> describes
- tags and traits identifying the mapping-semantics.
- </li>
- <li>
- <a href = "#ds_policy_classes">Data-Structure Policy Classes</a> describes
- policies for configuring underlying data-structures.
- </li>
- <li>
- <a href="#exceptions">Exceptions</a> Subsection desribes exception classes.
- </li>
-</ol>
-
-
-<hr>
-
-
-
-<h2><a name = "containers">Containers</a></h2>
-
-<p>
-<a href = "overview.html">Overview</a> and
-<a href = "ds_gen.html">Data-Structure Genericity</a> discuss relevant design
-points.
-</p>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-class hierarchy.
-</h6>
-
-<ol>
- <li>
- Basic Associative-Containers:
- <ol>
- <li><a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a> - basic associative-container for the &quot;map&quot; case</li>
- <li><a href = "basic_assoc_cntnr_no_data.html"><tt>basic_assoc_cntnr</tt></a> - basic associative-container for the &quot;set&quot; case</li>
- <li><a href = "basic_assoc_cntnr_compound_data.html"><tt>basic_assoc_cntnr</tt></a> - basic associative-container for the &quot;multimap&quot; case</li>
- </ol>
- </li>
- <li>
- Hash-Based Associative-Containers:
- <ol>
- <li><a href = "basic_hash_assoc_cntnr.html"><tt>basic_hash_assoc_cntnr</tt></a> - basic hash-based associative-container </li>
- <li><a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a> - collision-chaining hash-based associative-container </li>
- <li><a href = "gp_hash_assoc_cntnr.html"><tt>gp_hash_assoc_cntnr</tt></a> - (general) probing hash-based associative-container </li>
- </ol>
- </li>
- <li>
- Tree-Based Associative-Containers:
- <ol>
- <li><a href = "basic_tree_assoc_cntnr.html"><tt>basic_tree_assoc_cntnr</tt></a> - basic tree-based associative-container </li>
- <li><a href = "basic_tree_assoc_cntnr_rev.html"><tt>basic_tree_assoc_cntnr</tt></a> - basic tree-based associative-container with reverse iteration </li>
- <li><a href = "tree_assoc_cntnr.html"><tt>tree_assoc_cntnr</tt></a> - tree-based associative-container </li>
- </ol>
- </li>
- <li>
- List-Based Associative-Contaiers:
- <ol>
- <li><a href = "lu_assoc_cntnr.html"><tt>lu_assoc_cntnr</tt></a> - list-based update-policy associative container</li>
- </ol>
- </li>
-</ol>
-
-
-<hr>
-
-
-<h2><a name = "ds_pol">Data-Type Policies</a></h2>
-
-<p>
-<a href = "overview.html">Overview</a> and
-<a href = "ms_gen.html">Mapping-Semantic Genericity</a> discuss relevant design
-points.
-</p>
-
-<ol>
- <li><a href = "null_data_type.html"><tt>null_data_type</tt></a>
- </li>
- <li><a href = "compound_data_type.html"><tt>compound_data_type</tt></a>
- </li>
-</ol>
-
-<hr>
-
-
-
-
-<h2><a name = "ds_tag">Data-Structure Tags and Traits</a></h2>
-
-<p>
-
-</p>
-
-<h3>Data-Structure Tags</h3>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "ds_tag_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Data-Structure Tag class hierarchy.
-</h6>
-
-<ol>
- <li> <a href = "basic_ds_tag.html"><tt>basic_ds_tag</tt></a></li>
- <li> <a href = "basic_hash_ds_tag.html"><tt>basic_hash_ds_tag</tt></a></li>
- <li> <a href = "cc_hash_ds_tag.html"><tt>cc_hash_ds_tag</tt></a></li>
- <li> <a href = "gp_hash_ds_tag.html"><tt>gp_hash_ds_tag</tt></a></li>
- <li> <a href = "basic_tree_ds_tag.html"><tt>basic_tree_ds_tag</tt></a></li>
- <li> <a href = "rb_tree_ds_tag.html"><tt>rb_tree_ds_tag</tt></a></li>
- <li> <a href = "splay_tree_ds_tag.html"><tt>splay_tree_ds_tag</tt></a></li>
- <li> <a href = "ov_tree_ds_tag.html"><tt>ov_tree_ds_tag</tt></a></li>
- <li> <a href = "lu_ds_tag.html"><tt>lu_ds_tag</tt></a></li>
- <li> <a href = "compound_ds_tag.html"><tt>compound_ds_tag</tt></a></li>
-</ol>
-
-
-<h3>Invalidation-Guarantee Tags</h3>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "invalidation_guarantee_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Invalidation guarantees class hierarchy.
-</h6>
-
-<ol>
- <li> <a href = "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a></li>
- <li> <a href = "find_invalidation_guarantee.html"><tt>find_invalidation_guarantee</tt></a></li>
- <li> <a href = "range_invalidation_guarantee.html"><tt>range_invalidation_guarantee</tt></a></li>
-</ol>
-
-<h3>Data-Structure Traits</h3>
-
-<ol>
- <li> <a href = "ds_traits.html"><tt>ds_traits</tt></a></li>
-</ol>
-
-
-<hr>
-
-
-<h2><a name = "ms_tag">Mapping-Semantics Tags and Traits</a></h2>
-
-<p>
-
-</p>
-
-<h3>Mapping-Semantics Tags</h3>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "ms_tag_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Mapping-Semantics Tag class hierarchy.
-</h6>
-
-<ol>
- <li> <a href = "basic_ms_tag.html"><tt>basic_ms_tag</tt></a></li>
- <li> <a href = "data_enabled_ms_tag.html"><tt>data_enabled_ms_tag</tt></a></li>
- <li> <a href = "compound_data_enabled_ms_tag.html"><tt>compound_data_enabled_ms_tag</tt></a></li>
-</ol>
-
-
-<h3>Mapping-Semantics Traits</h3>
-
-<ol>
- <li> <a href = "ms_traits.html"><tt>ms_traits</tt></a></li>
-</ol>
-
-
-<hr>
-
-
-<h2><a name="ds_policy_classes">Data-Structure Policy Classes</a></h2>
-
-
-<h3>Hash-Related Policies</h3>
-
-<p>
-</p><a href = "hash_based_containers.html">Hash-Based Containers</a> describes
-relevant design points.
-</p>
-
-<h4>Hash and Probe Policies</h4>
-<ol>
- <li> Hash Functions:
- <ol>
- <li> <a href="null_hash_fn.html"><tt>null_hash_fn</tt></a></li>
- </ol>
- </li>
- <li> Range-Hashing Functions:
- <ol>
- <li><a href="sample_range_hashing.html">Interface of a Range-Hashing Function</a></li>
- <li> <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a></li>
- <li> <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a></li>
- </ol>
- </li>
- <li> Probe Functions:
- <ol>
- <li> <a href="sample_probe_fn.html">Interface of a Probe Function</a></li>
- <li> <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a></li>
- <li> <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a></li>
- <li> <a href="null_probe_fn.html"><tt>null_probe_fn</tt></a></li>
- </ol>
- </li>
- <li> Ranged-Hash Functions:
- <ol>
- <li><a href="ranged_hash_fn.html">Interface of a Ranged-Hash Function</a></li>
- </ol>
- </li>
- <li> Ranged-Probe Functions:
- <ol>
- <li> <a href="ranged_probe_fn.html">Interface of a Ranged-Probe function</a></li>
- </ol>
- </li>
-</ol>
-
-
-
-<h4>Resize Policies</h4>
-
-<h6 align = "center">
-<a name = "resize_policy_cd">
-<img src = "resize_policy_cd.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Resize policy class diagram.
-</h6>
-
-<ol>
- <li> Resize Policies:
- <ol>
- <li> <a href="sample_resize_policy.html">Interface of a Resize Policy</a>
- <li> <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a></li>
- </ol>
- </li>
- <li> Size Policies:
- <ol>
- <li> <a href="sample_size_policy.html">Interface of a Size Policy</a></li>
- <li> <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a></li>
- <li> <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a></li>
- </ol>
- </li>
- <li> Trigger Policies:
- <ol>
- <li><a href="sample_resize_trigger.html">Interface of a Trigger Policy</a></li>
- <li> <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a></li>
- <li> <a href="cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a></li>
- </ol>
- </li>
-</ol>
-
-
-
-<h3>Tree Node-Update Policies</h3>
-<ol>
- <li> <a href = "node_invariants.html">Design of Node Update Policies</a></li>
- <li> <a href="sample_node_updator.html">Interface of a Node Updator Policy</a></li>
- <li> Order-Statistics (Finding Entries by Key Order):
- <ol>
- <li> <a href="order_statistics_key.html"><tt>order_statistics_key</tt></a></li>
- <li> <a href="order_statistics_key_cmp.html"><tt>order_statistics_key_cmp</tt></a></li>
- <li> <a href="order_statistics_node_updator.html"><tt>order_statistics_node_updator</tt></a></li>
- <li> <a href="find_by_order.html"><tt>find_by_order</tt></a></li>
- <li> <a href="order_by_key.html"><tt>order_by_key</tt></a></li>
- </ol>
- </li>
- <li> <a href="null_node_updator.html"><tt>null_node_updator</tt></a></li>
-</ol>
-
-
-<h3>List Update Policies</h3>
-<ol>
- <li> <a href = "list_updates.html">Design of List Update Policies</a> </li>
- <li> <a href = "sample_update_policy.html">Interface of a List Update Policy</a> </li>
- <li> Move-to-Front:
- <ol>
- <li> <a href="move_to_front_update_metadata.html"><tt>move_to_front_update_metadata</tt></a></li>
- <li> <a href="move_to_front_update_policy.html"><tt>move_to_front_update_policy</tt></a></li>
- </ol>
- </li>
- <li> Counter:
- <ol>
- <li> <a href="counter_update_metadata.html"><tt>counter_update_metadata</tt></a></li>
- <li> <a href="counter_update_policy.html"><tt>counter_update_policy</tt></a></li>
- </ol>
- </li>
-</ol>
-
-
-<hr>
-
-
-
-
-<h2><a name="exceptions">Exceptions</a></h2>
-<ol>
- <li> <a href="pb_assoc_ex.html"><tt>pb_assoc_ex</tt></a></li>
- <li> <a href="cannot_insert.html"><tt>cannot_insert</tt></a></li>
- <li> <a href="cannot_join.html"><tt>cannot_join</tt></a></li>
- <li> <a href="cannot_resize.html"><tt>cannot_resize</tt></a></li>
-</ol>
-
-
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/interval_node_invariants.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/interval_node_invariants.jpg
deleted file mode 100644
index 0f4db96..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/interval_node_invariants.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/introduction.html b/libstdc++-v3/docs/html/ext/pb_assoc/introduction.html
deleted file mode 100644
index e31dfc7..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/introduction.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>Introduction</TITLE>
-<META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-<base target = "content">
-</HEAD>
-<BODY>
-<H1>Introduction</H1>
-
-<p>
- There are (at least) three orthogonal challenges to designing generic associative containers:
-</p>
-
-<ol>
- <li> The choice of underlying data-structure affects not only the performance of containers, but their semantics as well. <i>E.g.</i>, containers based on trees store elements by a given order, while containers based on hash tables store elements in a meaningless (and probably time-varying) order; containers based on node-based trees can guarantee exception-free element erasing, while containers based on vector-based trees cannot. This complicates generic manipulation of associative containers based on different underlying data-structures.
- </li>
- <li>
- Underlying data-structures can act very differently given different policies. <i>E.g.</i>, the policy by which a hash table translates a hash value into a position within a table affects performance dramatically; certain policies can make containers based on trees support order statistics (<i>i.e.</i>, queries on the order of stored elements) or other useful queries. This complicates the policy design of an associative container based on a given data-structure.
- </li>
- <li>
- Various mapping semantics are appropriate in different settings. <i>E.g.</i>, in some cases a unique mapping between each key and a datum is appropriate (such as the STL's <tt>std::map</tt> guarantees); in other cases, unique storage of keys is required (such as the STL's <tt>std::set</tt> guarantees); in other cases, more complex mapping semantics are required. This complicates generic manipulation of associative containers with different mapping semantics.
- </li>
-</ol>
-
-<p>
- <tt>pb_assoc</tt> attempts to address these problems safely and efficiently.
-</p>
-
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_cd.jpg
deleted file mode 100644
index dde6700..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_erase.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_erase.jpg
deleted file mode 100644
index d167097..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_erase.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lib_download.html b/libstdc++-v3/docs/html/ext/pb_assoc/lib_download.html
deleted file mode 100644
index 2007631..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/lib_download.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Library Download and Install</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Library Download and Install</h1>
-
-<ol>
- <li><a href = "#requirements">Requirements</a></li>
- <li><a href = "#donwload">Download</a></li>
- <li><a href = "#install">Install</a></li>
- <li><a href = "#use">Use</a></li>
-</ol>
-
-<h2><a name = "requirements">Requirements</a></h2>
-
-<p>
- The library compiles and runs on the newer versions of
-<tt>g++</tt>, <tt>icc</tt> and <tt>Visual C++ .net</tt>. The
-<a href = "portability.html">Portability</a> Section describes the known
-compilers with which it works.
-</p>
-
-<p>
- Unfortunately, we do not have access to other compilers, and so do not
-know how to define some standard policies whose namespaces and declarations
-we know only on
-<tt>g++</tt>, <tt>icc</tt>, and <tt>Visual C++ .net</tt>.
-We would appreciate help on this point.
-</p>
-
-<h2><a name = "donwload">Download</a></h2>
-
-<p>
- The following <a href = "pb_assoc.zip">link</a> contains a zip
-file of the library.
-</p>
-
-
-<h2><a name = "install">Install</a></h2>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/linear_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/linear_probe_fn.html
deleted file mode 100644
index 65943f2..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/linear_probe_fn.html
+++ /dev/null
@@ -1,238 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>linear_probe_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>linear_probe_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A probe sequence policy using fixed increments.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Offset methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Const_Key_Ref3735929850">Const_Key_Ref</a></pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">linear_probe_fn</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Offset methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- <b>operator</b>()
- (<a href = "#Const_Key_Ref3735929850">Const_Key_Ref</a> r_key,
- <a href = "#size_type3735929547">size_type</a> i) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <font color = "#666666"><tt>i</tt></font>-th offset from the hash value.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/list_updates.html b/libstdc++-v3/docs/html/ext/pb_assoc/list_updates.html
deleted file mode 100644
index d0086d1..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/list_updates.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>List Updates</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-
-<body bgcolor = "white">
-
-<h1>List-Update Containers</h1>
-
-<p>
- This section describes policies for list updates. It is organized as follows:
-</p>
-
-<ol>
- <li> The <a href = "#general">General Terms</a> Subsection describes general
- terms.
- </li>
- <li> The <a href = "#imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a>
- Subsection describes the implementation of these concepts in <tt>pb_assoc</tt>.
- </li>
-</ol>
-
-
-<h2><a name = "general">General Terms</a></h2>
-
-<p>
- Associative containers use some attributes of the keys of which they store: tree-based
-containers use the ability to compare keys; hash-based containers use the ability to map
-keys into numbers.
-</p>
-
-<p>
- In the (rare) case where keys can only be checked for equivalence, these
-types of containers cannot be used. In such a case, storing the entries in a list is a reasonable solution.
-Clearly, the order of the elements within the list affects performance; ideally, frequently accessed elements
-should be at the front of the list.
-</p>
-
-<p>
- Many remarkable (online competitive
-[<a href = "references.html#motwani95random">motwani95random</a>])
-algorithms exist for reordering lists to reflect access prediction
-[<a href = "references.html#andrew04mtf">andrew04mtf</a>]. Some of these algorithms require storing
-metadata with each key, while others do not. Some of these algorithms require only the ability to
-move an element to the front of the list, while others require the ability to interchange an element and
-its predecessor.
-</p>
-
-<p>
- For example, Figure
-<a href = "#lu">-A
-The counter algorithm
-</a>
-shows the counter algorithm. Each node contains both a key and a count metadata (shown in bold).
-When an element is accessed (<i>e.g.</i> 6)
-its count is incremented, as shown in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-B.
-If the count reaches some predetermined value, say 10, as shown in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-C,
-the count is set to 0
-and the node is moved to the front of the list, as in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-D.
-
-
-</p>
-
-<h6 align = "center">
-<a name = "lu">
-<img src = "lu_ops.jpg" width = "65%">
-</a>
-</h6>
-<h6 align = "center">
-The counter algorithm.
-</h6>
-
-
-
-<h2><a name = "imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a></h2>
-
-<p>
- The <tt>pb_assoc</tt> library allows instantiating lists with policies
-implementing any algorithm moving nodes to the front of the list (policies implementing
-algorithms interchanging nodes are currently unsupported).
-</p>
-
-<p>
- Associative containers based on lists are parameterized by a <tt>Update_Policy</tt> parameter.
-This parameter defines the type of metadata each node contains, how to create the metadata, and how to
-decide, using this metadata, whether to move a node to the front of the list.
- A list-based associative container object derives (publicly) from its update policy.
-</p>
-
-<p>
- An instantiation of <tt>Update_Policy</tt> must define internally <tt>update_metadata</tt> as the metadata
-it requires. Internally, each node of the list contains, besides the usual key and data, an instance
-of <tt><b>typename</b> Update_Policy::update_metadata</tt>.
-</p>
-
-<p>
- An instantiation of <tt>Update_Policy</tt> must define internally two operators:
-</p>
-<pre>
-update_metadata
- <b>operator</b>()
- ();
-
-<b>bool</b>
- <b>operator</b>()
- (update_metadata &);
-</pre>
-
-<p>
- The first is called by the container object, when creating a new node, to create the node's metadata. The
-second is called by the container object, when a node is accessed (<i>e.g.</i>, when a find operation's key
-is equivalent to the key of the node), to determine whether to move the node to the front of the list.
-</p>
-
-<p>
- Additionally, the library contains implementations of the move-to-front and counter policies. These
-are described in
-<a href="interface.html#policy_classes">Policy Classes</a>.
-</p>
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lu_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/lu_assoc_cntnr.html
deleted file mode 100644
index c9d0c75..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/lu_assoc_cntnr.html
+++ /dev/null
@@ -1,570 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>lu_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>lu_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A list-update based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor.</p>
-
-
-</td>
-
-<td>
-<pre>std::equal_to&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Update_Policy3735929889">Update_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Update policy (determines when an element will be moved to the front of the list.</p>
-
-
-</td>
-
-<td>
-<a href = "move_to_front_update_policy.html"><tt>move_to_front_update_policy</tt></a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Update_Policy3735929889">Update_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "eq_fn3735929080">eq_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "update_policy3735929953">update_policy</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Update_Policy3735929889">Update_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>List update policy type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> lu_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> lu_assoc_cntnr
- (<b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> lu_assoc_cntnr
- (<b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Update_Policy3735929889">Update_Policy</a> &amp;r_update_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_update_policy</tt></font> will be copied by the <a href = "#Update_Policy3735929889"><tt>Update_Policy</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;<b>class</b> It&gt;
- lu_assoc_cntnr
- (It first_it, It last_it)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;<b>class</b> It&gt;
- lu_assoc_cntnr
- (It first_it, It last_it,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;<b>class</b> It&gt;
- lu_assoc_cntnr
- (It first_it, It last_it,
- <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
- <b>const</b> <a href = "#Update_Policy3735929889">Update_Policy</a> &amp;r_update_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> lu_assoc_cntnr
- (<b>const</b> <font color = "olive">lu_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~lu_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><font color = "olive">lu_assoc_cntnr</font> &amp;
- <b>operator</b>=
- (<b>const</b> <font color = "olive">lu_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Assignment operator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">lu_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#eq_fn3735929080">eq_fn</a> &amp;
- get_eq_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#eq_fn3735929080"><tt>eq_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#eq_fn3735929080">eq_fn</a> &amp;
- get_eq_fn
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#eq_fn3735929080"><tt>eq_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#update_policy3735929953">update_policy</a> &amp;
- get_update_policy
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#update_policy3735929953"><tt>update_policy</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#update_policy3735929953">update_policy</a> &amp;
- get_update_policy
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#update_policy3735929953"><tt>update_policy</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lu_based_containers.html b/libstdc++-v3/docs/html/ext/pb_assoc/lu_based_containers.html
deleted file mode 100644
index 30dc90f..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/lu_based_containers.html
+++ /dev/null
@@ -1,225 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>List Updates</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-
-<body bgcolor = "white">
-
-<h1>List-Update Containers</h1>
-
-
-<p>
- This section describes list-based containers. It is organized as follows.
-</p>
-
-<ol>
- <li> <a href = "#overview">Overview</a> is an overview.</li>
- <li> <a href = "#list_updates">List Updates</a> describes updating lists
-as elements are accessed.</li>
-</ol>
-
-
-<h2><a name = "overview">Overview</a></h2>
-
-<p>
- Associative containers typically use some attributes of the keys of which they store: tree-based
-containers use the ability to compare keys; hash-based containers use the ability to map
-keys into numbers.
-</p>
-
-<p>
- In some cases it is better to avoid this:
-</p>
-
-<ol>
- <li>
- Hash-based and tree-based containers typically require additional memory
- for time efficiency.
- </li>
- <li>
- Hash-based and tree-based containers require extra information
- about keys: hash-based containers need hash functors, tree-based containers need
- comparison functors. In some (rare) cases, a key might be encapsulated to the extent that it is not possible to supply these functors.
- </li>
-</ol>
-
-<p>
- In such cases, storing the entries in a unique-key list is a reasonable solution.
-This uses the minimal amount of memory, and requires only an equivalence functor.
-Clearly, the order of the elements within the list affects performance; ideally, frequently accessed elements
-should be at the front of the list.
-</p>
-
-<p>
- Many remarkable (online competitive
-[<a href = "references.html#motwani95random">motwani95random</a>])
-algorithms exist for reordering lists to reflect access prediction
-[<a href = "references.html#andrew04mtf">andrew04mtf</a>].
-</p>
-
-<p>
- Figure
-<a href = "#lu_cd">List-update containers</a>
- shows the container-hierarchy; the list-based container is circled.
-</p>
-
-<h6 align = "center">
-<a name = "lu_cd">
-<img src = "lu_cd.jpg" width = "70%" alt = "no image">
-</h6>
-<h6 align = "center">
-</a>
-List-update containers.
-</h6>
-
-
-<p>
- The list-based container has the following declaration:
-</p>
-
-<pre>
-<b>template</b>&lt;
- <b>typename</b> Key,
- <b>typename</b> Data,
- <b>class</b> Eq_Fn = std::equal_to&lt;Key&gt;,
- <b>class</b> Update_Policy =
- <a href = "move_to_front_lu_policy.html">move_to_front_lu_policy&lt;&gt;</a>,
- <b>class</b> Allocator =
- std::allocator&lt;<b>char</b>&gt; &gt;
-<b>class</b> <a href = "lu_assoc_cntnr.html">lu_assoc_cntnr</a>;
-</pre>
-
-
-<p>
- The parameters have the following meaning:
-</p>
-<ol>
- <li> <tt>Key</tt> is the key type.
- </li>
- <li> <tt>Data</tt> is the data-policy, and is explained in
-<a href = "ms_gen.html#ds_policy">Mapping-Semantics Genericity::Data Types as a Policy</a>.
- </li>
- <li> <tt>Eq_Fn</tt> is a key equivalence functor.</li>
- <li> <tt>Update_Policy</tt> is a policy updating
- positions in the list based on access patterns. It is described in
- the following subsection.
- </li>
- <li> <tt>Allocator</tt> is (surprisingly) an allocator type.
- </li>
-</ol>
-
-
-
-
-
-<h2><a name = "list_updates">List Updates</a></h2>
-
-<p>
- This subsection describes list-update policies. It is organized as follows.
-</p>
-
-<ol>
- <li> <a href = "#general">General Terms</a> describes general
- terms.
- </li>
- <li> <a href = "#imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a>
- describes the implementation of these concepts in <tt>pb_assoc</tt>.
- </li>
-</ol>
-
-
-
-
-<h3><a name = "general">General Terms</a></h3>
-
-
-<p>
- For example, Figure
-<a href = "#lu">-A
-The counter algorithm
-</a>
-shows the counter algorithm. Each node contains both a key and a count metadata (shown in bold).
-When an element is accessed (<i>e.g.</i> 6)
-its count is incremented, as shown in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-B.
-If the count reaches some predetermined value, say 10, as shown in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-C,
-the count is set to 0
-and the node is moved to the front of the list, as in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-D.
-
-
-</p>
-
-<h6 align = "center">
-<a name = "lu">
-<img src = "lu_ops.jpg" width = "65%">
-</a>
-</h6>
-<h6 align = "center">
-The counter algorithm.
-</h6>
-
-
-
-<h3><a name = "imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a></h3>
-
-<p>
- The <tt>pb_assoc</tt> library allows instantiating lists with policies
-implementing any algorithm moving nodes to the front of the list (policies implementing
-algorithms interchanging nodes are currently unsupported).
-</p>
-
-<p>
- Associative containers based on lists are parameterized by a <tt>Update_Policy</tt> parameter.
-This parameter defines the type of metadata each node contains, how to create the metadata, and how to
-decide, using this metadata, whether to move a node to the front of the list.
- A list-based associative container object derives (publicly) from its update policy.
-</p>
-
-<p>
- An instantiation of <tt>Update_Policy</tt> must define internally <tt>update_metadata</tt> as the metadata
-it requires. Internally, each node of the list contains, besides the usual key and data, an instance
-of <tt><b>typename</b> Update_Policy::update_metadata</tt>.
-</p>
-
-<p>
- An instantiation of <tt>Update_Policy</tt> must define internally two operators:
-</p>
-<pre>
-update_metadata
- <b>operator</b>()
- ();
-
-<b>bool</b>
- <b>operator</b>()
- (update_metadata &);
-</pre>
-
-<p>
- The first is called by the container object, when creating a new node, to create the node's metadata. The
-second is called by the container object, when a node is accessed (<i>e.g.</i>, when a find operation's key
-is equivalent to the key of the node), to determine whether to move the node to the front of the list.
-</p>
-
-<p>
- Additionally, the library contains implementations of the move-to-front and counter policies. These
-are described in
-<a href="interface.html#policy_classes">Policy Classes</a>.
-</p>
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lu_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/lu_cd.jpg
deleted file mode 100644
index c69cdc5..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/lu_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lu_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/lu_ds_tag.html
deleted file mode 100644
index e906de7..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/lu_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>lu_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>lu_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>List-update data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_ds_tag.html"><tt>basic_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lu_ops.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/lu_ops.jpg
deleted file mode 100644
index fa26e84..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/lu_ops.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/mmap_value_utils.html b/libstdc++-v3/docs/html/ext/pb_assoc/mmap_value_utils.html
deleted file mode 100644
index dd0846e..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/mmap_value_utils.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
- <TITLE>Multimap Value-Type Utilities</TITLE>
- <META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-</HEAD>
-<BODY>
-
-<H1>Multimap Value-Type Utilities</H1>
-
-<p>
- In <tt>pb_assoc</tt>, associative containers have a unique-key design.
-Multimaps, consequently are maps of sets, <i>e.g.</i>,
-a <a href = "cc_ht_multimap.html"><tt>cc_ht_multimap</a>&lt;<b>int</b>, <b>char</b>&gt;</tt>
-object maps <tt><b>int</b></tt>s to sets of <tt><b>char</b></tt>s.
- It is often convenient to perform
-value-type operations on multimaps, <i>e.g.</i>, in this case, to find a specific
-<tt>std::pair&lt;<b>int</b>, <b>char</b>&gt;</tt> object (say, <tt>std::make_pair(2, 'b')</tt>)
-in a multimap object. These types of operations involve typically two steps: in the
-first step, some operation is performed on the multimap object itself, and in the second
-step, some operation is performed on the multimap's pertinent set object.
-(This is true for the STL's multimaps as well, except that the "set" is an implicit
-list.)
-</p>
-
-<p>
- Coding these two-step operations is repetitious and error prone.
- <tt>pb_assoc</tt> containers already maintain the invariant that they support
-a value-type method for any mapped-value-type method they support
-(hence any multimap of the above type supporsts a method for inserting
- <tt>std::make_pair(2, 'b')</tt>). Following are some utility functions for
- other common operations.
-</p>
-
-
-<pre>
-<b>template</b>&lt;
- <b>class</b> MMap_Cntnr&gt;
-<b>inline</b> std::pair&lt;
- <b>typename</b> MMap_Cntnr::mapped_data_type::find_iterator,
- <b>bool</b>&gt;
- mmap_value_find
- (<b>const</b> MMap_Cntnr &r_mmap_cntnr,
- <b>typename</b> MMap_Cntnr::const_reference r_val);
-</pre>
-
-<p>
- Finds the (const reference to a) value-type
-<font color = "#666666"><tt>r_val</tt></font> in
-the multimap object
-<font color = "#666666"><tt>r_mmap_cntnr</tt></font>.
-</p>
-<p>
- It
-returns a pair whose first entry is a find-type iterator
-of the multimap's set type, and whose second entry is a boolean
-indicating whether the value type was found (only in this
-case is the first entry in the pair valid).
-</p>
-
-<pre>
-<b>template</b>&lt;
- <b>class</b> MMap_Cntnr&lt;
-<b>inline</b> <b>typename</b> MMap_Cntnr::size_type
- mmap_value_erase
- (MMap_Cntnr &r_mmap_cntnr,
- <b>typename</b> MMap_Cntnr::const_reference r_val,
- <b>bool</b> erase_entry_if_last);
-</pre>
-
-<p>
- Transactionally erases the (const reference to the) value-type
-<font color = "#666666"><tt>r_val</tt></font> from
-the multimap object
-<font color = "#666666"><tt>r_mmap_cntnr</tt></font>, and
-erases the mapped value type
-with
-<font color = "#666666"><tt>r_val</tt></font>'s key
-if there are no more value types with this given key
-and
-<font color = "#666666"><tt>erase_entry_if_last</tt></font> <tt>= <b>true</b></tt>.
-<p>
-</p>
- It
-returns 1 if a value type was actually erased, or 0 otherwise.
-</p>
-
-<pre>
-<b>template</b>&lt;
- <b>class</b> MMap_Cntnr&gt;
-<b>inline</b> std::pair&lt;
- <b>typename</b> MMap_Cntnr::mapped_data_type::find_iterator,
- <b>bool</b>>
- mmap_value_replace
- (MMap_Cntnr &r_mmap_cntnr,
- <b>typename</b> MMap_Cntnr::const_reference r_val,
- <b>typename</b> MMap_Cntnr::const_data_reference r_data);
-</pre>
-
-<p>
- Transactionally erases
-<font color = "#666666"><tt>r_val</tt></font>
-from
-<font color = "#666666"><tt>r_mmap_cntnr</tt></font>
-(if it such a value type exists) and
-inserts instead a value type whose key is
-<font color = "#666666"><tt>r_val</tt></font><tt>.first</tt>
-and whose data is
-<font color = "#666666"><tt>r_data</tt></font>.
-</p>
-<p>
-<p>
- It
-returns a pair whose first entry is a find-type iterator
-of the multimap's set type, and whose second entry is a boolean
-indicating whether the new value type was inserted
-(it might have
-existed previously).
-</p>
-
-<p>
-(If the multimap type or its set type do not guarantee exception free
-erases, <tt>mmap_value_erase</tt> and <tt>mmap_value_replace</tt> will
-invalidate pointers, references, and iterators).
-</p>
-
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/motivation.html b/libstdc++-v3/docs/html/ext/pb_assoc/motivation.html
deleted file mode 100644
index 11eca4a..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/motivation.html
+++ /dev/null
@@ -1,281 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Motivation</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-<body bgcolor = "white">
-<h1>Motivation</h1>
-
-<p>
- The <a href = "introduction.html">Introduction</a> Section described some challenges
-in designing associative containers. This section describes the STL's solution and motivation for an alternative solution. It is organized as follows.
-</p>
-
-<ol>
- <li> <a href = "#stl">The STL's Associative-Container Design</a>
- briefly describes the STL's solution.
- </li>
- <li> <a href = "#policies">Choice of Policies</a> discusses possible additional policies by which to parameterize data structures.
- </li>
- <li> <a href = "#ds_genericity">Data-Structure Genericity</a> discusses possible problems with generic manipulation of containers based on different underlying data-structures.
- </li>
- <li> <a href = "#mapping_semantics">Mapping Semantics</a> discusses scalability issues with the STL's non-unique-mapping associative containers.
- </li>
- <li> <a href = "#methods">Choice of Methods</a> discusses some reservations with the choice of methods in the STL.
- </li>
-</ol>
-
-<h2><a name = "stl">The STL's Associative-Container Design</a></h2>
-
-<p>
- The STL (or its extensions) currently offer associative containers based on underlying red-black trees or collision-chaining hash tables. For association, containers based on trees are parameterized by a comparison functor, and containers based on hash tables are parameterized by a hash functor and an equivalence functor.
-</p>
-
-<p>
- For each underlying data-structure, the STL offers four containers with different mapping semantics. A map-type uniquely maps each key to some datum, a set-type stores uniquely keys, a multimap-type non-uniquely maps each key to some datum, and a multiset-type non-uniquely stores keys.
-</p>
-
-<p>
- Containers contain various iterator-based methods. <i>E.g.</i>, all containers have constructors taking a pair of iterators, and transactionally construct an object containing all elements in the iterators' range. Additionally, it is possible to (non-transactionally) insert a range given by iterators, or erase such a range. Other methods are implicitly range-based, <i>e.g.</i>, it is possible to test the equivalence of two associative container objects via <tt><b>operator</b>==</tt>.
-</p>
-
-<h2><a name = "policies">Choice of Policies</a></h2>
-
-<p>
- In order to function efficiently in various settings, associative containers require
-a wide variety of policies.
-</p>
-
-<p>
- For example, a hash policy instructs how to transform a key object into some non-negative integral type; <i>e.g.</i>, a hash functor might transform <tt>"hello"</tt> into <tt>1123002298</tt>. A hash table, though, requires transforming each key object into some non-negative integral type in some specific domain; <i>e.g.</i>, a hash table with 128 entries might transform the <tt>"hello"</tt> into position 63. The policy by which the hash value is transformed into a position within the table can dramatically affect performance.
-</p>
-
-<p>
- Additionally, most hash-table algorithms encounter collisions. To mitigate the cost of these collisions, it sometimes is beneficial to store the hash value along with each element
-[<a href = "references.html#clrs2001">clrs2001</a>, <a href = "references.html#austern01htprop">austern01htprop</a>]. While this improves performance for complex keys, it hampers performance for simple keys, and is best left as a policy.
-</p>
-
-<p>
- Tree-based containers allow reasonable access while maintaining order between elements. In some cases, however, tree-based containers can be used for additional purposes. <i>E.g.</i>,consider Figure
-<a href = "#interval_invariants">
-Sets of line intervals
-</a>-A,
-which shows
-an example of a tree-based set storing
-half-open geometric line intervals. An <tt>std::set</tt> with this
-structure can efficiently answer whether <i>[20, 101)</i> is in the
-set, but it cannot efficiently answer whether any interval in the
-set overlaps <i>[20, 101)</i>, nor can it efficiently enumerate all
-intervals overlapping <i>[20, 101)</i>. A well-known augmentation to
-balanced trees can support efficient answers to such questions
-[<a href = "references.html#clrs2001">clrs2001</a>]. Namely,
-an invariant should be maintained whereby
-each node should contain also the
-maximal endpoint of any interval within its subtree, as in Figure
-<a href = "#interval_invariants">
-Sets of line intervals
-</a>-B. In order to maintain this ivariant, though, an invariant-restoring policy is
-required.
-</p>
-
-<h6 align = "center">
-<a name = "interval_invariants">
-<img src = "interval_node_invariants.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Sets of line intervals.
-</h6>
-
-
-<h2><a name = "ds_genericity">Data-Structure Genericity</a></h2>
-
-<p>
- Consider a generic function manipulating an associative container, <i>e.g.</i>,
-</p>
-
-<pre>
-<b>template</b>&lt;
- <b>class</b> Cntnr&gt;
-<b>int</b> some_op_sequence
- (Cntnr &r_cnt)
-{
- ...
-}
-</pre>
-
-<p>
- The underlying data structure affects what the function can do with the container object.
-</p>
-
-<p>
- For example, if <tt>Cntnr</tt> is <tt>std::map</tt>, then the function can
-use <tt>std::for_each(r_cnt.find(foo), r_cnt.find(bar), foobar)</tt>
-in order to apply <tt>foobar</tt> to all elements between <tt>foo</tt>
-and <tt>bar</tt>. If <tt>Cntnr</tt> is a hash-based container, then this call's results are undefined.
-</p>
-
-<p>
- Also, if <tt>Cntnr</tt> is tree-based, the type and object of the comparison functor
-can be accessed. If <tt>Cntnr</tt> is hash based, these queries are nonsensical</p>
-
-<p>
- These types of problems are excaberated when considering the wide variety of useful underlying data-structures. Figure
-<a href = "#different_underlying_data_structures">Different underlying data structures</a>
-shows different underlying data-structures (the ones
-currently supported in <tt>pb_assoc</tt>). A shows a collision-chaining hash-table; B shows a probing hash-table; C shows a red-black tree; D shows a splay tree; E shows a tree based on an ordered vector (the tree is implicit in the order of the elements); E shows a list-based container with update policies.
-</p>
-
-<h6 align = "center">
-<a name = "different_underlying_data_structures">
-<img src = "different_underlying_dss.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Different underlying data structures.
-</h6>
-
-<p>
- These underlying data structures display different behavior. For one, they can be queried for different policies. Furthermore:
-</p>
-<ol>
- <li>
- Containers based on C, D, and E store eleents in a meaningful order; the others store elements in a meaningless (and probably time-varying) order. As a futher consequence, containers based on C, D, and E can support erase operations taking an iterator and returning an iterator to the following element; the others cannot.
- </li>
- <li>
- Containers based on C, D, and E can be split and joined efficiently, while the others cannot. Containers based on C and D, futhermore, can guarantee that this is exception-free; containers based on E cannot guarantee this.
- </li>
- <li>
- Containers based on all but E can guarantee that erasing an element is exception free; containers based on E cannot guarantee this. Containers based on all but B and E can guarantee that modifying an object of their type does not invalidate iterators or references to their elements, while contianers based on B and E cannot. Containers based on C, D, and E can futhermore make a stronger guarantee, namely that modifiying an object of their type does not affect the relation of iterators.
- </li>
-</ol>
-
-<p>
- A unified tag and traits system (as used for the STL's iterators, for example) can ease generic manipulation of associative containers based on different underlying data-structures.
-</p>
-
-<h2><a name = "mapping_semantics">Mapping Semantics</a></h2>
-
- <p>
- In some cases, map and set semantics are inappropriate. <i>E.g.</i>, consider
-an application monitoring user activity. Such an application might be designed to track a user, the machine(s) to which the user is logged, application(s) the user is running on the machine, and the start time of the application. In this case, since a user might run more than a single application, there can be no unique mapping from a user to specific datum.
- </p>
-
-<p>
- The STL's non-unique mapping containers (<i>e.g.</i>,
-<tt>std::multimap</tt> and <tt>std::multiset</tt>) can be used
-in this case. These types of containers can store store two or more equivalent, non-identical keys [<a href = "references.html#kleft00sets">kleft00sets</a>]. Figure
-<a href = "#embedded_lists_1">Non-unique mapping containers in the STL's design</a> shows possible structures of STL tree-based and hash-based containers, multisets, respectively; in this figure, equivalent-key nodes share the same shading.
-</p>
-
-<h6 align = "center">
-<a name = "embedded_lists_1">
-<img src = "embedded_lists_1.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Non-unique mapping containers in the STL's design.
-</h6>
-
-<p>
- This design has several advantages. Foremost, it allows maps and multimaps, and sets and multisets, to share the same <tt>value_type</tt>, easing generic manipulation of containers with different mapping semantics.
-</p>
-
-
-<p>
- Conversely, this design has possible scalability drawbacks, due to an implicit "embedding" of linked lists.
-Figure
-<a href = "#embedded_lists_2">
-Embedded lists in STL multimaps
-</a>-A shows a tree with shaded nodes sharing equivalent keys;
-Figure
-<a href = "#embedded_lists_2">
-Embedded lists in STL multimaps
-</a>-A explicitly shows the linked lists implicit in Figure
-<a href = "#embedded_lists_1">Non-unique mapping containers in the STL's design</a>. The drawbacks are the following.
-</p>
-
-<ol>
- <li> As mentioned before, there are several underlying data-structures, each with its set of tradeoffs.
-The STL's design uses an associative linked-list to store all elements with equivalent primary
-key (<i>e.g.</i>, users). Searching for a secondary key (<i>e.g.</i>,
-a process) is inherently linear. While this works reasonably well when the number of distinct secondary
-keys is small, it does not scale well.
- </li>
- <li> Embedding linked lists can cause the entire structure to be inefficient.
-<i>E.g.</i>, Figure
-<a href = "#embedded_lists_1">
-Effect of embedded lists in STL multimaps
-</a>-A
- shows a tree with several shaded nodes containing equivalent keys; note how unbalanced
-this tree would seem when considering all shaded nodes to be a single node.
-Figure
-<a href = "#embedded_lists_1">
-Effect of embedded lists in STL multimaps
-</a>-B shows a hash table with several shaded nodes containing equivalent keys; note
-that this can lengthen the search for other nodes as well.
- </li>
- <li> Embdedding linked lists is only possible for some data structures.
-Some data structures, <i>e.g.</i>, probing-hash tables, linear hash tables,
-and extendible hash tables, cannot support it.
- </li>
- <li> The embedded linked list design forgoes the abilitiy to treat
-all elements with the same primary key as a single entity. The ability to
-efficiently simultaneously insert (or erase) a larger number of elements with
-the same primary key is lost; the ability to utilize segmented iterators is lost
-[<a href = "references.html#austern98segmented">austern98segmented</a>].
- </li>
- <li> The linked-list design uses much space. For one, in the above example, the data identifying will must be duplicated for each application run by the user. Furthermore, the "links" in the linked list are supplied by the underlying data structure. In the case of tree-based containers, for example, the linked list utilizes the fact that each tree node contains pointers to its parent and its children; given that the order of equivalent keys is meaningless, the number of pointers exceeds the functionality supplied by a linked list.
- </li>
-</ol>
-
-<h6 align = "center">
-<a name = "embedded_lists_2">
-<img src = "embedded_lists_2.jpg" width = "70d" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Embedded lists in STL multimaps.
-</h6>
-
-
-<h2><a name = "methods">Choice of Methods</a></h2>
-
-<p>
- [<a href = "references.html#meyers02both">meyers02both</a>] points out
-that a class's methods should comprise only operations which depend on the class's internal structure; other operations are best designed as external functions. Possibly, therefore, the STL's associative containers lack some useful methods, and provide some redundant methods.
-</p>
-
-<ol>
- <li>
- Possibly missing methods:
- </li>
- <ol>
- <li>
- It is well-known that tree-based container objects can be efficiently split or joined
- [<a href = "references.html#clrs2001">clrs2001</a>]. Externally splitting or joining trees is super-linear, and, furthermore, can throw exceptions. Split and join methods, consequently, seem good choices for tree-based container methods.
- </li>
- <li>
- Suppose all elements which match a certain criteria need to be erased from an
-unordered container object, <i>e.g.</i>, all elements whos keys are in a given range. Externally erasing them from the container object is super-linear, since erasing an element might reorder all iterators. Conditional erasing, therefore, seems a good choice for associative containers.
- </li>
- </ol>
- <li> Possibly redundant methods:</li>
- <ol>
- <li>
- STL associative containers provide methods for inserting a range of elements given by a pair of iterators. At best, this can be implemented as an external function, or, even more efficiently, as a join operation (for the case of tree-based containers). Moreover, these methods seem similar to constructors taking a range given by a pair of iterators; the constructors, however, are transactional, whereas the insert methods are not; this is possibly confusing.
- </li>
- <li>
- STL associative containers provide methods for erasing a range of elements given by a pair of iterators. At best, this can be implemented as an external function, or, even more efficiently, as a (small) sequence of split and join operations (for the case of tree-based containers). Moreover, the results of erasing a range is undefined for the case of containers based on unordered data-structures.
- </li>
- <li>
- Associative containers are parameterized by policies allowing to test keys, but not data, for equivalence. When comparing two associative container objects, it is at least as reasonable to expect that they are equivalent if both keys and data are equivalent, as it is reasonable to expect that they are equivalent if their keys only are equivalent. Furthermore, in different settings it makes sense that two objects are equivalent if they store keys in the same order, whereas in other settings order does not matter. The operators <tt>operator==</tt> and <tt>operator!=</tt> are not descriptive enough for these considerations.
- </li>
- </ol>
-</ol>
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_metadata.html b/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_metadata.html
deleted file mode 100644
index 8a73408..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_metadata.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>move_to_front_update_metadata Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>move_to_front_update_metadata
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A list-update metadata type that unconditionally moves elements to the front of the list.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/move_to_front_update_policy.hpp"><tt>move_to_front_update_policy.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_policy.html
deleted file mode 100644
index f9a47e3..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_policy.html
+++ /dev/null
@@ -1,256 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>move_to_front_update_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>move_to_front_update_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A list-update policy that unconditionally moves elements to the front of the list.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/move_to_front_update_policy.hpp"><tt>move_to_front_update_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Metadata definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Metadata operations.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Metadata_Reference3735929465">Metadata_Reference</a></pre>
-
-
-</td>
-
-<td>
-<p>Metadata reference type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;
- <a href = "move_to_front_update_metadata.html"><tt>move_to_front_update_metadata</tt></a>&gt;::
- reference
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">move_to_front_update_policy</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Metadata definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "metadata_type3735929937">metadata_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "move_to_front_update_metadata.html"><tt>move_to_front_update_metadata</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Metadata on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "metadata_reference3735929497">metadata_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Metadata_Reference3735929465">Metadata_Reference</a></pre>
-
-
-</td>
-
-<td>
-<p>Reference to metadata on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Metadata operations.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#metadata_type3735929937">metadata_type</a>
- <b>operator</b>()
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Creates a metadata object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>bool</b>
- <b>operator</b>()
- (<a href = "#metadata_reference3735929497">metadata_reference</a> r_data) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Decides whether a metadata object should be moved to the front of the list.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ms_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/ms_cd.jpg
deleted file mode 100644
index 885319da..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ms_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ms_gen.html b/libstdc++-v3/docs/html/ext/pb_assoc/ms_gen.html
deleted file mode 100644
index 468c121..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ms_gen.html
+++ /dev/null
@@ -1,440 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Mapping-Semantics Genericity</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-<body bgcolor = "white">
-
-
-<h1>Mapping-Semantics</h1>
-
-<p>
- This section describes genericity over different mapping-semantics. It is organized as follows.
-</p>
-<ol>
- <li><a href = "#intro">Introduction</a></li>
- <li><a href = "#ds_policy">Data Types as a Policy</a></li>
- <li><a href = "#problem">The Basic Problem</a></li>
- <li><a href = "#mapping_level">Mapping Levels</a></li>
- <li><a href = "#ms_traits">Tags and Traits</a></li>
- <li><a href = "#drawbacks">Drawbacks</a></li>
-</ol>
-
-
-<h2><a name = "intro">Introduction</a></h2>
-
-<p>
-<a href = "motivation.html#mapping_semantics">Motivation::Mapping Semantics</a> discussed scalability issues with the STL's non-unique-mapping associative containers; non-unique association inherently embeds linked-lists in associative containers resulting in scalability problems and other problems.
-</p>
-
-<p>
- In <tt>pb_assoc</tt>, all containers have unique-key semantics. Each key is uniquely mapped to &quot;something&quot;.
-</p>
-
-
-<h2><a name = "ds_policy">Data Types as a Policy</a></h2>
-
-<p>
- All associative-containers in <tt>pb_assoc</tt> are parameterized by a data type.
-<i>E.g.,</i> <a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a> is parameterized as
-</p>
-<pre>
-<b>template</b>&lt;
- <b>typename</b> Key,
- <b>typename</b> Data,
- ...&gt;
-<b>class</b> <a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>;
-</pre>
-
-<p>
- There are no separate classes for maps, sets, multimaps, and multisets (as the STL has). Rather, the mapping-semantic is set by specifying the <tt>Key</tt> parameter.
-</p>
-
-<ol>
- <li> If <tt>Data</tt> is any type (<i>e.g.</i>, <tt><b>int</b></tt> or
-<tt>std::string</tt>), then the container is a &quot;map&quot; - it maps each <tt>Key</tt> object to a <tt>Data</tt> object.
- </li>
- <li> If <tt>Data</tt> is
-<a href = "null_data_type.html"><tt>null_data_type</tt></a>,
-then the container is a &quot;set&quot; - it stores each <tt>Key</tt> object. In this case, each <tt>Key</tt> object is not really mapped to anything (except, implicitly, to the fact that it is stored in the container object).
- </li>
- <li>
- If <tt>Data</tt> is
-<a href = "compound_data_type.html">compound_data_type</a><tt>&lt;Cntnr&gt;</tt>,
-then the container is a &quot;multimap&quot; - it maps each <tt>Key</tt> object into a <tt>Cntnr</tt> object. This structure is recursive - <tt>Cntnr</tt> itself can be a &quot;map&quot;, &quot;set&quot;, &quot;multimap&quot;, and so forth.
- </li>
-</ol>
-
-<p>
- Each container derives from one of the three containers
-in the oval of Figure
-<a href = "#ms_cd">
-Data-types as a policy
-</a>.
-</p>
-
- <ol>
- <li><a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>
-is the base for most instantiations of a container's <tt>Data</tt> paramter. This
-base includes the definition of <tt>data_type</tt>, and supports
-<tt><b>operator</b>[]</tt>.
- </li>
- <li><a href = "basic_assoc_cntnr_no_data.html"><tt>basic_assoc_cntnr</tt></a> is the base for a
-<a href = "null_data_type"><tt>null_data_type</tt></a> instantiation of a container's <tt>Data</tt> paramter. This
-base lacks the definition of <tt>data_type</tt>, and does not support
-<tt><b>operator</b>[]</tt>.
- <li><a href = "basic_assoc_cntnr_compound_data.html"><tt>basic_assoc_cntnr</tt></a> is the base for a
-<a href = "compound_data_type.html"><tt>compound_data_type</tt></a><tt>&lt;Cntnr&gt;</tt> instantiation of a container's <tt>Data</tt> paramter. This
-base includes the definition of <tt>data_type</tt>, and supports
-<tt><b>operator</b>[]</tt>. It further supports some advanced functionality described in the remainder of this section.
- </ol>
-
-
-<h6 align = "center">
-<a name = "ms_cd">
-<img src = "ms_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Data-types as a policy.
-</h6>
-
-
-<h2><a name = "problem">The Basic Problem</a></h2>
-
-<p>
- Consider a <tt>pb_assoc</tt> &quot;multimap&quot; mapping integers to characters.
-Since a <tt>pb_assoc</tt> &quot;multimap&quot; is a &quot;map&quot; of &quot;sets&quot;,
-if <tt>m</tt> is an object of this type, it is not possible to directly use
-<tt>m.insert(std::make_pair(2, 'b')</tt> (however, it is possible to directly use
-<tt>m[2].insert('b')</tt>). In would be nice if this method whould be supported.
-</p>
-
-<p>
- Put differently, while the <tt>pb_assoc</tt> &quot;multimap&quot; can be viewed logically as the collection
-</p>
-<p>
- { <tt><b>int</b></tt> &rarr; {<tt><b>char</b></tt>} },
-</p>
-<p>
- It would be nice if it could simultaneously be viewed as the collection
-</p>
-<p>
- { (<tt><b>int</b></tt>, <tt><b>char</b></tt>) },
-</p>
-<p><i>i.e.</i>, a &quot;set&quot; of pairs.</p>
-
-<p>
- In more general terms, it would be nice to be able to simultaneously
-view a collection
-</p>
-<p>
-{ key_type_0 &rarr; { key_type_1 &rarr; { key_type_2 &rarr; { key_type_3 &rarr; { ... }}}}}
-</p>
-<p>
-as each of the following:
-</p>
-<p>
-{ (key_type_0, key_type_1) &rarr; { key_type_2 &rarr { key_type_e &rarr; { ... }}}},
-</p>
-<p>
-{ (key_type_0, key_type_1, key_type_2) &rarr { key_type_3 &rarr; { ... }}}
-</p>
-<p>
-{ (key_type_0, key_type_1, key_type_2, key_type_3 ) &rarr { }}
-</p>
-<p>
-...
-</p>
-
-
-<p>
-<a href = #mapping_level">Mapping_Levels</a> discusses the mechanism
-for these multiple views in <tt>pb_assoc</tt>
-</p>
-
-
-
-<h2><a name = "mapping_level">Mapping Levels</a></h2>
-
-<p>
- Each associative container in <tt>pb_assoc</tt> has
-a <i>mapping level</i>. The mapping level is defined by
-the instantiation of a container's <tt>Data</tt>
-parameter:
-</p>
-
-<ol>
- <li> If the <tt>Data</tt> parameter is instantiated
-by
-<a href = "null_data_type.html"><tt>null_data_type</tt></a> (<i>i.e.</i>,
-the container is a &quot;set&quot;), then the mapping level is 1.
- </li>
- <li> If the <tt>Data</tt> parameter is instantiated
-by
-<a href = "compound_data_type.html">compound_data_type</a><tt>&lt;Cntnr&gt;</tt>
-(<i>i.e.</i>, the container is a &quot;multimap&quot;), then the mapping level
-is 1 + the mapping level of <tt>Cntnr</tt>.
- </li>
- <li> If the <tt>Data</tt> parameter is instantiated
-by any other type, <i>e.g.</i>, <tt><b>char</b></tt> (<i>i.e.</i>,
-the container is a &quot;map&quot;), then the mapping level is 1.
- </li>
-</ol>
-
-<p>
- Containers can be rebound, at compile time, to different mapping levels.
-The compound data-type specialization <a href = "basic_assoc_cntnr_compound_data.html"><tt>basic_assoc_cntnr</tt></a>
-defines internally
-</p>
-<pre>
-<b>template</b>&lt;
- <b>int</b> Mapping_Level&gt;
-<b>struct</b> rebind
-{
- <b>typedef</b>
- ...
- other;
-};
-</pre>
-
-<p>
-(which is similar to the STL's allocator rebind mechanism).
-the type <tt>other</tt> is the view of the container with mapping
-level <tt>Mapping_Level</tt>. The container can be safely cast
-to <tt>other</tt>.
-</p>
-
-<p>
- As an example, consider the type
-</p>
-
-<pre>
-<b>typedef</b>
- <a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;
- <b>int</b>,
- <a href = "compound_data_type.html">compound_data_type</a>&lt;
- <a href = "tree_assoc_cntnr.html">tree_assoc_cntnr</a>&lt;
- <b>char</b>,
- <a href = "null_data_type.html"><tt>null_data_type</tt></a>&gt; &gt; &gt;
- cntnr_t;
-</pre>
-<p>
- which is a &quot;map&quot; mapping each <tt><b>int</b></tt> to
-a &quot;set&quot; of <tt><b>char</b></tt>s. In this case, <tt>cntnr_t</tt> has mapping level 2.
-</p>
-
-<p>
- An object of type <tt>cntnr_t</tt> cannot support <tt>insert(std::make_pair(2, 'b'));</tt>. On the other hand, the following code snippet shows how to do so:
-</p>
-
-<pre>
-cntnr_t c;
-
-<b>typedef</b>
- t::rebind<1>::other
- t_;
-
-((t_ &)c).insert(std::make_pair(2, 'b'));
-</pre>
-
-
-<p>
-<a href = "../example/mapping_level_example.cpp"><tt>mapping_level_example.cpp</tt></a> shows a more detailed example.
-</p>
-
-
-
-<h2><a name = "ms_traits">Tags and Traits</a></h2>
-
-<p>
- It is, of course, beneficial to query types for their mapping semantics.
-</p>
-
-<p>
- Each container defines internally the type <tt>ms_category</tt>
-as its mapping-semantics tag (hopefully this name is not copyrighted
-by some major corporation). The possible tags, shown in Figure
-
-are the following:
-</p>
-
-<ol>
- <li>
- <a href = "basic_ms_tag.html"><tt>basic_ms_tag</tt></a>
-is a basic mapping-semantics tag. It is the type defined by &quot;set&quot;s.
- </li>
- <li>
- <a href = "data_enabled_ms_tag.html"><tt>data_enabled_ms_tag</tt></a>
-is a mapping-semantics tag of types that have data. It is the type defined by &quot;map&quot;s.
- </li>
- <li>
- <a href = "compound_data_enabled_ms_tag.html"><tt>compound_data_enabled_ms_tag</tt></a>
-is a mapping-semantics tag of types that have compound data. It is the type defined by &quot;multimap&quot;s.
- </li>
-</ol>
-
-<p>
- Additionally, a container's mapping semantics can be queried by traits. For any
-container <tt>Cntnr</tt>,
-</p>
-
-<pre>
-<a href = "ms_traits.html">ms_traits</a>&lt;Cntnr&gt;::mapping_level
-</pre>
-
-<p>
- indicates the mapping level of the container, for example.
-</p>
-
-
-
-<h2><a name = "drawbacks">Drawbacks</a></h2>
-
-<tt>pb_assoc</tt>'s mapping-semantics design has some drawbacks compared to that of the STL.
-
-
-<h3>Equivalent, Non-Identical Keys</h3>
-
-<p>
- The STL's multimaps and multisets allow storing equivalent, non-identical keys
-[<a href = "references.html#kleft00sets">kleft00sets</a>]. For example, assume a bank maintains a data structure monitoring the accounts opened by each person. This could be modeled as the following:
-</p>
-
-<pre>
-<i>// Name type.</i>
-<b>typedef</b>
- std::string
- name;
-
-<i>// Account-id type.</i>
-<b>typedef</b>
- <b>unsigned long</b>
- account_id;
-
-<i>// Association between a name and an account id.</i>
-<b>class</b> opened_info
-{
-<b>public</b>:
- ...
-
- <i>// Comparison operator.</i>
- <b>bool</b>
- <b></b>operator&lt;</b>
- (<b>const</b> opened_info &r_other)
- {
- <i>Comparison is defined as the comparison of the names.</i>
- <b>return</b> m_name < r_other.m_name;
- }
-
-
-<b>private</b>:
- name m_name;
-
- account_id m_acc_id;
-};
-
-<i>// A multiset of opened accounts.</i>
-<b>typedef</b>
- std::multiset&lt;
- opened_info&gt;
- all_opened_info;
-</pre>
-
-<p>
- <tt>std::multiset</tt> can accomodate multiple equivalent, non-identical <tt>opened_info</tt> - those with the same name but different account id.
-</p>
-
-<p>
- In <tt>pb_assoc</tt>, however, non-unique mapping is unsupported. The equivalent to the above could be
-</p>
-
-<pre>
-<b>typedef</b>
- tree_assoc_cntnr&lt;
- name,
- compound_data_type&lt;
- cc_hash_assoc_cntnr&lt;
- account_id&gt; &gt; &gt;
- all_opened_info;
-</pre>
-
-<p>
- The drawback lies in the fact that the data stored in
-<tt>all_opened_info</tt> is less encapsulated - an <tt>opened_info</tt>
-object needs to be constructed when a specific name and account are found, and
-an <tt>opened_info</tt> object needs to be decomposed into <tt>name</tt> and
-<tt>account_id</tt> objects when it is inserted into a <tt>all_opened_info</tt>
-object.
-</p>
-
-<p>
- It should be noticed however, that the above drawbacks - construction and decomposition are constant-time additive drawbacks. The drawbacks of the
-STL's associative containers are in terms of orders of growth.
-</p>
-
-<h3>Definition of <tt>value_type</tt></h3>
-
-<p>
- The STL's associative containers contain a pleasingly uniform definition of
-the <tt>value_type</tt> of a container.
-If a container is parameterized by <tt>key</tt> as its <tt>Key</tt>, and <tt>data</tt> as its <tt>Data</tt>, then its <tt>value_type</tt> is
-<tt>std::pair&lt;<b>const</b> key, data&gt;</tt>;
-for example, the <tt>value_type</tt> of <tt>std::map&lt;<b>int</b>, <b>char</b>&gt;</tt> is
-<tt>std::pair&lt;<b>const int</b>, <b>char</b>&gt;</tt>. Futhermore, the <tt>value_type</tt> of a container and the <tt>value_type</tt> of the container's iterators are identical.
-</p>
-
-<p>
- In <tt>pb_assoc</tt>, conversely, the rules are more complex.
-</p>
-
-<p> For one, a container's
-<tt>value_type</tt> is, in general
-<tt>std::pair&lt;<b>const</b> Key, Data&gt;</tt>,
-but if <tt>Data</tt> is <tt>null_data_type</tt>, then the <tt>value_type</tt>
-is
-<tt>Key</tt>,
-and if
-<tt>Data</tt> is
-<tt>compound_data_type&lt;Cntnr&gt;</tt>, then the <tt>value_type</tt> is
-<tt>std::pair&lt;<b>const</b> Key, Cntnr&gt;</tt>.
-</p>
-
-<p>
- Futhermore, assume that <tt>Cntnr</tt> is an associative container with more than a single mapping level, and let <tt>Cntnr_</tt> be defined as
-</p>
-
-<pre>
-<b>typedef</b>
- <b>typename</b> Cntnr::<b>template</b> rebind&lt;i&gt;::other</tt>
- Cntnr_;
-</pre>
-<p>
-<i>i.e.</i>, the container rebound to a different mapping level.
-In this case, the <tt>value_type</tt> of the rebound container is not the <tt>value_type</tt>
-of the rebound container's iterators. <i>I.e.</i>, it is <emph>not</emph> true that
-<tt><b>typename</b> Cntnr_::value_type</tt> is the same as
-<tt><b>typename</b> Cntnr_::iterator::value_type</tt>. This complication never exists for the STL's container.
-</p>
-
-<h6 align = "center">
-<a name = "reference_iterator">
-<img src = "reference_iterator.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Iterator of a rebound type.
-</h6>
-
-
-<h3>Multisets</h3>
-
-<p>
- <tt>pb_assoc</tt> does not contain a &quot;multiset&quot; type. The closest equivalent is mapping keys to non-negative integral types, <i>e.g.</i>, <tt>size_t</tt>.
-</p>
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ms_tag_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/ms_tag_cd.jpg
deleted file mode 100644
index b114d93..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ms_tag_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ms_traits.html b/libstdc++-v3/docs/html/ext/pb_assoc/ms_traits.html
deleted file mode 100644
index 9336993..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ms_traits.html
+++ /dev/null
@@ -1,131 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>ms_traits Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>ms_traits
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Traits of a container based on its mapping semantics.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ms_trait.hpp"><tt>ms_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link1">Container attribues.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Container attribues.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "has_data3735929380">has_data</a></pre>
-
-
-</td>
-
-<td>
-<pre>True only if the container is not a &quot;set&quot type.</pre>
-
-
-</td>
-
-<td>
-<p>Data indicator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "has_compound_data3735929399">has_compound_data</a></pre>
-
-
-</td>
-
-<td>
-<pre>True only if the container is not a &quot;set&quot type or &quot;map&quot; type.</pre>
-
-
-</td>
-
-<td>
-<p>Compound-data indicator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "mapping_level3735929938">mapping_level</a></pre>
-
-
-</td>
-
-<td>
-<pre>The number of mapping-levels the container supports (1 for &quot;set&quot types or &quot;map&quot; types).</pre>
-
-
-</td>
-
-<td>
-<p>Mapping-level indicator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/node_invariant_invalidations.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/node_invariant_invalidations.jpg
deleted file mode 100644
index ea03b42..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/node_invariant_invalidations.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.html b/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.html
deleted file mode 100644
index 9d23841..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Node Invariants</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-<body bgcolor = "white">
-<h1>Node Invariants</h1>
-
-<p>
- Figure
-<a href = "#node_invariants">Some node invariants</a>
-shows some node invariants. A shows
-a tree whose each node contains, asides from an <tt>double</tt> key, the number
-of nodes at the subtree rooted at the node; B shows a tree whose each node
-contains, asides from a line-interval key, the maximal endpoint of the interval
-of any node in the subtree rooted at the node.
- The first tree allows querying efficiently what is the order statistic
-of any element; the second tree allows querying efficiently if any, or which,
-intervals overlap a given interval.
-</p>
-
-<h6 align = "center">
-<a name = "node_invariants">
-<img src = "node_invariants.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Some node invariants.
-</h6>
-
-
-<p>
- Maintaining such trees is difficult, for two reasons:
-</p>
-<ol>
- <li> Various operations can invalidate node invariants.
-<i>E.g.</i>, Figure
-<a href = "#node_invariant_invalidations">Invalidation of node invariants</a>
-shows how a right rotation, performed on A, results in B, with nodes <i>x</i>
-and <i>y</i> having corrupted invariants (the greyed nodes in C);
-Figure
-<a href = "#node_invariant_invalidations">Invalidation of node invariants</a>
-shows how an insert, performed on D, results in E, with nodes <i>x</i>
-and <i>y</i> having corrupted invariants (the greyed nodes in F).
- It is not feasible to know outside the tree the effect of an operation on the
-nodes of the tree.
- </li>
- <li>
- Even if node invariants are maintained, it is not possible to know
-in advance which search paths are required (<i>e.g.</i>, searching for all
-line intervals overlapping some interval might require several search paths).
- </li>
-</ol>
-
-
-<h6 align = "center">
-<a name = "node_invariant_invalidations">
-<img src = "node_invariant_invalidations.jpg" width = "80%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Invalidation of node invariants.
-</h6>
-
-<p>
- These problems are solved by a combination of two means:
-</p>
-
-<ol>
- <li>
- The tree-based containers are parameterized by a <tt>Node_Updator</tt>
-parameter. When a tree operation might invalidate some node invariant,
-a <tt>Node_Updator</tt> object is invoked to restore the invariant. This object is
-always invoked with three nodes: some node, say <i>x</i> in
-Figure
-<a href = "#restoring_node_invariants">Invalidation of node invariants</a>-A
-has an invalid invariant, but its children, <i>y</i> and <i>z</i> hav valid invariants.
-After the invocation, all three nodes have valid invariants, as
-in
-Figure
-<a href = "#restoring_node_invariants">Invalidation of node invariants</a>-B.
-It is well known that any <tt>insert</tt>, <tt>erase</tt>,
-<tt>split</tt> or <tt>join</tt>, can restore
-all node invariants by a small number of node invariant updates
-[<a href = "references.html#clrs2001">clrs2001</a>].
-For example, Figure
-<a href = "#update_seq_diagram">
-Insert update sequence diagram
-</a>
-shows an <tt>insert</tt> operation (point A); the tree performs some operations, and
-calls the update functor three times (points B, C, and D).
- </li>
- <li>
- The tree based containers all define internally <tt>node_iterator</tt>
- and <tt>const_node_iterator</tt>, iterators which can be used to traverse
- from a node to any of its children or parent.
- </li>
-</ol>
-
-<h6 align = "center">
-<a name = "restoring_node_invariants">
-<img src = "restoring_node_invariants.jpg" width = "80%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Invalidation of node invariants.
-</h6>
-
-<h6 align = "center">
-<a name = "update_seq_diagram">
-<img src = "update_seq_diagram.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert update sequence diagram.
-</h6>
-
-
-<p>
- In
-<a href = "concepts.html#concepts_null_policies">Null Policy Classes</a>
-a distinction was made between <i>redundant policies</i>
-and <i>null policies</i>.
-</p>
-
-<p>
- Seemingly, in this case a redundant policy - a policy which doesn't
-affect nodes' contents would suffice in this case. This, however, would
-lead to performance loss.
-Figure
-<a href = "#rationale_null_node_updator">
-Rationale for null node-invariant functors
-</a>
-shows a typical case where invariants are restored (in this case, to the
-shaded node). In most cases, tree operations such as rotations affect only
-the lower levels of the tree. A null policy allows to know that there
-is no need to traverse the tree to the root.
-</p>
-
-<h6 align = "center">
-<a name = "rationale_null_node_updator">
-<img src = "rationale_null_node_updator.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Rationale for null node-invariant functors.
-</h6>
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.jpg
deleted file mode 100644
index d9b96dd..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping.html b/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping.html
deleted file mode 100644
index 866ea52..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping.html
+++ /dev/null
@@ -1,404 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
- <title>Non-Unique Mapping Containers</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor="white">
-
-<h1>Non-Unique Mapping Containers</h1>
-
-<p>
- This section describes the design of non-unique mapping containers
-(multimaps and multisets). It is organized as follows:
-</p>
-<ol>
- <li> The <a href = "#general">Main Points</a> Section describes the main points.
- </li>
- <li>
- The <a href = "#types">Mapped Data Types and Mapped Value Types</a> Section
- describes some additional types that each associative container defines.
- </li>
- <li> The <a href = "generics">Generics</a> Section describes some classes for
- generic programming.
- </li>
- <li> The <a href = "#compound_keys">Compound Keys</a> Section describes an
- alternative to the STL's design of using equivalent, non-identical, keys.
- </li>
-</ol>
-
-<h2><a name = "general">Main Points</a></h2>
-
-<p>
- In <tt>pb_assoc</tt>, all associative containers have a unique-key design;
-each container can have at most one entry for any given key. Multimaps
-are designed as maps from keys to sets; multisets are designed as maps from
-keys to non-negative integral types.
-</p>
-
-
-
-<h2><a name = "types">Mapped Data Types and Mapped Value Types</a></h2>
-
-<p>
- The STL's design of associative containers elegantly allows
-generic manipulation of containers: each container defines
-<tt>data_type</tt> as the domain of its data;
-<tt>value_type</tt> as the domain of its relationship. This is not
-directly applicable in <tt>pb_assoc</tt>. Consider
-a multimap mapping <tt>Key</tt> objects to
-<tt>Data_Coll</tt> objects, where
-<tt>Data_Coll</tt> is some set-type of <tt>Data</tt>.
-Then should the multimap's <tt>value_type</tt> should be
-<tt>std::pair&lt;Key, Data&gt;</tt> or
-<tt>std::pair&lt;Key, Data_Coll&gt;</tt>, for example?.
-</p>
-
-<p>
- <tt>pb_assoc</tt> addresses this by differentiating
-between the <i>domain</i> and the <i>type</i> of relationship.
-All associative containers define <tt>value_type</tt> as
-the relationship's <i>domain</i>, and <tt>mapped_value_type</tt> as its
-<i>type</i>. <i>E.g.</i>, both
-map types and multimap types may share the same <tt>value_type</tt>,
-if they map from the same key domain to
-the same data domain. In this case, however, they will not share
-the same <tt>mapped_value_type</tt>, since the multimap type maps from the
-key domain to the domain of collections of data. The same
-differentiation exists between the domain and type of mapped data.
-</p>
-
-<p>
- In general, the following types describe the relationships
-of each associative container:
-</p>
-<ol>
- <li>
- <tt>key_type</tt>- This describes the domain of the keys of the container. All
- associative containers define this type.
- </li>
- <li>
- <tt>data_type</tt>- This describes the <i>domain</i> of the data mapped by a
- key. It is identical to the <tt>data_type</tt> defined by <tt>std::map</tt>, <tt>std::set</tt>,
- <tt>std::multimap</tt>, and <tt>std::multiset</tt>. Sets and multisets do not
- define this type, since they map each key to the abstract fact that the key is
- stored by them.
- </li>
- <li>
- <tt>mapped_data_type</tt>- This describes the <i>type</i> of the data mapped by
- a key. For maps, this is the same as <tt>data_type</tt>. For multimaps, this is
- not the same as <tt>data_type</tt>; The <tt>mapped_data_type</tt> describes the
- collection of <tt>data_type</tt>s used. Sets do not define this type. For
- multisets, the <tt>mapped_data_type</tt> describes the unsigned integral type
- used to indicate the number of occurrences of a key.
- </li>
- <li>
- <tt>value_type</tt>- This describes the <i>domain</i> of relationships store in
- a container. It is identical to the <tt>value_type</tt> defined by <tt>std::map</tt>,
- <tt>std::set</tt>, <tt>std::multimap</tt>, and <tt>std::multiset</tt>.
- </li>
- <li>
- <tt>mapped_value_type</tt>- This describes the <i>type</i> of relationships
- store in a container. It consists of information on the <tt>key_type</tt> and <tt>mapped_data_type</tt>
- (except for sets).
- </li>
-</ol>
-
-<p>
- The following table defines the above types for a map
-mapping from <tt>Key</tt> types to <tt>Data</tt> types:
-</p>
-<TABLE WIDTH="100%" BORDER="1" ID="Table1">
- <TR>
- <TD Width="50%" ALIGN="left"><b>type</b></TD>
- <TD Width="50%" ALIGN="left"><b>Description / Definition</b></TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>key_type</pre>
- </TD>
- <TD ALIGN="left"><pre>Key</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>data_type</pre>
- </TD>
- <TD ALIGN="left"><pre>Data</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>mapped_data_type</pre>
- </TD>
- <TD ALIGN="left"><pre>Data</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>value_type</pre>
- </TD>
- <TD ALIGN="left"><pre>std::pair&lt;<b>const</b> Key, Data&gt;</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>mapped_value_type</pre>
- </TD>
- <TD ALIGN="left"><pre>std::pair&lt;<b>const</b> Key, Data&gt;</pre>
- </TD>
- </TR>
-</TABLE>
-
-
-<p>The following table defines the above types for a
-set storing <tt>Key</tt> types:</p>
-<TABLE WIDTH="100%" BORDER="1" ID="Table2">
- <TR>
- <TD Width="50%" ALIGN="left"><b>type</b></TD>
- <TD Width="50%" ALIGN="left"><b>Description / Definition</b></TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>key_type</pre>
- </TD>
- <TD ALIGN="left"><pre>Key</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>data_type</pre>
- </TD>
- <TD ALIGN="left">-</TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>mapped_data_type</pre>
- </TD>
- <TD ALIGN="left">-</TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>value_type</pre>
- </TD>
- <TD ALIGN="left"><pre><b>const</b> Key</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>mapped_value_type</pre>
- </TD>
- <TD ALIGN="left"><pre><b>const</b> Key</pre>
- </TD>
- </TR>
-</TABLE>
-
-<p>The following table defines the above types for a multimap
-mapping from <tt>Key</tt> types to <tt>Data_Coll&lt;Data&gt;</tt>
-types, where <tt>Data_Coll&lt;Data&gt;</tt>
-is a set of <tt>Data</tt> types:</p>
-<TABLE WIDTH="100%" BORDER="1" ID="Table3">
- <TR>
- <TD Width="50%" ALIGN="left"><b>type</b></TD>
- <TD Width="50%" ALIGN="left"><b>Description / Definition</b></TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>key_type</pre>
- </TD>
- <TD ALIGN="left"><pre>Key</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>data_type</pre>
- </TD>
- <TD ALIGN="left"><pre>Data</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>mapped_data_type</pre>
- </TD>
- <TD ALIGN="left"><pre>Data_Coll&lt;Data&gt;</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>value_type</pre>
- </TD>
- <TD ALIGN="left"><pre>std::pair&lt;<b>const</b> Key, Data&gt;</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>mapped_value_type</pre>
- </TD>
- <TD ALIGN="left"><pre>std::pair&lt;<b>const</b> Key, Data_Coll&lt;Data&gt; &gt;</pre>
- </TD>
- </TR>
-</TABLE>
-
-<p>The following table defines the above types for a multiset
-storing <tt>Key</tt> types:</p>
-<TABLE WIDTH="100%" BORDER="1" ID="Table4">
- <TR>
- <TD Width="50%" ALIGN="left"><b>type</b></TD>
- <TD Width="50%" ALIGN="left"><b>Description / Definition</b></TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>key_type</pre>
- </TD>
- <TD ALIGN="left"><pre>Key</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>data_type</pre>
- </TD>
- <TD ALIGN="left">-</TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>mapped_data_type</pre>
- </TD>
- <TD ALIGN="left"><pre>size_type</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>value_type</pre>
- </TD>
- <TD ALIGN="left"><pre>std::pair&lt;<b>const</b> Key, size_type&gt;</pre>
- </TD>
- </TR>
- <TR>
- <TD ALIGN="left"><pre>mapped_value_type</pre>
- </TD>
- <TD ALIGN="left"><pre><b>const</b> Key</pre>
- </TD>
- </TR>
-</TABLE>
-
-<p>
- The above types allow to define simple invariants on the interfaces of
-containers. For example, each container defines both an <tt>insert</tt> method
-which takes a const reference to a <tt>value_type</tt>, and an <tt>insert</tt> method
-which takes a const reference to a <tt>mapped_value_type</tt>. Containers for
-which both these types are synonymous (<i>i.e.</i>, maps and sets), consequently
-have a
-single <tt>insert</tt> method. Containers for which these types are distinct (<i>i.e.</i>,
-multimaps and multisets), use overloading.
-</p>
-
-
-
-
-
-<h2><a name="generics">Generics</a></h2>
-<p>
- <tt>pb_assoc</tt> contains a number of utility classes to ease generic
-programming.
-</p>
-
-<p>
- There are four container-type identifiers, <a href="is_map_type.html"><tt>is_map_type</tt></a>,
-<a href="is_set_type.html"><tt>is_set_type</tt></a>, <a href="is_multimap_type.html">
- <tt>is_multimap_type</tt></a>, and <a href="is_multiset_type.html"><tt>is_multiset_type</tt></a>.
-Given a container <tt>T</tt>, for example, it is possible to query at compile
-time whether it is a a multimap type by writing <tt>is_multimap_type&lt;T&gt;::value</tt>.
-(This is probably very similar to [<a href="references.html#boost_concept_check">boost_concept_check</a>]
-and [<a href="references.html#boost_type_traits">boost_type_traits</a>].)
-</p>
-
-<p>
- In some cases, it is necessary, given a container and an iterator, to query the
-iterator' <tt>value_type</tt> to the container's <tt>value_type</tt> and <tt>mapped_value_type</tt>.
-The classes
-<a href="is_mapped_value_iterator.html"><tt>is_mapped_value_iterator</tt></a>
-and <a href="iterator_key.html"><tt>iterator_key</tt></a> can be used for this.
-</p>
-
-<p>
- The STL's <tt>std::multimap</tt> and <tt>std::multiset</tt> allow iterating
-over all <tt>value_type</tt>s stored in them, which is convenient. The library
-provides a <a href="value_iterators.html"><tt>value_iterator</tt></a> for this.
-This is an iterator adapter over the containers' native iterators.
-</p>
-
-
-
-
-<h2><a name = "compound_keys">Compound Keys</a></h2>
-
-<p>
- The STL allows using equivalent, non-identical, keys.
-For example, let <tt>interval</tt> be a line-interval class,
-<tt>color</tt> be a
-color type, <tt>thickness</tt> be a thickness type, and <tt>colored_interval</tt>
-be a class composed of an <tt>interval</tt> and a <tt>color</tt>.
-</p>
-
-<p>
- Suppose one wants to store <tt>colored_interval</tt>
-objects using a comparison predicate ignoring colors. Then
-in the STL's design, one would use
-<tt>multiset&lt;colored_interval&gt;</tt>; in <tt>pb_assoc</tt>'s design,
-one would use one of the following:
-</p>
-<ol>
- <li>
- A map mapping <tt>interval</tt> objects to
-<tt>color</tt> objects. This, however, assumes that
-<tt>colored_interval</tt> is decomposable to, and constructible from,
-<tt>interval</tt> and <tt>color</tt>.
- </li>
- <li>
- A map mapping <tt>colored_interval</tt> objects to
-<tt>color</tt> objects. In this (less efficient) case, a <tt>colored_interval</tt> object
-is a "representative" of all colored intervals with the same endpoints.
- </li>
-</ol>
-
-<p>
- Suppose one wants to map <tt>colored_interval</tt>
-objects to <tt>thickness</tt> objects
-using a comparison predicate ignoring colors. Then
-in the STL's design, one would use
-<tt>multimap&lt;colored_interval, thickness&gt;</tt>; in <tt>pb_assoc</tt>'s design,
-one would use one of the following:
-</p>
-<ol>
- <li> A map mapping <tt>interval</tt> objects to
-<tt>std::pair&lt;color, thickness&gt;</tt> objects. This, however, assumes that
-<tt>colored_interval</tt> is decomposable to, and constructible from,
-<tt>interval</tt> and <tt>color</tt>.
- </li>
- <li> A map mapping <tt>colored_interval</tt> objects to
-<tt>std::pair&lt;color, thickness&gt;</tt> objects. In this (less efficient) case, a <tt>colored_interval</tt> object
-is a "representative" of all colored intervals with the same endpoints.
- </li>
-</ol>
-
-<p>
-(From the above, it is apparent that the STL's design has an advantage
-over <tt>pb_assoc</tt>'s design in terms of convenience. Nonethless, there
-are efficiency limitation in the STL's design (see
-<a href = "motivation.html#unique_key">Unique-Key Design for Multimaps and Multisets</a>).)
-</p>
-
-<p>
- The above example, using intervals, colors and thicknesses, can be generalized.
-Let
-<tt>key_unique_part</tt> be a unique part of some key
-(<i>e.g.</i>, <tt>interval</tt> in the above),
-<tt>key_non_unique_part</tt> be a non-unique part of some key
-(<i>e.g.</i>, <tt>color</tt> in the above),
-<tt>key</tt> be some key composed of unique and non-uniqe parts
-(<i>e.g.</i>, <tt>colored_interval</tt> in the above),
-and
-<tt>data</tt> be some data
-(<i>e.g.</i>, <tt>thickness</tt> in the above).
-Then the <a href = "#stl_to_pb_assoc_non_unique_mapping">
-figure shows some
-STL containers and the <tt>pb_assoc</tt> counterparts.
-</a>
-
-</p>
-
-
-<h6 align = "center">
-<a name = "stl_to_pb_assoc_non_unique_mapping">
-<img src = "stl_to_pb_assoc_non_unique_mapping.jpg" alt = "no-image" width = "60%">
-</a>
-</h6>
-<h6 align = "center">
-STL containers and <tt>pb_assoc</tt> counterparts.
-</h6>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping_containers.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping_containers.jpg
deleted file mode 100644
index 3bdacd0..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping_containers.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/null_data_type.html b/libstdc++-v3/docs/html/ext/pb_assoc/null_data_type.html
deleted file mode 100644
index b5d0120..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/null_data_type.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>null_data_type Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>null_data_type
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A data-policy indicating that an associative container is a &quot;set&quot;
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/data_type.hpp"><tt>data_type.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/null_hash_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/null_hash_fn.html
deleted file mode 100644
index 083de7e..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/null_hash_fn.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>null_hash_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>null_hash_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A &quot;null&quot; hash function, indicating that the combining hash function is actually a ranged-hash function.
-</p>
-
-<p><a href = "concepts.html#concepts_null_policies">Null Policy Classes</a> explains the concept ofa null policy.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/null_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/null_probe_fn.html
deleted file mode 100644
index 1088b6b..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/null_probe_fn.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>null_probe_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>null_probe_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A &quot;null&quot; probe function, indicating that the combining probe function is actually a ranged probe function.
-</p>
-
-<p><a href = "concepts.html#concepts_null_policies">Null Policy Classes</a> explains the concept ofa null policy.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/order_by_key.html b/libstdc++-v3/docs/html/ext/pb_assoc/order_by_key.html
deleted file mode 100644
index 0b37f53..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/order_by_key.html
+++ /dev/null
@@ -1,254 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>order_by_key Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>order_by_key
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Finds an order corresponding to an entry within the sequence.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/order_statistics_key.hpp"><tt>order_statistics_key.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Container definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Operators.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Cntnr3735929076">Cntnr</a></pre>
-
-
-</td>
-
-<td>
-<p>Container type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "order_statistics_key_type3735929828">order_statistics_key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Cntnr3735929076">Cntnr</a>::key_type</pre>
-
-
-</td>
-
-<td>
-<p>Order-statistics key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "underlying_key_type3735929533">underlying_key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#order_statistics_key_type3735929828">order_statistics_key_type</a>::key_type</pre>
-
-
-</td>
-
-<td>
-<p>Underlying key type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cntnr3735929108">cntnr</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cntnr3735929076">Cntnr</a></pre>
-
-
-</td>
-
-<td>
-<p>Container type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#cntnr3735929108">cntnr</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Container's size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Operators.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- <b>operator</b>()
- (<b>const</b> <a href = "#Cntnr3735929076">Cntnr</a> &amp;r_c,
- <b>const</b> <a href = "#underlying_key_type3735929533">underlying_key_type</a> &amp;r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the order of a key within a sequence. For exapmle, if <font color = "#666666"><tt>r_key</tt></font> is the smallest key in <font color = "#666666"><tt>r_c</tt></font>, this method will return 0; if <font color = "#666666"><tt>r_key</tt></font> is a key between the smallest and next key in <font color = "#666666"><tt>r_c</tt></font>, this method will return 1; if <font color = "#666666"><tt>r_key</tt></font> is a key larger than the largest key in <font color = "#666666"><tt>r_c</tt></font>, this method will return the size of <font color = "#666666"><tt>r_c</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key.html b/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key.html
deleted file mode 100644
index 7417910..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key.html
+++ /dev/null
@@ -1,373 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>order_statistics_key Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>order_statistics_key
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A &quot;key&quot; type using rank metadata for order statistics.
-</p>
-
-<p>The class is composed of the logical key and the rank of the element (the number of elements in its subtree).
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/order_statistics_key.hpp"><tt>order_statistics_key.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Misc.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link5">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Conversions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-<p>The allocator is only used for definitions, e.g., size_type, pointer, and reference.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a> &gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_reference3735929926">key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
- <a href = "#Key3735928856">Key</a> &gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Key reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Misc.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>explicit</b>
- order_statistics_key
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key = <a href = "#Key3735928856">Key</a>())</pre>
-
-
-</td>
-
-<td>
-<p>Constructor which takes a logical key.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Conversions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
- <b>operator</b> <a href = "#key_reference3735929926">key_reference</a>
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Conversion to logical key.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> <b>inline</b>
- <b>operator</b> <a href = "#key_type3735929433">key_type</a>
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Conversion to logical key.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key_cmp.html b/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key_cmp.html
deleted file mode 100644
index d85f4fa..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key_cmp.html
+++ /dev/null
@@ -1,422 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>order_statistics_key_cmp Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>order_statistics_key_cmp
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A comparison functor. Transforms any comparison functor operating on logical keys to a comparison functor operating on order statistics keys.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/order_statistics_key.hpp"><tt>order_statistics_key.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Key-type definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link5">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Operators.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Policy access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor.</p>
-
-
-</td>
-
-<td>
-<pre>std::less&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-<p>The allocator is only used for definitions, e.g., size_type, pointer, and reference.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>std::binary_function&lt;
- order_statistics_key&lt;
- <b>typename</b> <a href = "#Cmp_Fn3735929122">Cmp_Fn</a>::first_argument_type, <a href = "#Allocator3735929488">Allocator</a>&gt;,
- order_statistics_key&lt;
- <b>typename</b> <a href = "#Cmp_Fn3735929122">Cmp_Fn</a>::second_argument_type, <a href = "#Allocator3735929488">Allocator</a>&gt;,
- <b>bool</b>&gt;</pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre>order_statistics_key&lt;
- <b>typename</b> <a href = "#Cmp_Fn3735929122">Cmp_Fn</a>::first_argument_type, <a href = "#Allocator3735929488">Allocator</a>&gt;</pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
- <a href = "#key_type3735929433">key_type</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
- order_statistics_key_cmp
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b>
- order_statistics_key_cmp
- (<b>const</b> <a href = "#Cmp_Fn3735929122">Cmp_Fn</a> &amp;r_cmp_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking a comparison functor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Operators.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- <b>operator</b>()
- (<a href = "#const_key_reference3735929552">const_key_reference</a> r_lhs_key,
- <a href = "#const_key_reference3735929552">const_key_reference</a> r_rhs_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Compares two keys.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
- get_cmp_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the comparison functor object used.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
- get_cmp_fn
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the comparison functor object used.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_node_updator.html b/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_node_updator.html
deleted file mode 100644
index a9acbb4..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_node_updator.html
+++ /dev/null
@@ -1,278 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>order_statistics_node_updator Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>order_statistics_node_updator
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Functor updating ranks of entries.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/order_statistics_key.hpp"><tt>order_statistics_key.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Key-type definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-<p>The allocator is only used for definitions, e.g., size_type, pointer, and reference.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre>order_statistics_key&lt;
- <a href = "#Key3735928856">Key</a>,
- <a href = "#Allocator3735929488">Allocator</a>&gt;</pre>
-
-
-</td>
-
-<td>
-<p>Key-type on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_pointer3735929445">const_key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
- <a href = "#key_type3735929433">key_type</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Key pointer-type on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- swap
- (<font color = "olive">order_statistics_node_updator</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- <b>operator</b>()
- (<a href = "#const_key_pointer3735929445">const_key_pointer</a> p_key,
- <a href = "#const_key_pointer3735929445">const_key_pointer</a> p_l_child_key,
- <a href = "#const_key_pointer3735929445">const_key_pointer</a> p_r_child_key)</pre>
-
-
-</td>
-
-<td>
-<p>Updates the rank of a key given its child keys.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ov_tree_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/ov_tree_ds_tag.html
deleted file mode 100644
index 38878b6..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ov_tree_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>ov_tree_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>ov_tree_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Ordered-vector tree data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_tree_ds_tag.html"><tt>basic_tree_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/overview.html b/libstdc++-v3/docs/html/ext/pb_assoc/overview.html
deleted file mode 100644
index 0caa370..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/overview.html
+++ /dev/null
@@ -1,139 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Overview</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-<body bgcolor = "white">
-
-
-<h1>Overview</h1>
-
-<p>
- The <a href = "introduction.html">Introduction</a> Section described some challenges
-in designing associative containers. This section describes the <tt>pb_assoc</tt>'s solution.
-</p>
-
-
-<p>
-Figure
-<a href = "#cd">Class hierarchy</a>
-shows a class diagram of <tt>pb_assoc's associative containers.</tt>
-Associative container classes subclass other associative container classes such that
-base classes capture common types and methods
-[<a href = "references.html#stroustrup97cpp">stroustrup97cpp</a>]. The type <tt>hash_fn</tt> is defined in <a href = "basic_hash_assoc_cntnr.html"><tt>basic_hash_assoc_cntnr</tt></a>, for example, since all hash-based containers employ a hash function;
-<a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a>
-and
-<a href = "gp_hash_assoc_cntnr.html"><tt>gp_hash_assoc_cntnr</tt></a>,
-subclasses encapsulating a collision-chaining and (general) probing hash table, respectively, each define other types specific for their underlying data-structure.
-This is described further in
-<a href = "ds_gen.html">Data-Structure Genericity</a>.
-</p>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Class hierarchy.
-</h6>
-
-<p>
- It is sometimes useful to know the underlying data-structure.
-Associative containers internally define <tt>ds_category</tt> as a class describing this. Two classes might be different instantiations
-of
-<a href = "tree_assoc_cntnr.html"><tt>tree_assoc_cntnr</tt></a>, but one might be based on a red-black tree while another might be based on a splay tree. (This might affect the way tree objects should be manipulated.) <tt><b>typename</b> Cntnr::ds_category</tt>
-yields a &quot;tag&quot; class for the underlying data-structure of some type
-<tt>Cntnr</tt>.
-This is described further in
-<a href = "ds_gen.html">Data-Structure Genericity</a>.
-</p>
-
-<p>
- When manipulating generic containers, it is useful to know which types, methods, and guarantees they support. For example, tree-based containers can support split and join operations, while containers based on most other underlying data-structures cannot.
-These questions can be answered in compile time through a traits mechanism.
-<a href = "ds_traits.html"><tt>ds_traits</tt>&lt;Cntnr&gt;::split_join</a>, for example, answers the above question.
-This is described further in
-<a href = "ds_gen.html">Data-Structure Genericity</a>;
-<a href = "../example/ds_traits_example.cpp"><tt>ds_traits_example.cpp</tt></a>-
-shows an example.
-</p>
-
-<p>
- <tt>pb_assoc</tt> does not contain separate containers for different mapping semantics,
-as the STL does (<i>e.g.</i>, <tt>std::map</tt> and <tt>std::multimap</tt>). Rather, containers are parameterized by a <tt>Data</tt> parameter, and this parameter is a policy for the mapping semantics.
-</p>
-<ol>
- <li>
- Instantiating a container's <tt>Data</tt> parameter by all but two distingished types, will make a &quot;map&quot;. Thus
-<pre>
-<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;
- <b>int</b>,
- <b>char</b>&gt;
-</pre> is a type mapping each <tt><b>int</b></tt> value to a <tt><b>char</b></tt>
- value.
- <a href = "../example/basic_map_example.cpp"><tt>basic_map_example.cpp</tt></a>
- shows an example.
- </li>
- <li>
- Instantiating a container's <tt>Data</tt> parameter by <a href = "null_data_type.html"><tt>null_data_type</tt></a> will make a &quot;set&quot;. Thus
-<pre>
-<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;
- <b>int</b>,
- <a href = "null_data_type.html">null_data_type</a>&gt;
-</pre>
-is a type storing unique <tt><b>int</b></tt> values.
-<a href = "../example/basic_set_example.cpp"><tt>basic_set_example.cpp</tt></a> shows an example.
- </li>
- <li>
- Instantiating a container's <tt>Data</tt> parameter by <a href = "compound_data_type.html"><tt>compound_data_type</tt></a><tt>&lt;Cntnr&gt;</tt>, where <tt>Cntnr</tt> is a different associative container, will make a &quot;(multi)+map&quot;. Thus
-<pre>
-<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;
- <b>int</b>,
- <a href = "compound_data_type.html">compound_data_type</a>&lt;
- <a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;
- <b>char</b>,
- <a href = "null_data_type.html">null_data_type</a>&gt; &gt; &gt;
-</pre>
- is a type
-mapping each <tt><b>int</b></tt> value to a &quot;set&quot; of <tt><b>char</b></tt>
-values.
-<a href = "../example/basic_multimap_example.cpp"><tt>basic_multimap_example.cpp</tt></a> shows an example.
-This composition is recursive, however, and more complex relationships can be built.
-<a href = "../example/mapping_level_example.cpp"><tt>mapping_level_example.cpp</tt></a> shows an example.
- </li>
-</ol>
-
-<p>
- The associative-container classes derive each from one of the three
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a> classes, depending
-on the data policy. These three base classes define different types and methods. For example, the &quot;map&quot; specialization of
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>
-defines <tt><b>operator</b>[]</tt>, wherase the &quot;set&quot; specialization does not.
-This is described further in
-<a href = "ms_gen.html">Mapping-Semantic Genericity</a>.
-</p>
-
-<p>
- <tt>pb_assoc</tt>'s design contains the concept of a <i>mapping level</i>. &quot;Map&quot; and &quot;set&quot; types have a single mapping level; A container
-mapping integers to &quot;maps&quot; mapping characters to floats has two mapping levels, since it can be viewed as a type mapping each integer to a &quot;map&quot;, or as a type mapping each pair of integer and character to a float. <tt>pb_assoc</tt> contains traits and rebind mechanisms for querying and altering the mapping levels.
-This is described further in
-<a href = "ms_gen.html">Mapping-Semantic Genericity</a>.
-</p>
-
-<p>
- The leaf classes in Figure
-<a href = "#cd">Class hierarchy</a>
-are each parameterized by policies, easing configuring containers for different settings.
-<a href = "hash_based_containers.html">Hash-Based Containers</a> describes the design and policies of hash-based containers,
- <a href = "tree_based_containers.html">Tree-Based Containers</a> describes the design and policies of tree-based containers, and
- <a href = "lu_based_containers.html">List-Based Containers</a> describes the design and policies of list-based containers with update policies.
-
-</p>
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/pb_assoc_ex.html b/libstdc++-v3/docs/html/ext/pb_assoc/pb_assoc_ex.html
deleted file mode 100644
index 8895bc2..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/pb_assoc_ex.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>pb_assoc_ex Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>pb_assoc_ex
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Base class for pb_assoc's exceptions.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/pb_assoc_ex.hpp"><tt>pb_assoc_ex.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>std::logic_error</pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/portability.html b/libstdc++-v3/docs/html/ext/pb_assoc/portability.html
deleted file mode 100644
index ab7e9c8..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/portability.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Portability</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Portability</h1>
-
-<h2>Sucessfully Tested Compilers</h2>
-<ol>
- <li>g++ 3.3.1</li>
- <li>g++ 3.4.4</li>
- <li>g++ 4</li>
- <li>icc 8.1</li>
- <li>Visual C++ .Net 7.1</li>
-</ol>
-
-<h2>Unsucessfully Tested Compilers</h2>
-<ol>
- <li>g++ 2.9.6</li>
- <li>Visual C++ 6</li>
-</ol>
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/quadratic_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/quadratic_probe_fn.html
deleted file mode 100644
index 1e3dea1..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/quadratic_probe_fn.html
+++ /dev/null
@@ -1,238 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>quadratic_probe_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>quadratic_probe_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A probe sequence policy using square increments.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Offset methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Const_Key_Ref3735929850">Const_Key_Ref</a></pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">quadratic_probe_fn</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Offset methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
- <b>operator</b>()
- (<a href = "#Const_Key_Ref3735929850">Const_Key_Ref</a> r_key,
- <a href = "#size_type3735929547">size_type</a> i) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <font color = "#666666"><tt>i</tt></font>-th offset from the hash value.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/range_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_assoc/range_invalidation_guarantee.html
deleted file mode 100644
index f91e452..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/range_invalidation_guarantee.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>range_invalidation_guarantee Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>range_invalidation_guarantee
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Signifies an invalidation guarantee that includes all those of its base, and additionally, that any range-type iterator (including the returns of begin() and end()) is in the correct relative positions to other range-type iterators as long as its corresponding entry has not be erased, regardless of modifications to the container object.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "find_invalidation_guarantee.html"><tt>find_invalidation_guarantee</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/rank_node_invariants.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/rank_node_invariants.jpg
deleted file mode 100644
index ea01b0a..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/rank_node_invariants.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/rationale_null_node_updator.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/rationale_null_node_updator.jpg
deleted file mode 100644
index c798ec1..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/rationale_null_node_updator.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/rb_tree_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/rb_tree_ds_tag.html
deleted file mode 100644
index 5c59414..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/rb_tree_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>rb_tree_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>rb_tree_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Red-black tree data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_tree_ds_tag.html"><tt>basic_tree_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/reference_iterator.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/reference_iterator.jpg
deleted file mode 100644
index a9cc63e..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/reference_iterator.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/references.html b/libstdc++-v3/docs/html/ext/pb_assoc/references.html
deleted file mode 100644
index 17e6790..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/references.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
-<head>
- <title>References</title>
-</head>
-
-<body bgcolor = "white">
-<h1>References</h1>
-<ol>
- <li> [<a name="abrahams97exception">abrahams97exception</a>] Dave Abrahams,
- STL Exception Handling Contract,
- <a href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf">http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf</a>
-
- <li> [<a name = "alexandrescu01modern">alexandrescu01modern</a>] Andrei Alexandrescu, <i>Modern C++ Design: Generic Programming and Design Patterns Applied</i>, Addison-Wesley Publishing Company, 2001 </li>
-
- <li> [<a name = "andrew04mtf">andrew04mtf</a>] K. Andrew and D. Gleich, "MTF, Bit, and COMB: A Guide to Deterministic and Randomized Algorithms for the List Update Problem"</li>
-
- <li> [<a name = "austern00noset">austern00noset</a>] Matthew Austern, "Why You shouldn't use <tt>set</tt> - and What You Should Use Instead", C++ Report, April, 2000 </li>
-
- <li> [<a name = "austern01htprop">austern01htprop</a>] Matthew Austern, "A Proposal to Add Hashtables to the Standard Library", <a href= "http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2001/n1326l.html">http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2001/n1326l.html</a> </li>
-
- <li> [<a name = "austern98segmented">austern98segmented</a>] Matthew Austern, "Segmented iterators and hierarchical algorithms", Generic Programming, April 1998, pp. 80-90 </li>
-
- <li> [<a name = "boost_timer">boost_timer</a>], "Boost <tt>timer</tt> library", <a href = "http://www.boost.org/">http://www.boost.org</a> by Beman Dawes </li>
-
- <li> [<a name = "boost_type_traits">boost_type_traits</a>], "Boost <tt>type_traits</tt> library", <a href = "http://www.boost.org/">http://www.boost.org</a> by John Maddock, Steve Cleary, <i>et. al.</i> </li>
-
- <li> [<a name = "bulka99efficient">bulka99efficient</a>] D. Bulka, and D. Mayhew, "Efficient C++ Programming Techniques.", Addison-Wesley Publishing Company, Addison-Wesley, 1997 </li>
-
- <li> [<a name = "clrs2001">clrs2001</a>] T. H. Cormen, C. E., Leiserson, R. L. Rivest, C. and Stein, "Introduction to Algorithms, 2nd ed.", MIT Press, 2001 </li>
-
- <li> [<a name = "dinkumware_stl">dinkumware_stl</a>], "Dinkumware C++ Library Reference", <a href = "http://www.dinkumware.com/htm_cpl/index.html">http://www.dinkumware.com/htm_cpl/index.html</a> </li>
-
- <li> [<a name = "dubhashi98neg">dubhashi98neg</a>] D. Dubashi, and D. Ranjan, "Balls and bins: A study in negative dependence.", Random Structures and Algorithms 13, 2 (1998), 99-124 </li>
-
- <li> [<a name = "fagin79extendible">fagin79extendible</a>] R. Fagin, J. Nievergelt, N. Pippenger, and H. R. Strong, "Extendible hashing — a fast access method for dynamic files", ACM Trans. Database Syst. 4, 3 (1979), 315-344 </li>
-
- <li> [<a name = "gamma95designpatterns">gamma95designpatterns</a>] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, "Design Patterns - Elements of Reusable Object-Oriented Software", Addison-Wesley Publishing Company, Addison-Wesley, 1995 </li>
-
- <li> [<a name = "garg86order">garg86order</a>] A. K. Garg and C. C. Gotlieb, "Order-preserving key transformations", Trans. Database Syst. 11, 2 (1986), 213-234 </li>
-
- <li> [<a name = "genome_dna">genome_dna</a>], "Whole Genome Shotgun entries", <a href = "ftp://ftp.ebi.ac.uk/pub/databases/embl/wgs/wgs_aady01.dat.gz">ftp://ftp.ebi.ac.uk/pub/databases/embl/wgs/wgs/_aady01.dat.gz</a> </li>
-
- <li> [<a name = "hyslop02making">hyslop02making</a>] J. Hyslop, and H. Sutter, "Making a real hash of things", C++ Report, May 2002 </li>
-
- <li> [<a name = "jossutis01stl">jossutis01stl</a>] N. M. Jossutis, "The C++ Standard Library - A Tutorial and Reference", Addison-Wesley Publishing Company, Addison-Wesley, 2001 </li>
-
- <li> [<a name = "kleft00sets">kleft00sets</a>] Klaus Kleft and Angelika Langer, "Are Set Iterators Mutable or Immutable?", C/C++ Users Jornal, October 2000 </li>
-
- <li> [<a name = "knuth98sorting">knuth98sorting</a>] D. E. Knuth, "The Art of Computer Programming - Sorting and Searching", Addison-Wesley Publishing Company, Addison-Wesley, 1998 </li>
-
- <li> [<a name = "liskov98data">liskov98data</a>] B. Liskov, "Data abstraction and hierarchy", SIGPLAN Notices 23, 5 (May 1998) </li>
-
- <li> [<a name = "litwin80lh">litwin80lh</a>] W. Litwin, "Linear hashing: A new tool for file and table addressing", Proceedings of International Conference on Very Large Data Bases (June 1980), pp. 212-223 </li>
-
- <li> [<a name = "metrowerks_stl">metrowerks_stl</a>], "Metrowerks CodeWarrior Pro 7 MSL C++ Reference Manual", </li>
-
- <li> [<a name = "meyers96more">meyers96more</a>] S. Meyers, "More Effective C++: 35 New Ways to Improve Your Programs and Designs - 2nd ed.", Addison-Wesley Publishing Company, Addison-Wesley, 1996 </li>
-
- <li> [<a name = "meyers00nonmember">meyers00nonmember</a>] S. Meyers, "How Non-Member Functions Improve Encapsulation", C/C++ Users Journal, 2000 </li>
-
- <li> [<a name = "meyers01stl">meyers01stl</a>] S. Meyers, "Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library", Addison-Wesley Publishing Company, Addison-Wesley, 2001 </li>
-
- <li> [<a name = "meyers02both">meyers02both</a>] S. Meyers, "Class Template, Member Template - or Both?", C/C++ Users Journal, 2003 </li>
-
- <li> [<a name = "motwani95random">motwani95random</a>] R. Motwani, and P. Raghavan, "Randomized Algorithms", Cambridge University Press </li>
-
- <li> [<a name = "mscom">mscom</a>] <a href = "http://www.microsoft.com/com">COM: Component Model Object Technologies</a> </li>
-
- <li> [<a name = "musser95rationale">musser95rationale</a>], David R. Musser, "Rationale for Adding Hash Tables to the C++ Standard Template Library" </li>
-
- <li> [<a name = "musser96stltutorial">musser96stltutorial</a>] D. R. Musser and A. Saini, "STL Tutorial and Reference Guide", Addison-Wesley Publishing Company, Addison-Wesley, 1996 </li>
-
- <li> [<a name = "sgi_stl">sgi_stl</a>] SGI, "Standard Template Library Programmer's Guide", <a href = "http://www.sgi.com/tech/stl">http://www.sgi.com/tech/stl</a> </li>
-
- <li> [<a name = "sleator84amortized">sleator84amortized</a>] D. D. Sleator and R. E. Tarjan, "Amortized Efficiency of List Update Problems", ACM Symposium on Theory of Computing, 1984 </li>
-
- <li> [<a name = "sleator85self">sleator85self</a>] D. D. Sleator and R. E. Tarjan, "Self-Adjusting Binary Search Trees", ACM Symposium on Theory of Computing, 1985 </li>
-
- <li> [<a name = "stepanov94standard">stepanov94standard</a>] A. A. Stepanov and M. Lee", "The Standard Template Library" </li>
-
- <li> [<a name = "stroustrup97cpp">stroustrup97cpp</a>] Bjarne Stroustrup, <i>The C++ Programming Langugage -3rd ed.</i>, Addison-Wesley Publishing Company,Reading, MA, USA, 1997 </li>
-
- <li> [<a name = "vandevoorde2002cpptemplates">vandevoorde2002cpptemplates</a>] D. Vandevoorde, and N. M. Josuttis, "C++ Templates: The Complete Guide", Addison-Wesley Publishing Company, Addison-Wesley, 2002 </li>
-
- <li> [<a name = "wickland96thirty">wickland96thirty</a>] C. A. Wickland, "Thirty Years Among the Dead", National Psychological Institute, Los Angeles, 1996,<a href = "http://myweb.wvnet.edu/~gsa00121/books/amongdead30.zip">http://myweb.wvnet.edu/gsa00121/books/amongdead30.zip</a></li>
-
-</ol>
-
-<HR>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/regression_tests.html b/libstdc++-v3/docs/html/ext/pb_assoc/regression_tests.html
deleted file mode 100644
index 491be1f..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/regression_tests.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Regression Tests</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Regression Tests</h1>
-
-
-<h2>Basic Regression</h2>
-
-
-<h2>Tree-Based Regression Tests</h2>
-
-<h3>Order-Statistics</h3>
-
-<p>
-Source code:
-<a href = "../testsuite/regression/tree_order_statistics_regression_test.cpp"><tt>tree_order_statistics_regression_test.cpp</tt></a>.
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/resize_general.html b/libstdc++-v3/docs/html/ext/pb_assoc/resize_general.html
deleted file mode 100644
index 118e075..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/resize_general.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Resize Policies</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body>
-<h1>Resize Policies</h1>
-
-<p>
- A resize policy, say <tt>res_pol</tt>, should support the types and
-methods below.
-<ol>
- <li><a href = "resize_policy_types.html">Types</a></li>
- <li> Methods:
- <ol>
- <li><a href = "resize_policy_constr_dest.html">Constructors, destructor, and related</a></li>
- <li><a href = "resize_policy_notification_methods.html">Notification methods</a></li>
- <li><a href = "resize_policy_size_methods.html">Size methods</a></li>
- <li><a href = "resize_policy_trigger_methods.html">Trigger methods</a></li>
- </ol>
- </li>
-</ol>
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/resize_policies.html b/libstdc++-v3/docs/html/ext/pb_assoc/resize_policies.html
deleted file mode 100644
index 63819dc7..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/resize_policies.html
+++ /dev/null
@@ -1,487 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Resize Policies</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-<body bgcolor = "white">
-<h1>Hash-Based Continers' Resize Policies</h1>
-
-<p>
- This subsection describes resize policies. It is organized as follows:
-</p>
-
-<ol>
- <li> The <a href = "#general">General Terms</a> Subsection describes general
- terms.
- </li>
- <li> The <a href = "#size_policies">Size Policies</a> Subsection describes size
- policies.
- </li>
- <li> The <a href = "#trigger_policies">Trigger Policies</a> Subsection describes trigger
- policies.
- </li> <li> The <a href = "#imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a>
- Subsection describes the implementation of these concepts in <tt>pb_assoc</tt>.
- </li>
-</ol>
-
-
-<h2><a name = "general">General Terms</a></h2>
-
-<p>
- Hash-tables, as opposed to trees, do not naturally grow or shrink. It
-is necessary to specify policies to determine how and when a hash table should change
-its size.
-</p>
-
-<p>
- In general, resize policies can be decomposed into (probably orthogonal)
-policies:
-</p>
-<ol>
- <li> A <i>size policy</i> indicating <i>how</i> a hash table should
-grow (<i>e.g.,</i> it should multiply by powers of 2).
- </li>
- <li> A <i>trigger policy</i> indicating <i>when</i> a hash table should
-grow (<i>e.g.,</i> a load factor is exceeded).
- </li>
-</ol>
-
-
-
-<h2><a name = "size_policies">Size Policies</a></h2>
-
-<p>
- Size policies determine how a hash table
-changes size. These policies are simple, and there are relatively
-few sensible options. An exponential-size policy (with the initial
-size and growth factors both powers of 2) works well with a
-mask-based range-hashing function (see the <a href = "hash_policies.html#hash_policies_range_hashing_policies">Range-Hashing Policies</a> subsection),
-and is the
-hard-wired policy used by Dinkumware
-[<a href = "references.html#dinkumware_stl">dinkumware_stl</a>]. A
-prime-list based policy works well with a modulo-prime range
-hashing function (see the <a href = "hash_policies.html#hash_policies_range_hashing_policies">Range-Hashing Policies</a> subsection),
-and is the
-hard-wired policy used by SGI's implementation
-[<a href = "references.html#sgi_stl">sgi_stl</a>].
-</p>
-
-
-
-
-<h2><a name = "trigger_policies">Trigger Policies</a></h2>
-
-<p>
- Trigger policies determine when a hash table changes size.
-Following is a description of two polcies: <i>load-check</i>
-policies, and a collision-check policies.
-</p>
-
-<p>
- Load-check policies are straightforward. The user
-specifies two factors, <i>&alpha;<sub>min</sub></i> and <i>&alpha;<sub>max</sub></i>, and
-the hash table maintains the invariant that
-</p>
-<p>
- <i>
- <a name = "eqn:load_factor_min_max">
- &alpha;<sub>min</sub>
- &le;
- (number of stored elements) / (hash-table size)
- &le;
- &alpha;<sub>max</sub>
- </a>
- </i>
- (1)
- .
-</p>
-
-<p>
- Collision-check policies work in the opposite direction of
-load-check policies. They focus on keeping the number of
-collisions moderate and hoping
-that the size of the table will not grow very large,
-instead of keeping a moderate load-factor and
-hoping that the number of collisions will be small.
-A
-maximal collision-check policy resizes when the shortest
-probe-sequence grows too large.
-</p>
-
-
-<p>
- Consider Figure
-<a href = "#balls_and_bins">Balls and bins</a>.
- Let the size of the hash table be denoted by <i>m</i>, the
-length of a probe sequence be denoted by <i>k</i>, and some load
-factor be denoted by &alpha;. We would like to calculate the
-minimal length of <i>k</i>, such that if there were <i>&alpha; m</i> elements
-in the hash table, a probe sequence of length <i>k</i> would be found
-with probability at most <i>1/m</i>.
-</p>
-
-<h6 align = "center">
-<a name = "balls_and_bins">
-<img src = "balls_and_bins.jpg" width = "60%" alt = "no image">
-</a>
-Balls and bins.
-</h6>
-
-
-<p>
- Denote the probability that a probe sequence of length <i>k</i>
-appears in bin <i>i</i> by <i>p<sub>i</sub></i>, the length of the probe sequence
-of bin <i>i</i> by <i>l<sub>i</sub></i>, and assume uniform distribution.
-Then
-</p>
- <p>
- <a name = "eqn:prob_of_p1">
- <i>p<sub>1</sub>
- = </i>(3)
- </a>
- </p>
- <p>
- <i>
- <b>P</b>(l<sub>1</sub> &ge; k)
- =
- </i>
- </p>
- <p>
- <i><b>P</b>(l<sub>1</sub> &ge; &alpha; ( 1 + k / &alpha; - 1 )
- &le; </i>(a)
- </p>
- <p>
- <i>
- e
- ^
- (
- -
- (
- &alpha; ( k / &alpha; - 1 )<sup>2</sup>
- )
- /2
- )
- </i>
- ,
-</p>
-<p>
- where (a) follows from the Chernoff bound
-[<a href = "references.html#motwani95random">motwani95random</a>].
-To
-calculate the probability that <i>some</i> bin contains a probe
-sequence greater than <i>k</i>, we note that the <i>l<sub>i</sub></i> are
-negatively-dependent
-[<a href = "references.html#dubhashi98neg">dubhashi98neg</a>].
-Let <i><b>I</b>(.)</i>
-denote the indicator function. Then
- <p>
- <a name = "eqn:at_least_k_i_n_some_bin">
- <i><b>P</b>( exists<sub>i</sub> l<sub>i</sub> &ge; k )
- = </i>(3)
- </a>
- </p>
- <p>
- <i>
- <b>P</b>
- (
- &sum; <sub>i = 1</sub><sup>m</sup>
- <b>I</b>(l<sub>i</sub> &ge; k) &ge; 1
- )
- =
- </i>
- </p>
- <p>
- <i>
- <b>P</b>
- (
- &sum; <sub>i = 1</sub><sup>m</sup>
- <b>I</b>
- (
- l<sub>i</sub> &ge; k
- )
- &ge;
- m p<sub>1</sub> ( 1 + 1 / (m p<sub>1</sub>) - 1 )
- )
- &le; </i>(a)
- </p>
- <p>
- <i>
- e
- ^
- (
- (
- -
- m p<sub>1</sub>
- (
- 1 / (m p<sub>1</sub>) - 1
- )
- <sup>2</sup>
- )
- /
- 2
- )
- ,
- </i>
- </p>
-<p>
-where (a) follows from the fact that the Chernoff bound can be
-applied to negatively-dependent variables
-[<a href = "references.html#dubhashi98neg">dubhashi98neg</a>].
-Inserting <a href = "#prob_of_p1">(2)</a> into
-<a href = "#at_least_k_i_n_some_bin">(3)</a>, and equating with <i>1/m</i>,
-we obtain
-</p>
-<p>
- <i>
- k
- ~
- &radic;
- (
- 2 &alpha; </i>ln<i> 2 m </i>ln<i>(m) )
- )
- </i>
- .
-</p>
-
-
-
-
-
-
-
-
-
-<h2><a name = "imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a></h2>
-
-<p>
- The resize policies in the previous subsection are conceptually straightforward. The design
-of hash-based containers' size-related interface is complicated by some factors.
-</p>
-<ol>
- <li> Most containers, <i>i.e.</i> lists, trees, and vectors, have a single "size" concept. There is no
-distinction between the number of entries the container holds and the number of entries it is using. This,
-of course, is not the case for hash-based containers. Moreover, even describing the
-"actual" size of a hash-based container (as opposed to its logical size) is difficult - a probing-based container
-holds entries to elements, even those it does not use, while a chaining-based container holds pointers to entries.
- </li>
- <li>
- The policies mentioned above operate in terms of invariants. <i>E.g.</i> a load-check trigger policy
-maintains an invariant concerning the load factor of a container object. This is sometimes too rigid:
- <ol>
- <li>In some cases it is desirable to allow controlled override of an entire policy, <i>e.g.</i> by externally resizing a container object (or giving it an initial size, which is a special case of externally resizing the container).
- </li>
- <li>
- In other cases it is desirable to allow changing the specifics of a policy in runtime, <i>e.g.</i>, changing the load factors of a load-check policy.
- </li>
- </ol>
- </li>
- <li>
- Resize policies interact strongly with hash policies. Performance-wise, for example, it is undesirable to use an exponential size policy of powers of two with a modulo range-hashing function, and it is undesirable to use a prime size policy with a mask range-hashing function. In other cases, the effects are more dramatic. For example, using a quadratic probe function with an exponential size policy will probably cause cases where the container object has available entries which are never reached by the probe function. (<a href = "hash_policies.html">Hash Policies</a>
-discusses the previous concepts.)
- </li>
-</ol>
-
-<p>
- Clearly, the more of these points an interface addresses, the greater its flexibility but the lower its encapsulation and uniformity between associative containers.
-</p>
-
-
-
-<p>
- This library attempts to address these types of problems by delegating all size-related functionality to
-policy classes. Hash-based containers
-are parameterized by a resize-policy class (among others), and derive publicly from
-the resize-policy class
-[<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>]
- <i>E.g.</i>, a collision-chaining
-hash table is defined as follows:
-</p>
-<pre>
-cc_ht_map&lt;
- <b>class</b> Key,
- <b>class</b> Data,
- ...
- <b>class</b> Resize_Policy
- ...&gt; :
- <b>public</b> Resize_Policy
-</pre>
-
-<p>
- The containers themselves lack any functionality or public interface for manipulating sizes. A container
-object merely forwards events to its resize policy object and queries it for needed actions.
-</p>
-
-<p>
- Figure
-<a href = "#insert_resize_sequence_diagram1">
-Insert resize sequence diagram
-</a>
-shows a (possible) sequence diagram of an insert operation.
-The user inserts an element; the hash table
-notifies its resize policy that a search has started (point A);
-in this case, a single collision is encountered - the table
-notifies its resize policy of this (point B); the container
-finally notifies its resize policy that the search has ended (point C);
-it then queries its resize policy whether a resize is needed, and if so,
-what is the new size (points D to G); following the resize, it notifies
-the policy that a resize has completed (point H); finally, the element
-is inserted, and the policy notified (point I).
-</p>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram1">
-<img src = "insert_resize_sequence_diagram1.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert resize sequence diagram.
-</h6>
-
-<p>
- This addresses, to some extent, the problems mentioned above:
-</p>
-<ol>
- <li>
- Different instantiations of range-hashing policies can be met with different instantiations of
- resize policies.
- </li>
- <li>
- Questions on size-related interface are avoided, since the containers have no size-related methods. Thus
- a container has no method for querying its actual size. It merely continuously forwards enough information to
- its resize policy to answer such queries; the designer of the resize policy can decide whether, or how, to design the appropriate method. Also, a container has no methods for setting its size. It merely queries its
-resize policy for an initial size, queries it on a new size (if the resize policy indicates a resize is needed), and
-supports a <tt><b>protected virtual</b></tt> function for external resize.
- </li>
-</ol>
-
-<p>
- The library contains a single class for instantiating a resize policy,
-<tt>pb_assoc</tt> contains
-a standard resize policy,
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a> (the name is explained shortly).
-In terms of interface, it is parameterized by a boolean constant indicating whether its public interface supports
-queries of actual size and external resize operations (the inclusion and exclusion of these methods in the interface have obvious tradeoffs in terms of encapsulation and flexibility).
-([<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>] shows many techniques for
-changing between alternative interfaces at compile time.)
-</p>
-
-<p>
-As noted before,
- size and trigger policies are usually orthogonal.
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
-is parameterized by size and trigger policies. For example,
-a collision-chaining hash table
-is typically be defined as follows:
-</p>
-<pre>
-cc_ht_map&lt;
- key,
- data,
- ...
- hash_standard_resize_policy&lt;
- some_trigger_policy,
- some_size_policy,
- ...&gt; &gt;
-</pre>
-
-<p>
- The sole function of
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
- is to
-act as a standard delegator
-[<a href = "references.html#gamma95designpatterns">gamma95designpatterns</a>] for these
-policies.
-
-<p>
- Figures
-<a href = "#insert_resize_sequence_diagram2">Standard resize policy trigger sequence diagram</a>
- and
-<a href = "#insert_resize_sequence_diagram3">Standard resize policy size sequence diagram</a>
- show sequence diagrams illustrating the interaction between
- the standard resize policy and its trigger and size policies, respectively.
-</p>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram2">
-<img src = "insert_resize_sequence_diagram2.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Standard resize policy trigger sequence diagram.
-</h6>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram3">
-<img src = "insert_resize_sequence_diagram3.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Standard resize policy size sequence diagram.
-</h6>
-
-<p>
- The library (currently) supports the following instantiations of size
-and trigger policies:
-</p>
-
-<ol>
- <li>
- <a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a> implements
- a load check trigger policy.
- </li>
- <li>
- <a href = "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>
- implements a collision check trigger policy.
- </li>
- <li>
-<a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a> implemens
-an exponential-size policy (which should be used with mask range hashing).
- </li>
- <li>
-<a href = "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a> implementing
-a size policy based on a sequence of primes
-[<a href = "references.html#sgi_stl">sgi_stl</a>] (which should be used with mod range hashing
- </li>
-</ol>
-
-<p>
- The trigger policies also support interfaces for changing their specifics which depend on compile time constants.
-</p>
-
-
-<p>
- Figure
-<a href = "#resize_policy_cd">Resize policy class diagram</a> gives an overall picture
-of the resize-related classes.
-<tt>Container</tt> (which stands for any of the hash-based containers) is parameterized
-by <tt>Resize_Policy</tt>, from which it subclasses publicly
-[<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>].
-This class is currently instantiated only by
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>.
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a> itself
-is parameterized by <tt>Trigger_Policy</tt> and <tt>Size_Policy</tt>.
-Currently, <tt>Trigger_Policy</tt> is instantiated by
-<a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>,
-or
-<a href = "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>; <tt>Size_Policy</tt> is instantiated by
-<a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>,
-or
-<a href = "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>.
-</p>
-
-
-<h6 align = "center">
-<a name = "resize_policy_cd">
-<img src = "resize_policy_cd.jpg" width = "40%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Resize policy class diagram.
-</h6>
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/resize_policy_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/resize_policy_cd.jpg
deleted file mode 100644
index 1d85438..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/resize_policy_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/restoring_node_invariants.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/restoring_node_invariants.jpg
deleted file mode 100644
index 626b730..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/restoring_node_invariants.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_node_updator.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_node_updator.hpp
deleted file mode 100644
index f862353..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_node_updator.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
-* @file sample_node_updator.hpp
-* Contains a samle node update functor.
-*
-* Copyright Ami Tavory, IBM-HRL, 2004.
-*
-* Permission to use, copy, modify, sell, and distribute this software
-* is hereby granted without fee, provided that the above copyright notice
-* appears in all copies, and that both that copyright notice and this
-* permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-* representation about the suitability of this software for any
-* purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_NODE_UPDATOR_HPP
-#define SAMPLE_NODE_UPDATOR_HPP
-
-
-/**
-* <class
-* description = "A sample node updator."
-* comment = "This class serves to show the interface a node update functor
-* needs to support.">
-**/
-class sample_node_updator
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Conclassors, declassor, and related.">
- **/
-
- /*
- * <fn description = "Default constructor."
- * comment = "Must be default constructible.">
- **/
- sample_node_updator
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Copy constructor."
- * comment = "Must be copy constructible.">
- **/
- sample_node_updator
- (const sample_node_updator &r_other);
- /** </fn> **/
-
- /*
- * <fn description = "Swaps content."
- * comment = "Must be swappable (if there is such a word).">
- **/
- inline void
- swap
- (sample_node_updator &r_other);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Operators.">
- **/
-
- /**
- * <fn description = "This method is called by the superclass container
- * object to update the key of a node whose invariants have been
- * violated. p_key is a pointer to the key being updated;
- * p_l_child_key is a pointer to the key of the left-child node of
- * the node being updated (and is NULL if there is no such child node);
- * p_r_child_key is a pointer to the key of the right-child node of
- * the node being updated (and is NULL if there is no such child node)."
- * comment = "@@sample_node_updator_const_key_pointer_comment">
- **/
- void
- operator()
- (const_key_pointer p_key,
- const_key_pointer p_l_child_key,
- const_key_pointer p_r_child_key);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_NODE_UPDATOR_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.hpp
deleted file mode 100644
index 1117418..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
-* @file sample_probe_fn.hpp
-* Contains a sample probe policy.
-*
-* Copyright Ami Tavory, IBM-HRL, 2004.
-*
-* Permission to use, copy, modify, sell, and distribute this software
-* is hereby granted without fee, provided that the above copyright notice
-* appears in all copies, and that both that copyright notice and this
-* permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-* representation about the suitability of this software for any
-* purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_PROBE_FN_HPP
-#define SAMPLE_PROBE_FN_HPP
-
-
-/**
-* <class
-* description = "A sample probe policy."
-* comment = "This class serves to show the interface a probe functor
-* needs to support.">
-**/
-class sample_probe_fn
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Constructors, destructor, and related.">
- **/
-
- /*
- * <fn description = "Default constructor."
- * comment = "Must be default constructible.">
- **/
- sample_probe_fn
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Copy constructor."
- * comment = "Must be copy constructible.">
- **/
- sample_probe_fn
- (const sample_probe_fn &r_other);
- /** </fn> **/
-
- /*
- * <fn description = "Swaps content."
- * comment = "Must be swappable (if there is such a word).">
- **/
- inline void
- swap
- (sample_probe_fn &r_other);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Offset methods.">
- **/
-
- /*
- * <fn description = "Returns the i-th offset from the hash value
- * of some key r_key."
- * comment = "@@sample_range_hashing_size_type_comment">
- **/
- inline size_type
- operator()
- (const_key_reference r_key,
- size_type i) const;
- /** </fn> **/
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** </group">
- **/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_PROBE_FN_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.html
deleted file mode 100644
index 360ab60..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.html
+++ /dev/null
@@ -1,177 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>sample_probe_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>sample_probe_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A sample probe policy.
-</p>
-
-<p>This class serves to show the interface a probe functor needs to support.
-</p>
-
-<ol>
-<li>
-<a href = "../pb_assoc/sample_probe_fn.hpp"><tt>sample_probe_fn.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link1">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Offset methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> sample_probe_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-<p>Must be default constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> sample_probe_fn
- (<b>const</b> sample_probe_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-<p>Must be copy constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- swap
- (sample_probe_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-<p>Must be swappable (if there is such a word).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Offset methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> size_type
- <b>operator</b>()
- (const_key_reference r_key,
- size_type i) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <font color = "#666666"><tt>i</tt></font>-th offset from the hash value of some key <font color = "#666666"><tt>r_key</tt></font>.</p>
-
-
-<p><p><tt>size_type</tt> is the size type on which the functor operates.</p></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.hpp
deleted file mode 100644
index d22f8e2..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
-* @file sample_range_hashing.hpp
-* Contains a range hashing policy.
-*
-* Copyright Ami Tavory, IBM-HRL, 2004.
-*
-* Permission to use, copy, modify, sell, and distribute this software
-* is hereby granted without fee, provided that the above copyright notice
-* appears in all copies, and that both that copyright notice and this
-* permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-* representation about the suitability of this software for any
-* purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_RANGE_HASHING_HPP
-#define SAMPLE_RANGE_HASHING_HPP
-
-
-/**
-* <class
-* description = "A sample range-hashing functor."
-* comment = "This class serves to show the interface a range-hashing
-* functor needs to support.">
-**/
-class sample_range_hashing
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Constructors, destructor, and related.">
- **/
-
- /*
- * <fn description = "Default constructor."
- * comment = "Must be default constructible.">
- **/
- sample_range_hashing
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Copy constructor."
- * comment = "Must be copy constructible.">
- **/
- sample_range_hashing
- (const sample_range_hashing &r_other);
- /** </fn> **/
-
- /*
- * <fn description = "Swaps content."
- * comment = "Must be swappable (if there is such a word).">
- **/
- inline void
- swap
- (sample_range_hashing &r_other);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group
- * description = "Notification methods.">
- **/
-
- /*
- * <fn
- * description = "Notifies the policy object that the container's
- * __size has changed to size."
- * comment = "@@sample_range_hashing_size_type_comment">
- **/
- void
- notify_resized
- (size_type size);
- /** </fn> **/
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group
- * description = "Operators.">
- **/
-
- /*
- * <fn description = "Transforms the __hash value hash into a
- * ranged-hash value.">
- * comment = "@@sample_range_hashing_size_type_comment">
- **/
- inline size_type
- operator()
- (size_type hash) const;
- /** </fn> **/
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** </group>
- **/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_RANGE_HASHING_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.html
deleted file mode 100644
index 86d179e..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.html
+++ /dev/null
@@ -1,213 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>sample_range_hashing Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>sample_range_hashing
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A sample range-hashing functor.
-</p>
-
-<p>This class serves to show the interface a range-hashing functor needs to support.
-</p>
-
-<ol>
-<li>
-<a href = "../pb_assoc/sample_range_hashing.hpp"><tt>sample_range_hashing.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link1">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Notification methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Operators.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> sample_range_hashing
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-<p>Must be default constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> sample_range_hashing
- (<b>const</b> sample_range_hashing &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-<p>Must be copy constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- swap
- (sample_range_hashing &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-<p>Must be swappable (if there is such a word).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Notification methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_resized
- (size_type size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the policy object that the container's size has changed to <font color = "#666666"><tt>size</tt></font>.</p>
-
-
-<p><p><tt>size_type</tt> is the size type on which the functor operates.</p></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Operators.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>* comment = "@@sample_range_hashing_size_type_comment"&gt;
-**/
-<b>inline</b> size_type
- <b>operator</b>()
- (size_type hash) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Transforms the hash value <font color = "#666666"><tt>hash</tt></font> into a ranged-hash value.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.hpp
deleted file mode 100644
index 32c5a49..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
-* @file sample_ranged_hash_fn.hpp
-* Contains a ranged hash policy.
-*
-* Copyright Ami Tavory, IBM-HRL, 2004.
-*
-* Permission to use, copy, modify, sell, and distribute this software
-* is hereby granted without fee, provided that the above copyright notice
-* appears in all copies, and that both that copyright notice and this
-* permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-* representation about the suitability of this software for any
-* purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_RANGED_HASH_FN_HPP
-#define SAMPLE_RANGED_HASH_FN_HPP
-
-
-/**
-* <class
-* description = "A sample ranged-hash functor."
-* comment = "This class serves to show the interface a ranged-hash
-* functor needs to support.">
-**/
-class sample_ranged_hash_fn
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Constructors, destructor, and related.">
- **/
-
- /*
- * <fn description = "Default constructor."
- * comment = "Must be default constructible.">
- **/
- sample_ranged_hash_fn
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Copy constructor."
- * comment = "Must be copy constructible.">
- **/
- sample_ranged_hash_fn
- (const sample_ranged_hash_fn &r_other);
- /** </fn> **/
-
- /*
- * <fn description = "Swaps content."
- * comment = "Must be swappable (if there is such a word).">
- **/
- inline void
- swap
- (sample_ranged_hash_fn &r_other);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group
- * description = "Notification methods.">
- **/
-
- /*
- * <fn
- * description = "Notifies the policy object that the container's
- * __size has changed to size."
- * comment = "@@sample_ranged_hash_fn_size_type_comment">
- **/
- void
- notify_resized
- (size_type size);
- /** </fn> **/
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group
- * description = "Operators.">
- **/
-
- /*
- * <fn description = "Transforms the const key reference
- * r_key into a position
- * within the table.">
- * comment = "@@sample_ranged_hash_fn_size_type_comment">
- **/
- inline size_type
- operator()
- (const_key_reference r_key) const;
- /** </fn> **/
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** </group>
- **/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_RANGED_HASH_FN_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.html
deleted file mode 100644
index f43c300..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.html
+++ /dev/null
@@ -1,129 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>sample_ranged_hash_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>sample_ranged_hash_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A sample ranged-hash functor.
-</p>
-
-<p>This class serves to show the interface a ranged-hash functor needs to support.
-</p>
-
-<ol>
-<li>
-<a href = "../pb_assoc/sample_ranged_hash_fn.hpp"><tt>sample_ranged_hash_fn.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link1">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> sample_ranged_hash_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-<p>Must be default constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> sample_ranged_hash_fn
- (<b>const</b> sample_ranged_hash_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-<p>Must be copy constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- swap
- (sample_ranged_hash_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-<p>Must be swappable (if there is such a word).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.hpp
deleted file mode 100644
index 2aaab0e..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/**
-* @file sample_ranged_probe_fn.hpp
-* Contains a ranged probe policy.
-*
-* Copyright Ami Tavory, IBM-HRL, 2004.
-*
-* Permission to use, copy, modify, sell, and distribute this software
-* is hereby granted without fee, provided that the above copyright notice
-* appears in all copies, and that both that copyright notice and this
-* permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-* representation about the suitability of this software for any
-* purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_RANGED_PROBE_FN_HPP
-#define SAMPLE_RANGED_PROBE_FN_HPP
-
-
-/**
-* <class
-* description = "A sample ranged-probe functor."
-* comment = "This class serves to show the interface a ranged-probe
-* functor needs to support.">
-**/
-class sample_ranged_probe_fn
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Constructors, destructor, and related.">
- **/
-
- /*
- * <fn description = "Default constructor."
- * comment = "Must be default constructible.">
- **/
- sample_ranged_probe_fn
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Copy constructor."
- * comment = "Must be copy constructible.">
- **/
- sample_ranged_probe_fn
- (const sample_ranged_probe_fn &r_other);
- /** </fn> **/
-
- /*
- * <fn description = "Swaps content."
- * comment = "Must be swappable (if there is such a word).">
- **/
- inline void
- swap
- (sample_ranged_probe_fn &r_other);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group
- * description = "Notification methods.">
- **/
-
- /*
- * <fn
- * description = "Notifies the policy object that the container's
- * __size has changed to size."
- * comment = "@@sample_ranged_probe_fn_size_type_comment">
- **/
- void
- notify_resized
- (size_type size);
- /** </fn> **/
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group
- * description = "Operators.">
- **/
-
- /*
- * <fn description = "Transforms the const key reference
- * r_key into the i-th position
- * within the table. This method is called for
- * each collision within the probe sequence.">
- * comment = "@@sample_ranged_probe_fn_size_type_comment">
- **/
- inline size_type
- operator()
- (const_key_reference r_key,
- size_type i) const;
- /** </fn> **/
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** </group>
- **/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_RANGED_PROBE_FN_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.html
deleted file mode 100644
index 5ce7ef2..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.html
+++ /dev/null
@@ -1,129 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>sample_ranged_probe_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>sample_ranged_probe_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A sample ranged-probe functor.
-</p>
-
-<p>This class serves to show the interface a ranged-probe functor needs to support.
-</p>
-
-<ol>
-<li>
-<a href = "../pb_assoc/sample_ranged_probe_fn.hpp"><tt>sample_ranged_probe_fn.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link1">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> sample_ranged_probe_fn
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-<p>Must be default constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> sample_ranged_probe_fn
- (<b>const</b> sample_ranged_probe_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-<p>Must be copy constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- swap
- (sample_ranged_probe_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-<p>Must be swappable (if there is such a word).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.hpp
deleted file mode 100644
index 4101a70..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.hpp
+++ /dev/null
@@ -1,310 +0,0 @@
-/**
-* @file sample_resize_policy.hpp
-* Contains a sample resize policy for hash tables.
-*
-* Copyright Ami Tavory, IBM-HRL, 2004.
-*
-* Permission to use, copy, modify, sell, and distribute this software
-* is hereby granted without fee, provided that the above copyright notice
-* appears in all copies, and that both that copyright notice and this
-* permission notice appear in supporting documentation,
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-* representation about the suitability of this software for any
-* purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_RESIZE_POLICY_HPP
-#define SAMPLE_RESIZE_POLICY_HPP
-
-
-/**
-* <class
-* description = "A sample resize policy."
-* comment = "This class serves to show the interface a resize policy
-* needs to support.">
-**/
-class sample_resize_policy
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Constructors, destructor, and related.">
- **/
-
- /*
- * <fn description = "Default constructor."
- * comment = "Must be default constructible.">
- **/
- sample_resize_policy
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Copy constructor."
- * comment = "Must be copy constructible.">
- **/
- sample_range_hashing
- (const sample_resize_policy &r_other);
- /** </fn> **/
-
- /*
- * <fn description = "Swaps content."
- * comment = "Must be swappable (if there is such a word).">
- **/
- inline void
- swap
- (sample_resize_policy &r_other);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Insert search notifications."
- ** comment = "Notifications called during an insert operation.">
- **/
-
- /*
- * <fn description = "Notifies a search started.">
- **/
- inline void
- notify_insert_search_start
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search encountered a collision.">
- **/
- inline void
- notify_insert_search_collision
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search ended.">
- **/
- inline void
- notify_insert_search_end
- ();
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Find search notifications."
- ** comment = "Notifications called during a find operation.">
- **/
-
- /*
- * <fn description = "Notifies a search started.">
- **/
- inline void
- notify_find_search_start
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search encountered a collision.">
- **/
- inline void
- notify_find_search_collision
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search ended.">
- **/
- inline void
- notify_find_search_end
- ();
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Erase search notifications."
- ** comment = "Notifications called during an insert operation.">
- **/
-
- /*
- * <fn description = "Notifies a search started.">
- **/
- inline void
- notify_erase_search_start
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search encountered a collision.">
- **/
- inline void
- notify_erase_search_collision
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search ended.">
- **/
- inline void
- notify_erase_search_end
- ();
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Content change notifications."
- ** comment = "Notifications called when the content of the table
- ** changes in a way that can affect the resize policy.">
- **/
-
- /*
- * <fn description = "Notifies an element was inserted.">
- **/
- inline void
- notify_inserted
- (size_type num_e);
- /** </fn> **/
-
- /*
- * <fn description = "Notifies an element was erased.">
- **/
- inline void
- notify_erased
- (size_type num_e);
- /** </fn> **/
-
- /*
- * <fn description = "Notifies the table was cleared.">
- **/
- void
- notify_cleared
- ();
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Size change notifications."
- ** comment = "Notifications called when the table changes size.">
- **/
-
- /*
- * <fn description = "Notifies the table was resized to new_size.">
- **/
- void
- notify_resized
- (size_type new_size);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Queries."
- ** comment = "Called to query whether/how to resize.">
- **/
-
- /*
- * <fn description = "Queries initial size.">
- **/
- size_type
- get_init_size
- () const;
- /** </fn> **/
-
- /*
- * <fn description = "Queries whether a resize is needed.">
- **/
- inline bool
- is_resize_needed
- () const;
- /** </fn> **/
-
- /*
- * <fn description = "Queries what the new size should be.">
- **/
- size_type
- get_new_size
- (size_type size, size_type num_used_e) const;
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_RESIZE_POLICY_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.html
deleted file mode 100644
index b1e3794..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.html
+++ /dev/null
@@ -1,536 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>sample_resize_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>sample_resize_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A sample resize policy.
-</p>
-
-<p>This class serves to show the interface a resize policy needs to support.
-</p>
-
-<ol>
-<li>
-<a href = "../pb_assoc/sample_resize_policy.hpp"><tt>sample_resize_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link1">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Insert search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Find search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Erase search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Content change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Size change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Queries.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> sample_resize_policy
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-<p>Must be default constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> sample_range_hashing
- (<b>const</b> sample_resize_policy &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-<p>Must be copy constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- swap
- (sample_resize_policy &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-<p>Must be swappable (if there is such a word).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Insert search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_insert_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Find search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during a find operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_find_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Erase search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_start
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_collision
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erase_search_end
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Content change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the content of the table changes in a way that can affect the resize policy.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_inserted
- (size_type num_e)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was inserted.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
- notify_erased
- (size_type num_e)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_cleared
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was cleared.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Size change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the table changes size.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
- notify_resized
- (size_type new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized to <font color = "#666666"><tt>new_size</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Queries.
-</a>
-
-</h2>
-
-<p>Called to query whether/how to resize.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>size_type
- get_init_size
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries initial size.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- is_resize_needed
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>size_type
- get_new_size
- (size_type size, size_type num_used_e) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries what the new <font color = "#666666"><tt>size</tt></font> should be.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_trigger.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_trigger.hpp
deleted file mode 100644
index b2799cf..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_trigger.hpp
+++ /dev/null
@@ -1,341 +0,0 @@
-/**
-* @file sample_resize_trigger.hpp
-* Contains a sample resize trigger policy class.
-*
-* Copyright Ami Tavory, IBM-HRL, 2004.
-*
-* Permission to use, copy, modify, sell, and distribute this software
-* is hereby granted without fee, provided that the above copyright notice
-* appears in all copies, and that both that copyright notice and this
-* permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-* representation about the suitability of this software for any
-* purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_RESIZE_TRIGGER_HPP
-#define SAMPLE_RESIZE_TRIGGER_HPP
-
-
-/**
-* <class
-* description = "A sample resize trigger policy."
-* comment = "This class serves to show the interface a trigger policy
-* needs to support.">
-**/
-class sample_resize_trigger
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Constructors, destructor, and related.">
- **/
-
- /*
- * <fn description = "Default constructor."
- * comment = "Must be default constructible.">
- **/
- sample_resize_trigger
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Copy constructor."
- * comment = "Must be copy constructible.">
- **/
- sample_range_hashing
- (const sample_resize_trigger &r_other);
- /** </fn> **/
-
- /*
- * <fn description = "Swaps content."
- * comment = "Must be swappable (if there is such a word).">
- **/
- inline void
- swap
- (sample_resize_trigger &r_other);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
- /**
- **************************************************************************
- ***************************************************************************
- ** <group description = "Insert search notifications."
- ** comment = "Notifications called during an insert operation.">
- **/
-
- /*
- * <fn description = "Notifies a search started.">
- **/
- inline void
- notify_insert_search_start
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search encountered a collision.">
- **/
- inline void
- notify_insert_search_collision
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search ended.">
- **/
- inline void
- notify_insert_search_end
- ();
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Find search notifications."
- ** comment = "Notifications called during a find operation.">
- **/
-
- /*
- * <fn description = "Notifies a search started.">
- **/
- inline void
- notify_find_search_start
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search encountered a collision.">
- **/
- inline void
- notify_find_search_collision
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search ended.">
- **/
- inline void
- notify_find_search_end
- ();
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Erase search notifications."
- ** comment = "Notifications called during an insert operation.">
- **/
-
- /*
- * <fn description = "Notifies a search started.">
- **/
- inline void
- notify_erase_search_start
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search encountered a collision.">
- **/
- inline void
- notify_erase_search_collision
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Notifies a search ended.">
- **/
- inline void
- notify_erase_search_end
- ();
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Content change notifications."
- ** comment = "Notifications called when the content of the table
- ** changes in a way that can affect the resize policy.">
- **/
-
- /*
- * <fn description = "Notifies an element was inserted.
- * the total number of entries in the table is num_entries.">
- **/
- inline void
- notify_inserted
- (size_type num_entries);
- /** </fn> **/
-
- /*
- * <fn description = "Notifies an element was erased."
- * the total number of entries in the table is num_entries.">
- **/
- inline void
- notify_erased
- (size_type num_entries);
- /** </fn> **/
-
- /*
- * <fn description = "Notifies the table was cleared.">
- **/
- void
- notify_cleared
- ();
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Size change notifications."
- ** comment = "Notifications called when the table changes size.">
- **/
-
- /*
- * <fn description = "Notifies the table was resized as a result of
- * this object's signifying that a resize is needed."
- * The actual size of the table is new_size.">
- **/
- void
- notify_resized
- (size_type new_size);
- /** </fn> **/
-
- /*
- * <fn description = "Notifies the table was resized externally."
- * The actual size of the table is new_size.">
- **/
- void
- notify_externally_resized
- (size_type new_size);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Queries."
- ** comment = "Called to query whether/how to resize.">
- **/
-
- /*
- * <fn description = "Queries whether a resize is needed.">
- **/
- inline bool
- is_resize_needed
- () const;
- /** </fn> **/
-
- /*
- * <fn description = "Queries whether a grow is needed."
- * comment = "This method is
- * called only if this object indicated resize is needed.
- * The actual size of the table is size, and the number of
- * entries in it is num_entries.">
- **/
- inline bool
- is_grow_needed
- (size_type size,
- size_type num_entries) const;
- /** </fn> **/
-
- /*
- * <fn description = "Queries whether a shrink is needed."
- * comment = "This method is
- * called only if this object indicated resize is needed.
- * The actual size of the table is size, and the number of
- * entries in it is num_entries.">
- **/
- inline bool
- is_shrink_needed
- (size_type size,
- size_type num_entries) const;
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-/*
-****************************************************************************
-****************************************************************************
-*/
-} // namespace pb_assoc
-
-
-#endif // #ifndef SAMPLE_RESIZE_TRIGGER_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_size_policy.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_size_policy.hpp
deleted file mode 100644
index a864270..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_size_policy.hpp
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
-* @file sample_size_policy.hpp
-* Contains a sample size resize-policy.
-*
-* Copyright Ami Tavory, IBM-HRL, 2004.
-*
-* Permission to use, copy, modify, sell, and distribute this software
-* is hereby granted without fee, provided that the above copyright notice
-* appears in all copies, and that both that copyright notice and this
-* permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-* representation about the suitability of this software for any
-* purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_SIZE_POLICY_HPP
-#define SAMPLE_SIZE_POLICY_HPP
-
-
-/**
-* <class
-* description = "A sample size policy."
-* comment = "This class serves to show the interface a size policy
-* needs to support.">
-**/
-class sample_size_policy
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Constructors, destructor, and related.">
- **/
-
- /*
- * <fn description = "Default constructor."
- * comment = "Must be default constructible.">
- **/
- sample_size_policy
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Copy constructor."
- * comment = "Must be copy constructible.">
- **/
- sample_range_hashing
- (const sample_size_policy &r_other);
- /** </fn> **/
-
- /*
- * <fn description = "Swaps content."
- * comment = "Must be swappable (if there is such a word).">
- **/
- inline void
- swap
- (sample_size_policy &r_other);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-
- /**
- **************************************************************************
- ***************************************************************************
- ** <group description = "Size methods">
- **/
-
- /*
- * <fn description = "Given suggested_size, a suggested size, returns
- * an initial size of the container related to the initial size.">
- **/
- inline size_type
- get_init_size
- (size_type suggested_size) const;
- /** </fn> **/
-
- /*
- * <fn description = "Given cur_size, the
- * current size, returns a size that is
- * larger.">
- **/
- inline size_type
- get_nearest_larger_size
- (size_type cur_size) const;
- /** </fn> **/
-
- /*
- * <fn description = "Given cur_size, the current size, returns a size that is
- * smaller.">
- **/
- inline size_type
- get_nearest_smaller_size
- (size_type cur_size) const;
- /** </fn> **/
-
- /**
- **************************************************************************
- ***************************************************************************
- ** </group>
- **/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/*
-** </class>
-**/
-
-
-#endif // #ifndef SAMPLE_SIZE_POLICY_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_update_policy.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_update_policy.hpp
deleted file mode 100644
index 70a1bd4..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_update_policy.hpp
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
-* @file sample_update_policy.hpp
-* Contains a sample policy for list update containers.
-*
-* Copyright Ami Tavory, IBM-HRL, 2004.
-*
-* Permission to use, copy, modify, sell, and distribute this software
-* is hereby granted without fee, provided that the above copyright notice
-* appears in all copies, and that both that copyright notice and this
-* permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-* representation about the suitability of this software for any
-* purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_UPDATE_POLICY_HPP
-#define SAMPLE_UPDATE_POLICY_HPP
-
-
-/**
-* <class
-* description = "A sample list-update policy."
-* comment = "This class serves to show the interface a list update functor
-* needs to support.">
-**/
-class sample_update_policy
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Constructors, destructor, and related.">
- **/
-
- /*
- * <fn description = "Default constructor."
- * comment = "Must be default constructible.">
- **/
- sample_update_policy
- ();
- /** </fn> **/
-
- /*
- * <fn description = "Copy constructor."
- * comment = "Must be copy constructible.">
- **/
- sample_update_policy
- (const sample_update_policy &r_other);
- /** </fn> **/
-
- /*
- * <fn description = "Swaps content."
- * comment = "Must be swappable (if there is such a word).">
- **/
- inline void
- swap
- (sample_update_policy &r_other);
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_types_group>
-**/
-protected:
-
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Metadata definitions.">
- **/
-
- /**
- * <tdef description = "Metadata on which this functor operates."
- * comment = "The class must declare the metadata type on which it
- * operates; the list-update based containers will append to
- * each node an object of this type.">
- **/
- typedef
- some_metadata_type
- metadata_type;
- /** </tdef> **/
-
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_types_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
- /**
- ***************************************************************************
- ***************************************************************************
- ** <group description = "Metadata operations.">
- **/
-
- /*
- * <fn description = "Creates a metadata object."
- * comment = "A list-update based container object will call this
- * method to create a metadata type when a node is created.">
- **/
- metadata_type
- operator()
- () const;
- /** </fn> **/
-
- /*
- * <fn description = "Decides whether a metadata object should be
- * moved to the front of the list. A list-update based containers object
- * will call this
- * method to decide whether to move a node to the front of
- * the list. The method shoule return true if the node should
- * be moved to the front of the list."
- * comment = "@@sample_update_policy_metadata_reference">
- **/
- bool
- operator()
- (metadata_reference r_data) const;
- /** </fn> **/
-
- /*
- ***************************************************************************
- ***************************************************************************
- * </group>
- **/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_UPDATE_POLICY_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/size_policies_general.html b/libstdc++-v3/docs/html/ext/pb_assoc/size_policies_general.html
deleted file mode 100644
index d79d68a..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/size_policies_general.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Size Policies</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body>
-<h1>Size Policies</h1>
-
-<p>
- A size policy, say <tt>size_pol</tt>, should support
-the types and
-methods below.
-<ol>
- <li><a href = "size_policy_types.html">Types</a></li>
- <li> <a href = "size_policy_methods.html">Methods</a></li>
-</ol>
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/splay_tree_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/splay_tree_ds_tag.html
deleted file mode 100644
index 71d8e3f7..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/splay_tree_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>splay_tree_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>splay_tree_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Splay tree data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_tree_ds_tag.html"><tt>basic_tree_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/timing_tests.html b/libstdc++-v3/docs/html/ext/pb_assoc/timing_tests.html
deleted file mode 100644
index 8fd034c..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/timing_tests.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Timing Tests</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Timing Tests</h1>
-
-<p>
- This section describes timing tests and their results. The tests were
-performed on two systems:
-</p>
-<ol>
- <li> </li>
- <li> Intel </li>
-</ol>
-
-<p>
- The tests are organized as follows:
-</p>
-<ol>
- <li><a href = "#hash_based">Hash-Based Container Tests</a>
- shows tests pertaining to hash-based containers.
- </li>
- <li><a href = "#hash_based">Tree-Based Container Tests</a>
- shows tests pertaining to tree-based containers.
- </li>
-</ol>
-
-<h2><a name = "hash_based">Hash-Based Container Tests</a></h2>
-
-<h3>Random-Integer Find Test</h3>
-
-<p>
- This test measurs the average time to find an entry
-in a &quot;set&quot; as a function of the &quot;set&quot;'s
-size.</p>
-_
-<p>
- The test's purpose is to find the effect of
-different range-hashing functions. See
-<a href = "hash_based_containers.html#hash_policies">Hash-Based Containers::Resize Policies</a>
-</p>
-
-<p>
-Source code:
-<a href = "../testsuite/timing/hash_random_int_find_timing_test.cpp"><tt>hash_random_int_find_timing_test.cpp</tt></a>.
-</p>
-
-<p>
-Execution: <tt>hash_random_int_find_timing_test </tt>
-</p>
-
-
-<h2><a name = "tree_based">Tree-Based Container Tests</a></h2>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/toc.html b/libstdc++-v3/docs/html/ext/pb_assoc/toc.html
deleted file mode 100644
index c46f160..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/toc.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>Table of Contents</TITLE>
-<META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-<base target = "content">
-</HEAD>
-<BODY>
-<H1>Contents</H1>
-
-
-<a href = "home.html">Main Page</a>
-
-<OL>
- <li> <a href = "introduction.html">Introduction</a></li>
- <li> <A HREF= "motivation.html">Motivation</A> </li>
- <li> <a href = "design.html">Design</a>
- <ol>
- <li> <a href = "overview.html">Overview</a></li>
- </ol>
- </li>
- <li> <a href = "interface.html">Interface</a>
- <ol>
- <li> <a href = "tutorial.html">Short Tutorial</a></li>
- </ol>
- <li> <a href = "examples.html">Examples</a> </li>
- <li> <a href = "regression_tests.html">Regression Tests</a> </li>
- <li> <a href = "timing_tests.html">Timing Tests</a> </li>
- <li> <a href = "contact.html">Contact</a></li>
- <li> <a href = "acks.html">Acknowledgements</a> </li>
- <li> <a href = "disclaimer.html">Disclaimer and Copyright</a> </li>
- <li> <a href="references.html">References</a> </li>
-</OL>
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr.html
deleted file mode 100644
index f524f96..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr.html
+++ /dev/null
@@ -1,493 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>tree_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>tree_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A tree-based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor.</p>
-
-
-</td>
-
-<td>
-<pre>std::less&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>Data-structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-<p><a href = "concepts.html#concepts_node_invariants">Node Invariants</a> explains this concept.</p>
-
-
-</td>
-
-<td>
-<a href = "null_node_updator.html"><tt>null_node_updator</tt></a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>Depending on whether <a href = "#DS_Tag3735929089">DS_Tag</a> is a type supporting reverse iteration,<ol> <li> <a href = "basic_tree_assoc_cntnr.html"><tt>basic_tree_assoc_cntnr</tt></a> no reverse-iteration specialization </li> <li> <a href = "basic_tree_assoc_cntnr_rev_it.html"><tt>basic_tree_assoc_cntnr</tt></a> reverse-iteration specialization </li></ol></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_updator3735929843">node_updator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre> tree_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> tree_assoc_cntnr
- (<b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;r_cmp_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_cmp_fn</tt></font> will be copied by the <a href = "#Cmp_Fn3735929122"><tt>Cmp_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> tree_assoc_cntnr
- (<b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;r_cmp_fn,
- <b>const</b> <a href = "#Node_Updator3735929779">Node_Updator</a> &amp;r_node_updator)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_cmp_fn</tt></font> will be copied by the <a href = "#Cmp_Fn3735929122"><tt>Cmp_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_node_updator</tt></font> will be copied by the <a href = "#Node_Updator3735929779"><tt>Node_Updator</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- tree_assoc_cntnr
- (It first_it,
- It last_it)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- tree_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;r_cmp_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_cmp_fn</tt></font> will be copied by the <a href = "#Cmp_Fn3735929122"><tt>Cmp_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
- <b>class</b> It&gt;
- tree_assoc_cntnr
- (It first_it,
- It last_it,
- <b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;r_cmp_fn,
- <b>const</b> <a href = "#Node_Updator3735929779">Node_Updator</a> &amp;r_node_updator)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_cmp_fn</tt></font> will be copied by the <a href = "#Cmp_Fn3735929122"><tt>Cmp_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_node_updator</tt></font> will be copied by the <a href = "#Node_Updator3735929779"><tt>Node_Updator</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre> tree_assoc_cntnr
- (<b>const</b> <font color = "olive">tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>virtual</b>
- ~tree_assoc_cntnr
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><font color = "olive">tree_assoc_cntnr</font> &amp;
- <b>operator</b>=
- (<b>const</b> <font color = "olive">tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Assignment operator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
- swap
- (<font color = "olive">tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_const_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_const_node_iterator.html
deleted file mode 100644
index aa0954c..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_const_node_iterator.html
+++ /dev/null
@@ -1,488 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>tree_assoc_cntnr::const_node_iterator Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt><font color = "olive">tree_assoc_cntnr</font>::const_node_iterator
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Const node iterator.
-</p>
-
-<p>This is an
-</p>
-
-<ol>
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link1">Iterator definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Value-type definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Movement methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Comparison methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "iterator_category3735929377">iterator_category</a></pre>
-
-
-</td>
-
-<td>
-<pre>trivial_iterator_tag</pre>
-
-
-</td>
-
-<td>
-<p>Category. comment = </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "difference_type3735930139">difference_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>void</b></pre>
-
-
-</td>
-
-<td>
-<p>Difference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Value-type definitions.
-</a>
-
-</h2>
-
-<p>Note that a node iterator's value type is actually a tree iterator.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "value_type3735929645">value_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<p>Iterator's value type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "pointer3735929328">pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> *</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_pointer3735929974">const_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> *</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's const pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reference3735929502">reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> &amp;</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reference3735930148">const_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>const</b> <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> &amp;</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's const reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
- const_node_iterator
- (<b>const</b> node_pointer p_nd = NULL)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "../../pb_assoc/tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a>
- <b>operator</b>*
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Access.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Movement methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> const_node_iterator
- l_child
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <tt><b>const</b></tt> node <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the left node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> const_node_iterator
- r_child
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <tt><b>const</b></tt> node <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the right node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Comparison methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- <b>operator</b>==
- (<b>const</b> const_node_iterator &amp;r_other) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Compares content to a different <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> object.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
- <b>operator</b>!=
- (<b>const</b> const_node_iterator &amp;r_other) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Compares content (negatively) to a different <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> object.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_node_iterator.html
deleted file mode 100644
index edcdd0f..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_node_iterator.html
+++ /dev/null
@@ -1,250 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>tree_assoc_cntnr::node_iterator Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt><font color = "olive">tree_assoc_cntnr</font>::node_iterator
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Node iterator.
-</p>
-
-<p>This is an
-</p>
-
-<ol>
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Movement methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "../../pb_assoc/tree_assoc_cntnr.html#const_node_iterator3735929535">const_node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
- node_iterator
- (<b>const</b> node_pointer p_nd = NULL)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a>
- <b>operator</b>*
- () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Access.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Movement methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> node_iterator
- l_child
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns the node <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the left node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> node_iterator
- r_child
- ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns the node <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the right node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tree_based_containers.html b/libstdc++-v3/docs/html/ext/pb_assoc/tree_based_containers.html
deleted file mode 100644
index 08ee428..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tree_based_containers.html
+++ /dev/null
@@ -1,246 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>Tree-Based Containers</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </head>
-<body bgcolor = "white">
-<h1>Tree-Based Containers</h1>
-
-<p>
- This section describes tree-based containers. It is organized as follows.
-</p>
-
-<ol>
- <li> <a href = "#overview">Overview</a> describes an overview.</li>
- <li> <a href = "#invariants">Node Invariants</a> describes node invariants.</li>
- <li> <a href = "#add_methods">Additional Types and Methods</a> describes additional methods
-that tree-based containers support.</li>
-</ol>
-
-<h2><a name = "overview">Overview</a></h2>
-
-<p>
- Figure
-<a href = "#tree_cd">Tree-based containers</a>
- shows the container-hierarchy; the tree-based container is circled.
-</p>
-
-<h6 align = "center">
-<a name = "tree_cd">
-<img src = "tree_cd.jpg" width = "70%" alt = "no image">
-</h6>
-<h6 align = "center">
-</a>
-Tree-based containers.
-</h6>
-
-
-<p>
- The tree-based container has the following declaration:
-</p>
-<pre>
-<b>template</b>&lt;
- <b>typename</b> Key,
- <b>typename</b> Data,
- <b>class</b> Cmp_Fn = std::less&lt;Key&gt;,
- <b>class</b> DS_Tag = <a href = "rb_tree_ds_tag.html">rb_tree_ds_tag</a>,
- <b>class</b> Node_Updator = <a href = "null_node_updator.html">null_node_updator</a>,
- <b>class</b> Allocator =
- std::allocator&lt;<b>char</b>&gt; &gt;
-<b>class</b> <a href = "tree_assoc_cntnr.html">tree_assoc_cntnr</a>;
-</pre>
-
-
-<p>
- The parameters have the following meaning:
-</p>
-<ol>
- <li> <tt>Key</tt> is the key type.
- </li>
- <li> <tt>Data</tt> is the data-policy, and is explained in
-<a href = "ms_gen.html#ds_policy">Mapping-Semantics Genericity::Data Types as a Policy</a>.
- </li>
- <li> <tt>Cmp_Fn</tt> is a key comparison functor</li>
- <li> <tt>DS_Tag</tt> specifies which underlying data-structure to use, and is described shortly.
- <li> <tt>Node_Updator</tt> is a policy for updating node invariants.
-This is described in <a href = "#invariants">Node Invariants</a>.
- </li>
- <li> <tt>Allocator</tt> is (surprisingly) an allocator type.
- </li>
-</ol>
-
-<p>
- The <tt>DS_Tag</tt> specifies which underlying data-structure to use.
-Instantiating it by
-<a href = "rb_tree_ds_tag.html">rb_tree_ds_tag</a>,
-<a href = "splay_tree_ds_tag.html">splay_tree_ds_tag</a>,
-or
-<a href = "ov_tree_ds_tag.html">ov_tree_ds_tag</a>,
-specifies an undelying
-red-black tree,
-splay tree,
-or
-ordered-vector tree.
- any other tag is illegal. Note that containers based on the former two contain more types and methods than the latter (<i>e.g.</i>, <tt>reverse_iterator</tt> and <tt>rbegin</tt>), and different exception and invalidation guarantees.
-</p>
-
-
-
-
-<h2><a name = "invariants">Node Invariants</a></h2>
-
-<p>
- Figure
-<a href = "#node_invariants">Some node invariants</a>
-shows some node invariants. A shows
-a tree whose each node contains, asides from an <tt>double</tt> key, the number
-of nodes at the subtree rooted at the node; B shows a tree whose each node
-contains, asides from a line-interval key, the maximal endpoint of the interval
-of any node in the subtree rooted at the node.
- The first tree allows querying efficiently what is the order statistic
-of any element; the second tree allows querying efficiently if any, or which,
-intervals overlap a given interval.
-</p>
-
-<h6 align = "center">
-<a name = "node_invariants">
-<img src = "node_invariants.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Some node invariants.
-</h6>
-
-
-<p>
- Maintaining such trees is difficult, for two reasons:
-</p>
-<ol>
- <li> Various operations can invalidate node invariants.
-<i>E.g.</i>, Figure
-<a href = "#node_invariant_invalidations">Invalidation of node invariants</a>
-shows how a right rotation, performed on A, results in B, with nodes <i>x</i>
-and <i>y</i> having corrupted invariants (the greyed nodes in C);
-Figure
-<a href = "#node_invariant_invalidations">Invalidation of node invariants</a>
-shows how an insert, performed on D, results in E, with nodes <i>x</i>
-and <i>y</i> having corrupted invariants (the greyed nodes in F).
- It is not feasible to know outside the tree the effect of an operation on the
-nodes of the tree.
- </li>
- <li>
- Even if node invariants are maintained, it is not possible to know
-in advance which search paths are required (<i>e.g.</i>, searching for all
-line intervals overlapping some interval might require several search paths).
- </li>
-</ol>
-
-
-<h6 align = "center">
-<a name = "node_invariant_invalidations">
-<img src = "node_invariant_invalidations.jpg" width = "80%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Invalidation of node invariants.
-</h6>
-
-<p>
- These problems are solved by a combination of two means:
-</p>
-
-<ol>
- <li>
- The tree-based containers are parameterized by a <tt>Node_Updator</tt>
-parameter. When a tree operation might invalidate some node invariant,
-a <tt>Node_Updator</tt> object is invoked to restore the invariant. This object is
-always invoked with three nodes: some node, say <i>x</i> in
-Figure
-<a href = "#restoring_node_invariants">Invalidation of node invariants</a>-A
-has an invalid invariant, but its children, <i>y</i> and <i>z</i> hav valid invariants.
-After the invocation, all three nodes have valid invariants, as
-in
-Figure
-<a href = "#restoring_node_invariants">Invalidation of node invariants</a>-B.
-It is well known that any <tt>insert</tt>, <tt>erase</tt>,
-<tt>split</tt> or <tt>join</tt>, can restore
-all node invariants by a small number of node invariant updates
-[<a href = "references.html#clrs2001">clrs2001</a>].
-For example, Figure
-<a href = "#update_seq_diagram">
-Insert update sequence diagram
-</a>
-shows an <tt>insert</tt> operation (point A); the tree performs some operations, and
-calls the update functor three times (points B, C, and D).
- </li>
- <li>
- The tree based containers all define internally <tt>node_iterator</tt>
- and <tt>const_node_iterator</tt>, iterators which can be used to traverse
- from a node to any of its children or parent.
- </li>
-</ol>
-
-<h6 align = "center">
-<a name = "restoring_node_invariants">
-<img src = "restoring_node_invariants.jpg" width = "80%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Invalidation of node invariants.
-</h6>
-
-<h6 align = "center">
-<a name = "update_seq_diagram">
-<img src = "update_seq_diagram.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert update sequence diagram.
-</h6>
-
-
-<p>
- In
-<a href = "concepts.html#concepts_null_policies">Null Policy Classes</a>
-a distinction was made between <i>redundant policies</i>
-and <i>null policies</i>.
-</p>
-
-<p>
- Seemingly, in this case a redundant policy - a policy which doesn't
-affect nodes' contents would suffice in this case. This, however, would
-lead to performance loss.
-Figure
-<a href = "#rationale_null_node_updator">
-Rationale for null node-invariant functors
-</a>
-shows a typical case where invariants are restored (in this case, to the
-shaded node). In most cases, tree operations such as rotations affect only
-the lower levels of the tree. A null policy allows to know that there
-is no need to traverse the tree to the root.
-</p>
-
-<h6 align = "center">
-<a name = "rationale_null_node_updator">
-<img src = "rationale_null_node_updator.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Rationale for null node-invariant functors.
-</h6>
-
-
-
-<h2><a name = "add_methods">Addtional Methods</a></h2>
-
-
-
-
-
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tree_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/tree_cd.jpg
deleted file mode 100644
index 95afe31..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tree_cd.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/trigger_policies_general.html b/libstdc++-v3/docs/html/ext/pb_assoc/trigger_policies_general.html
deleted file mode 100644
index 5535bb9..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/trigger_policies_general.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
- <title>Trigger Policies</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-
-<body>
-
-<h1>Trigger Policies</h1>
-
-<p>
- A trigger policy, say <tt>trig_pol</tt>, should support
- the types and methods below.
-</p>
-<ol>
- <li> <a href="trigger_policy_types.html">Types</a></li>
- <li> <a href="trigger_policy_methods.html">Methods</a></li>
-</ol>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tutorial.html b/libstdc++-v3/docs/html/ext/pb_assoc/tutorial.html
deleted file mode 100644
index b5dd0f5..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tutorial.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>Short Tutorial</TITLE>
-<META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-<base target = "content">
-</HEAD>
-<BODY>
-<H1>Short Tutorial</H1>
-
-<p>
- Following is a short tutorial introducing the main points of <tt>pb_assoc</tt>. It
-is organized as follows.</p>
-<ol>
- <li><a href = "#general_use">Basic Use of Maps</a></li>
-</ol>
-
-
-
-
-
-
-
-<h2><a name = "general_use">Basic Use of Maps</a></h2>
-
-<p>
- For the greater part, using <tt>pb_assoc</tt>'s maps is similar
-to using those of the STL. For example, the following shows a collision-chaining container mapping integers to characters.
-
-<pre>
-<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;<b>int</b>, <b>char</b>&gt; c;
-
-c[2] = 'b';
-
-assert(c.find(1) == c.end());
-</pre>
-
-<p>
- <a href="interface.html#containers">Inteface::Containers</a> describes the containers supported. <a href = "../example/basic_map_example.cpp"><tt>basic_map_example.cpp</tt></a>
-shows an example.
-</p>
-
-
-<h2><a name = "ms">Other Mapping Semantics</a></h2>
-
-<p>
- <tt>pb_assoc</tt> does not contain separate containers for different mapping semantics,
-as the STL does (<i>e.g.</i>, <tt>std::map</tt> and <tt>std::multimap</tt>). Rather, containers are parameterized by a <tt>Data</tt> parameter, and this parameter is a policy for the mapping semantics.
-</p>
-
-<p>
- Instantiating the <tt>Data</tt> parameter by
-<a href = "null_data_type.html"><tt>null_data_type</tt></a>
-makes a &quot;set&quot;. For example, the following shows a collision-chaining container storing integers.
-
-<pre>
-<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;<b>int</b>, <a href = "null_data_type.html">null_data_type</a>&gt; c;
-
-c.insert(2);
-
-assert(c.find(1) == c.end());
-</pre>
-</p>
-
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/update_seq_diagram.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/update_seq_diagram.jpg
deleted file mode 100644
index d3221cb..0000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/update_seq_diagram.jpg
+++ /dev/null
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/PythonPoweredSmall.gif b/libstdc++-v3/docs/html/ext/pb_ds/PythonPoweredSmall.gif
new file mode 100644
index 0000000..2689807
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/PythonPoweredSmall.gif
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/acks.html b/libstdc++-v3/docs/html/ext/pb_ds/acks.html
new file mode 100644
index 0000000..6612a4a
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/acks.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Acknowledgments</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Acknowledgments</h1>
+
+ <ol>
+ <li>This library was partially written at <a href=
+ "http://www.haifa.il.ibm.com/">IBM's Haifa Research
+ Labs</a>.</li>
+
+ <li>The library is based heavily on policy-based design and
+ uses many useful techniques from [<a href=
+ "references.html#alexandrescu01modern">alexandrescu01modern</a>].</li>
+
+ <li>Two ideas are borrowed from the SGI-STL implementation
+ [<a href="references.html#sgi_stl">sgi_stl</a>]:
+
+ <ol>
+ <li>The prime-based resize policies use a list of primes
+ taken from the SGI-STL implementation.</li>
+
+ <li>The red-black trees contain both a root node and a
+ header node (containing metadata), connected in a way
+ that forward and reverse iteration can be performed
+ efficiently.</li>
+ </ol>
+ </li>
+
+ <li>Some test utilities borrow ideas from [<a href=
+ "references.html#boost_timer">boost_timer</a>].</li>
+
+ <li>We would like to thank Scott Meyers for useful comments
+ (without attributing to him any flaws in the design or
+ implementation of the library).</li>
+
+ <li>Much of the documentation is <a href=
+ "http://www.python.org/"><img src="PythonPoweredSmall.gif"
+ align="middle" width="55" height="22" alt="[Python Powered]"
+ border="0" /></a> (especially through <a href=
+ "http://home.gna.org/pychart/">PyChart</a>, <a href=
+ "http://www.crummy.com/software/BeautifulSoup/">Beautiful
+ Soup</a>, and <a href=
+ "http://starship.python.net/crew/aaron_watters/kjbuckets/">kjbuckets</a>)
+ and uses <a href="http://tidy.sourceforge.net/"><img src=
+ "checked_by_tidy.gif" align="middle" width="55" height="45"
+ alt="[HTML tidy]" border="0" /></a>. The CSS-driven menus are
+ slightly modified from <a href=
+ "http://www.brothercake.com/scripts/navmeister/page.php">Brothercake</a>
+ (hopefully without introducing errors).</li>
+ </ol>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.png
new file mode 100644
index 0000000..16cc6da
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.svg b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.svg
new file mode 100644
index 0000000..02be624
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.svg
@@ -0,0 +1,491 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="11in"
+ height="8.5in"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.43"
+ version="1.0"
+ sodipodi:docbase="/mnt/share/src/policy_based_data_structures/pb_ds_images"
+ sodipodi:docname="assoc_tag_diagram_2.svg"
+ inkscape:export-filename="/mnt/share/src/policy_based_data_structures/pb_ds_images/assoc_tag_diagram_2.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mstart"
+ style="overflow:visible">
+ <path
+ id="path3311"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Sstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Sstart"
+ style="overflow:visible">
+ <path
+ id="path3319"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(0.3,0,0,0.3,-1.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Sstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Sstart"
+ style="overflow:visible">
+ <path
+ id="path3337"
+ d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(0.2,0.2)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Send"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Send"
+ style="overflow:visible">
+ <path
+ id="path3316"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(-0.3,0,0,-0.3,1.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend"
+ style="overflow:visible">
+ <path
+ id="path3322"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(-0.6,0,0,-0.6,3,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path3346"
+ d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(-0.8,-0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lstart"
+ style="overflow:visible">
+ <path
+ id="path3331"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(1.1,0,0,1.1,-5.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lend"
+ style="overflow:visible">
+ <path
+ id="path3328"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(-1.1,0,0,-1.1,5.5,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2"
+ inkscape:cx="613.85775"
+ inkscape:cy="310.05621"
+ inkscape:document-units="in"
+ inkscape:current-layer="layer1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1278"
+ inkscape:window-height="973"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ gridtolerance="0.125in"
+ guidetolerance="0.125in">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="629"
+ id="guide1307" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="449"
+ id="guide1309" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="269"
+ id="guide1311" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="496"
+ id="guide1313" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="361"
+ id="guide1315" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="226"
+ id="guide1317" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="631"
+ id="guide1319" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="766"
+ id="guide1321" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="91"
+ id="guide1345" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="901"
+ id="guide1347" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="539"
+ id="guide3390" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="359"
+ id="guide3392" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="280.5"
+ id="guide3324" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="172"
+ id="guide3326" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="427"
+ id="guide3328" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="711.5"
+ id="guide3340" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="179"
+ id="guide1395" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Benjamin Kosnik</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ y="562.32806"
+ x="237.8916"
+ height="23.200001"
+ width="80.769417"
+ id="rect1495"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.94391561;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.94391561;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1497"
+ width="80.769417"
+ height="23.200001"
+ x="132.8916"
+ y="562.32806" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.94391561;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1493"
+ width="80.769417"
+ height="23.200001"
+ x="21.891602"
+ y="562.32806" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1425"
+ width="141.64481"
+ height="23.200001"
+ x="209.57762"
+ y="382.56177" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3378"
+ width="141.64481"
+ height="23.200001"
+ x="640.77765"
+ y="382.56177" />
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans;stroke-miterlimit:4;stroke-dasharray:none"
+ x="710.40002"
+ y="397.09772"
+ id="use1337"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1391"
+ x="710.40003"
+ y="397.09772">basic_hash_table_tag</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="280"
+ y="397.09772"
+ id="text1339"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1385"
+ x="280"
+ y="397.09772">basic_tree_tag</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3418"
+ width="141.64481"
+ height="23.200001"
+ x="101.57762"
+ y="472.5618" />
+ <rect
+ y="472.5618"
+ x="317.57761"
+ height="23.200001"
+ width="141.64481"
+ id="rect3420"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="171.20001"
+ y="486.29773"
+ id="text3394"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1387"
+ x="171.20001"
+ y="486.29773">tree_tag</tspan></text>
+ <text
+ sodipodi:linespacing="100%"
+ id="text3400"
+ y="486.29773"
+ x="388.39999"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1389"
+ x="388.39999"
+ y="486.29773">trie_tag</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3380"
+ width="141.64481"
+ height="23.200001"
+ x="425.57764"
+ y="292.56177" />
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="495.20001"
+ y="307.09772"
+ id="text1323"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1384"
+ x="495.20001"
+ y="307.09772">associative_container_tag</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 170.97058,472.5 L 170.97058,451 L 387.51871,450 L 387.51871,472.5"
+ id="path2244" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 280.5,450.53297 L 280.5,410.62445"
+ id="path3332" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3422"
+ width="141.64481"
+ height="23.200001"
+ x="533.57764"
+ y="472.5618" />
+ <rect
+ y="472.5618"
+ x="748.77765"
+ height="23.200001"
+ width="141.64481"
+ id="rect3424"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="100%"
+ id="text3406"
+ y="486.29773"
+ x="601.20001"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1393"
+ x="601.20001"
+ y="486.29773">cc_hash_table_tag</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="818"
+ y="486.29773"
+ id="text3412"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1395"
+ x="818"
+ y="486.29773">gp_hash_table_tag</tspan></text>
+ <path
+ id="path3353"
+ d="M 601.47058,472.5 L 601.47058,451 L 818.01871,450 L 818.01871,472.5"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+ <path
+ id="path3355"
+ d="M 711,450.53297 L 711,410.62445"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path3344"
+ d="M 281.18218,383.28102 L 281.18218,361.78102 L 711.79281,360.78102 L 711.79281,383.28102"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+ <rect
+ y="383.1962"
+ x="425.625"
+ height="23.200001"
+ width="141.64481"
+ id="rect3376"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="100%"
+ id="use1329"
+ y="397.73215"
+ x="497.24741"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1382"
+ x="497.24741"
+ y="397.73215">list_update_tag</tspan></text>
+ <path
+ id="path3347"
+ d="M 497.79886,384.13056 L 497.79886,323.40547"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="61.152512"
+ y="577.07874"
+ id="text1423"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1418"
+ x="61.152512"
+ y="577.07874">rb_tree_tag</tspan></text>
+ <text
+ sodipodi:linespacing="100%"
+ id="text1427"
+ y="577.07874"
+ x="277.95251"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1414"
+ x="277.95252"
+ y="577.07874">splay_tree_tag</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 61.42308,563.28102 L 61.42308,541.78102 L 277.97121,540.78102 L 277.97121,563.28102"
+ id="path1431" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 170.9525,561.5357 L 170.9525,503.81235"
+ id="path1433" />
+ <rect
+ y="562.17499"
+ x="347.8916"
+ height="23.200001"
+ width="80.769417"
+ id="rect1469"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.94391561;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="100%"
+ id="text1471"
+ y="576.71094"
+ x="388.80002"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1412"
+ x="388.80002"
+ y="576.71094">pat_trie_tag</tspan></text>
+ <path
+ id="path1475"
+ d="M 389.35146,563.10936 L 389.35146,502.38427"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="173.95251"
+ y="577.07874"
+ id="text1487"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1416"
+ x="173.95251"
+ y="577.07874">ov_tree_tag</tspan></text>
+ </g>
+</svg>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_traits.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_traits.html
new file mode 100644
index 0000000..245b81c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_traits.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>container_traits Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>container_traits</tt> Interface</h1>
+
+ <p>Traits of an associative-container based on its underlying
+ data structure.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Cntnr59189" id="Cntnr59189"><b>class</b> Cntnr</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Container type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">Container Attributes</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="invalidation_guarantee3793555937" id=
+"invalidation_guarantee3793555937">invalidation_guarantee</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Invalidation guarantee.
+</pre>
+ </td>
+
+ <td>
+ <p>Invalidation-guarantee type.</p>
+
+ <p>This is either <a href=
+ "basic_invalidation_guarantee.html"><span class=
+ "c2"><tt>basic_invalidation_guarantee</tt></span></a>,
+ <a href="point_invalidation_guarantee.html"><span class=
+ "c2"><tt>point_invalidation_guarantee</tt></span></a>, or
+ <a href="range_invalidation_guarantee.html"><span class=
+ "c2"><tt>range_invalidation_guarantee</tt></span></a></p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="order_preserving1910229172" id=
+"order_preserving1910229172">order_preserving</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+True only if Cntnr objects guarantee storing keys by order.
+</pre>
+ </td>
+
+ <td>
+ <p>Order-preserving indicator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="erase_can_throw153323856" id=
+"erase_can_throw153323856">erase_can_throw</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+True only if erasing a key can throw.
+</pre>
+ </td>
+
+ <td>
+ <p>Erase-throw indicator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="reverse_iteration894617078" id=
+"reverse_iteration894617078">reverse_iteration</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+True only reverse iterators are supported.
+</pre>
+ </td>
+
+ <td>
+ <p>Reverse iteration indicator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="split_join_can_throw3200477759" id=
+"split_join_can_throw3200477759">split_join_can_throw</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+True only if split or join operations can throw.
+</pre>
+ </td>
+
+ <td>
+ <p>Split-join throw indicator.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_design.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_design.html
new file mode 100644
index 0000000..6c501e2
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_design.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Associative Containers</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Associative-Container Design</h1>
+
+ <ol>
+ <li><a href="ds_gen.html">Data-Structure Genericity</a></li>
+
+ <li class="c1">Genericity discusses generic manipulation of
+ containers based on different underlying
+ data structures.</li>
+
+ <li class="c1">Genericity discusses generic manipulation of
+ containers with different mapping semantics.</li>
+
+ <li><a href="tree_based_containers.html">Tree-Based
+ Containers</a> describes the design and policies of
+ tree-based containers.</li>
+
+ <li><a href="trie_based_containers.html">Trie-Based
+ Containers</a> describes the design and policies of
+ trie-based containers.</li>
+
+ <li><a href="hash_based_containers.html">Hash-Based
+ Containers</a> describes the design and policies of
+ hash-based containers.</li>
+
+ <li><a href="lu_based_containers.html">List-Based
+ Containers</a> describes the design and policies of
+ list-based containers with update policies.</li>
+ </ol>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_examples.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_examples.html
new file mode 100644
index 0000000..6c16698
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_examples.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Examples</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Associative-Container Examples</h1>
+
+ <h2><a name="basic_usage" id="basic_usage">Basic Use</a></h2>
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_map.cc"><tt>basic_map.cc</tt></a>
+ Basic use of "maps".</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_set.cc"><tt>basic_set.cc</tt></a>
+ Basic use of "sets".</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/erase_if.cc"><tt>erase_if.cc</tt></a>
+ Conditionally erasing values from a container object.</li>
+ </ol>
+
+ <h2><a name="generics" id="generics">Generics</a></h2>
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/assoc_container_traits.cc"><tt>assoc_container_traits.cc</tt></a>
+ Using <a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a> to query
+ about underlying data structure behavior.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/hash_find_neg.cc"><tt>hash_find_neg.cc</tt></a>
+ A non-compiling example showing wrong use of finding keys in
+ hash-based containers.</li>
+ </ol>
+
+ <h2><a name="hash_based" id="hash_based">Hash-Based
+ Containers</a></h2>
+
+
+ <h3><a name="resize_related" id="resize_related">Resize
+ Related</a></h3>
+
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/hash_initial_size.cc"><tt>hash_initial_size.cc</tt></a>
+ Setting the initial size of a hash-based container
+ object.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/hash_resize_neg.cc"><tt>hash_resize_neg.cc</tt></a>
+ A non-compiling example showing how not to resize a
+ hash-based container object.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/hash_resize.cc"><tt>hash_resize.cc</tt></a>
+ Resizing the size of a hash-based container object.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/hash_illegal_resize.cc"><tt>hash_illegal_resize.cc</tt></a>
+ Showing an illegal resize of a hash-based container
+ object.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/hash_load_set_change.cc"><tt>hash_load_set_change.cc</tt></a>
+ Changing the load factors of a hash-based container
+ object.</li>
+ </ol>
+
+ <h3><a name="hash_related" id="hash_related">Hash-Function
+ Related</a></h3>
+
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/hash_mod.cc"><tt>hash_mod.cc</tt></a>
+ Using a modulo range-hashing function for the case of an
+ unknown skewed key distribution.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/hash_shift_mask.cc"><tt>shift_mask.cc</tt></a>
+ Writing a range-hashing functor for the case of a known
+ skewed key distribution.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/store_hash.cc"><tt>store_hash.cc</tt></a>
+ Storing the hash value along with each key.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/ranged_hash.cc"><tt>ranged_hash.cc</tt></a>
+ Writing a ranged-hash functor.</li>
+ </ol>
+
+ <h2><a name="tree_like_based" id=
+ "tree_like_based">Tree-Like Containers (Trees and
+ Tries)</a></h2>
+
+
+ <h3><a name="node_invariants" id=
+ "node_invariants">Node-Invariants</a></h3>
+
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/tree_order_statistics.cc"><tt>tree_order_statistics.cc</tt></a>
+ Using trees for order statistics.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/tree_intervals.cc"><tt>tree_intervals.cc</tt></a>
+ Augmenting trees to support operations on line
+ intervals.</li>
+ </ol>
+
+ <h3><a name="split_join" id="split_join">Split and
+ Join</a></h3>
+
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/tree_join.cc"><tt>tree_join.cc</tt></a>
+ Joining two tree-based container objects.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/trie_split.cc"><tt>trie_split.cc</tt></a>
+ Splitting a PATRICIA trie container object.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/tree_order_statistics_join.cc"><tt>tree_order_statistics_join.cc</tt></a>
+ Order statistics while joining two tree-based container
+ objects.</li>
+ </ol>
+
+ <h2><a name="trie_based" id="trie_based">Trie-Based
+ Containers</a></h2>
+
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/trie_dna.cc"><tt>trie_dna.cc</tt></a>
+ Using a PATRICIA trie for DNA strings.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/trie_prefix_search.cc"><tt>trie_prefix_search.cc</tt></a>
+ Using a PATRICIA trie for finding all entries whose key
+ matches a given prefix.</li>
+ </ol>
+
+ <h2><a name="mmaps" id="mmaps">"Multimaps" and
+ "Multisets".</a></h2>
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_multimap.cc"><tt>basic_multimap.cc</tt></a>
+ Basic use of "multimaps".</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_multiset.cc"><tt>basic_multiset.cc</tt></a>
+ Basic use of "multisets".</li>
+ </ol>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_performance_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_performance_tests.html
new file mode 100644
index 0000000..642f848
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_performance_tests.html
@@ -0,0 +1,345 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Associative-Container Performance Tests</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1><a name="assoc" id="assoc">Associative-Container
+ Performance Tests</a></h1>
+<h2><a name="settings" id="settings">Settings</a></h2>
+<p>This section describes performance tests and their results.
+ In the following, <a href="#gcc"><u>g++</u></a>, <a href="#msvc"><u>msvc++</u></a>, and <a href="#local"><u>local</u></a> (the build used for generating this
+ documentation) stand for three different builds:</p>
+<div id="gcc_settings_div">
+<div class="c1">
+<h3><a name="gcc" id="gcc"><u>g++</u></a></h3>
+<ul>
+<li>CPU speed - cpu MHz : 2660.644</li>
+<li>Memory - MemTotal: 484412 kB</li>
+<li>Platform -
+ Linux-2.6.12-9-386-i686-with-debian-testing-unstable</li>
+<li>Compiler - g++ (GCC) 4.0.2 20050808 (prerelease)
+ (Ubuntu 4.0.1-4ubuntu9) Copyright (C) 2005 Free Software
+ Foundation, Inc. This is free software; see the source
+ for copying conditions. There is NO warranty; not even
+ for MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE.</li>
+</ul>
+</div>
+<div class="c2"></div>
+</div>
+<div id="msvc_settings_div">
+<div class="c1">
+<h3><a name="msvc" id="msvc"><u>msvc++</u></a></h3>
+<ul>
+<li>CPU speed - cpu MHz : 2660.554</li>
+<li>Memory - MemTotal: 484412 kB</li>
+<li>Platform - Windows XP Pro</li>
+<li>Compiler - Microsoft (R) 32-bit C/C++ Optimizing
+ Compiler Version 13.10.3077 for 80x86 Copyright (C)
+ Microsoft Corporation 1984-2002. All rights
+ reserved.</li>
+</ul>
+</div>
+<div class="c2"></div>
+</div>
+<div id="local_settings_div"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h3><a name = "local"><u>local</u></a></h3><ul>
+<li>CPU speed - cpu MHz : 2250.000</li>
+<li>Memory - MemTotal: 2076248 kB</li>
+<li>Platform - Linux-2.6.16-1.2133_FC5-i686-with-redhat-5-Bordeaux</li>
+<li>Compiler - g++ (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1)
+Copyright (C) 2006 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+</li>
+</ul>
+</div><div style = "width: 100%; height: 20px"></div></div>
+<h2><a name="assoc_tests" id="assoc_tests">Tests</a></h2>
+<h3><a name="hash_based" id="hash_based">Hash-Based
+ Containers</a></h3>
+<ol>
+<li><a href="hash_text_find_find_timing_test.html">Hash-Based
+ Text <tt>find</tt> Find Timing Test</a></li>
+<li><a href="hash_random_int_find_find_timing_test.html">Hash-Based
+ Random-Integer <tt>find</tt> Find Timing Test</a></li>
+<li><a href="hash_random_int_subscript_find_timing_test.html">Hash-Based
+ Random-Integer Subscript Find Timing Test</a></li>
+<li><a href="hash_random_int_subscript_insert_timing_test.html">Hash-Based
+ Random-Integer Subscript Insert Timing Test</a></li>
+<li><a href="hash_zlob_random_int_find_find_timing_test.html">Hash-Based
+ Skewed-Distribution Random-Integer <tt>find</tt> Find Timing
+ Test</a></li>
+<li><a href="hash_random_int_erase_mem_usage_test.html">Hash-Based Erase
+ Memory Use Test</a></li>
+</ol>
+<h3><a name="tree_like_based" id="tree_like_based">Tree-Like-Based Containers</a></h3>
+<ol>
+<li><a href="tree_text_insert_timing_test.html">Tree-Based
+ and Trie-Based Text Insert Timing Test</a></li>
+<li><a href="tree_text_find_find_timing_test.html">Tree-Based
+ and Trie-Based Text <tt>find</tt> Find Timing Test</a></li>
+<li><a href="tree_text_lor_find_find_timing_test.html">Tree-Based
+ Locality-of-Reference Text <tt>find</tt> Find Timing
+ Test</a></li>
+<li><a href="tree_random_int_find_find_timing_test.html">Tree-Based
+ Random-Integer <tt>find</tt> Find Timing Test</a></li>
+<li><a href="tree_split_join_timing_test.html">Tree Split and
+ Join Timing Test</a></li>
+<li><a href="tree_order_statistics_timing_test.html">Tree
+ Order-Statistics Timing Test</a></li>
+</ol>
+<h3><a name="multimaps" id="multimaps">Multimaps</a></h3>
+<ol>
+<li><a href="multimap_text_find_timing_test_small.html">"Multimap"
+ Text Find Timing Test with <u>Small</u> Average Secondary-Key
+ to Primary-Key Ratio</a></li>
+<li><a href="multimap_text_find_timing_test_large.html">"Multimap"
+ Text Find Timing Test with <u>Large</u> Average Secondary-Key
+ to Primary-Key Ratio</a></li>
+<li><a href="multimap_text_insert_timing_test_small.html">"Multimap"
+ Text Insert Timing Test with <u>Small</u> Average
+ Secondary-Key to Primary-Key Ratio</a></li>
+<li><a href="multimap_text_insert_timing_test_large.html">"Multimap"
+ Text Insert Timing Test with <u>Large</u> Average
+ Secondary-Key to Primary-Key Ratio</a></li>
+<li><a href="multimap_text_insert_mem_usage_test_small.html">"Multimap"
+ Text Insert Memory-Use Test with <u>Small</u> Average
+ Secondary-Key to Primary-Key Ratio</a></li>
+<li><a href="multimap_text_insert_mem_usage_test_large.html">"Multimap"
+ Text Insert Memory-Use Test with <u>Large</u> Average
+ Secondary-Key to Primary-Key Ratio</a></li>
+</ol>
+<h2><a name="assoc_observations" id="assoc_observations">Observations</a></h2>
+<h3><a name="dss_family_choice" id="dss_family_choice">Underlying Data-Structure Families</a></h3>
+<p>In general, hash-based containers (see <a href="hash_based_containers.html">Design::Associative
+ Containers::Hash-Based Containers</a>) have better timing
+ performance than containers based on different underlying-data
+ structures. The main reason to choose a tree-based (see
+ <a href="tree_based_containers.html">Design::Associative
+ Containers::Tree-Based Containers</a>) or trie-based container
+ (see <a href="trie_based_containers.html">Design::Associative
+ Containers::Trie-Based Containers</a>) is if a byproduct of the
+ tree-like structure is required: either order-preservation, or
+ the ability to utilize node invariants (see <a href="tree_based_containers.html#invariants">Design::Associative
+ Containers::Tree-Based Containers::Node Invariants</a> and
+ <a href="trie_based_containers.html#invariants">Design::Associative
+ Containers::Trie-Based Containers::Node Invariants</a>). If
+ memory-use is the major factor, an ordered-vector tree (see
+ <a href="tree_based_containers.html">Design::Associative
+ Containers::Tree-Based Containers</a>) gives optimal results
+ (albeit with high modificiation costs), and a list-based
+ container (see <a href="lu_based_containers.html">Design::Associative
+ Containers::List-Based Containers</a>) gives reasonable
+ results.</p>
+<h3><a name="hash_based_types" id="hash_based_types">Hash-Based
+ Container Types</a></h3>
+<p>Hash-based containers are typically either collision
+ chaining or probing (see <a href="hash_based_containers.html">Design::Associative
+ Containers::Hash-Based Containers</a>). Collision-chaining
+ containers are more flexible internally, and so offer better
+ timing performance. Probing containers, if used for simple
+ value-types, manage memory more efficiently (they perform far
+ fewer allocation-related calls). In general, therefore, a
+ collision-chaining table should be used. A probing container,
+ conversely, might be used efficiently for operations such as
+ eliminating duplicates in a sequence, or counting the number of
+ occurrences within a sequence. Probing containers might be more
+ useful also in multithreaded applications where each thread
+ manipulates a hash-based container: in the STL, allocators have
+ class-wise semantics (see [<a href="references.html#meyers96more">meyers96more</a>] - Item 10); a
+ probing container might incur less contention in this case.</p>
+<h3><a name="hash_based_policies" id="hash_based_policies">Hash-Based Containers' Policies</a></h3>
+<p>In hash-based containers, the range-hashing scheme (see
+ <a href="hash_based_containers.html#hash_policies">Design::Associative
+ Containers::Hash-Based Containers::Hash Policies</a>) seems to
+ affect performance more than other considerations. In most
+ settings, a mask-based scheme works well (or can be made to
+ work well). If the key-distribution can be estimated a-priori,
+ a simple hash function can produce nearly uniform hash-value
+ distribution. In many other cases (<i>e.g.</i>, text hashing,
+ floating-point hashing), the hash function is powerful enough
+ to generate hash values with good uniformity properties
+ [<a href="references.html#knuth98sorting">knuth98sorting</a>];
+ a modulo-based scheme, taking into account all bits of the hash
+ value, appears to overlap the hash function in its effort.</p>
+<p>The range-hashing scheme determines many of the other
+ policies (see <a href="hash_based_containers.html#policy_interaction">Design::Hash-Based
+ Containers::Policy Interaction</a>). A mask-based scheme works
+ well with an exponential-size policy (see <a href="hash_based_containers.html#resize_policies">Design::Associative
+ Containers::Hash-Based Containers::Resize Policies</a>) ; for
+ probing-based containers, it goes well with a linear-probe
+ function (see <a href="hash_based_containers.html#hash_policies">Design::Associative
+ Containers::Hash-Based Containers::Hash Policies</a>).</p>
+<p>An orthogonal consideration is the trigger policy (see
+ <a href="hash_based_containers.html#resize_policies">Design::Associative
+ Containers::Hash-Based Containers::Resize Policies</a>). This
+ presents difficult tradeoffs. <i>E.g.</i>, different load
+ factors in a load-check trigger policy yield a
+ space/amortized-cost tradeoff.</p>
+<h3><a name="tree_like_based_types" id="tree_like_based_types">Tree-Like-Based Container
+ Types</a></h3>
+<p>In general, there are several families of tree-based
+ underlying data structures: balanced node-based trees
+ (<i>e.g.</i>, red-black or AVL trees), high-probability
+ balanced node-based trees (<i>e.g.</i>, random treaps or
+ skip-lists), competitive node-based trees (<i>e.g.</i>, splay
+ trees), vector-based "trees", and tries. (Additionally, there
+ are disk-residing or network-residing trees, such as B-Trees
+ and their numerous variants. An interface for this would have
+ to deal with the execution model and ACID guarantees; this is
+ out of the scope of this library.) Following are some
+ observations on their application to different settings.</p>
+<p>Of the balanced node-based trees, this library includes a
+ red-black tree (see <a href="tree_based_containers.html">Design::Associative
+ Containers::Tree-Based Containers</a>), as does STL (in
+ practice). This type of tree is the "workhorse" of tree-based
+ containers: it offers both reasonable modification and
+ reasonable lookup time. Unfortunately, this data structure
+ stores a huge amount of metadata. Each node must contain,
+ besides a value, three pointers and a boolean. This type might
+ be avoided if space is at a premium [<a href="references.html#austern00noset">austern00noset</a>].</p>
+<p>High-probability balanced node-based trees suffer the
+ drawbacks of deterministic balanced trees. Although they are
+ fascinating data structures, preliminary tests with them showed
+ their performance was worse than red-black trees. The library
+ does not contain any such trees, therefore.</p>
+<p>Competitive node-based trees have two drawbacks. They are
+ usually somewhat unbalanced, and they perform a large number of
+ comparisons. Balanced trees perform one comparison per each
+ node they encounter on a search path; a splay tree performs two
+ comparisons. If the keys are complex objects, <i>e.g.</i>,
+ <tt>std::string</tt>, this can increase the running time.
+ Conversely, such trees do well when there is much locality of
+ reference. It is difficult to determine in which case to prefer
+ such trees over balanced trees. This library includes a splay
+ tree (see <a href="tree_based_containers.html">Design::Associative
+ Containers::Tree-Based Containers</a>).</p>
+<p>Ordered-vector trees (see <a href="tree_based_containers.html">Design::Associative
+ Containers::Tree-Based Containers</a>) use very little space
+ [<a href="references.html#austern00noset">austern00noset</a>].
+ They do not have any other advantages (at least in this
+ implementation).</p>
+<p>Large-fan-out PATRICIA tries (see <a href="trie_based_containers.html">Design::Associative
+ Containers::Trie-Based Containers</a>) have excellent lookup
+ performance, but they do so through maintaining, for each node,
+ a miniature "hash-table". Their space efficiency is low, and
+ their modification performance is bad. These tries might be
+ used for semi-static settings, where order preservation is
+ important. Alternatively, red-black trees cross-referenced with
+ hash tables can be used. [<a href="references.html#okasaki98mereable">okasaki98mereable</a>]
+ discusses small-fan-out PATRICIA tries for integers, but the
+ cited results seem to indicate that the amortized cost of
+ maintaining such trees is higher than that of balanced trees.
+ Moderate-fan-out trees might be useful for sequences where each
+ element has a limited number of choices, <i>e.g.</i>, DNA
+ strings (see <a href="assoc_examples.html#trie_based">Examples::Associative
+ Containers::Trie-Based Containers</a>).</p>
+<h3><a name="msc" id="msc">Mapping-Semantics
+ Considerations</a></h3>
+<p>Different mapping semantics were discussed in <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Alternative to Multiple Equivalent Keys</a> and
+ <a href="tutorial.html#assoc_ms">Tutorial::Associative
+ Containers::Associative Containers Others than Maps</a>. We
+ will focus here on the case where a keys can be composed into
+ primary keys and secondary keys. (In the case where some keys
+ are completely identical, it is trivial that one should use an
+ associative container mapping values to size types.) In this
+ case there are (at least) five possibilities:</p>
+<ol>
+<li>Use an associative container that allows equivalent-key
+ values (such as <tt>std::multimap</tt>)</li>
+<li>Use a unique-key value associative container that maps
+ each primary key to some complex associative container of
+ secondary keys, say a tree-based or hash-based container (see
+ <a href="tree_based_containers.html">Design::Associative
+ Containers::Tree-Based Containers</a> and <a href="hash_based_containers.html">Design::Associative
+ Containers::Hash-Based Containers</a>)</li>
+<li>Use a unique-key value associative container that maps
+ each primary key to some simple associative container of
+ secondary keys, say a list-based container (see <a href="lu_based_containers.html">Design::Associative
+ Containers::List-Based Containers</a>)</li>
+<li>Use a unique-key value associative container that maps
+ each primary key to some non-associative container
+ (<i>e.g.</i>, <tt>std::vector</tt>)</li>
+<li>Use a unique-key value associative container that takes
+ into account both primary and secondary keys.</li>
+</ol>
+<p>We do not think there is a simple answer for this (excluding
+ option 1, which we think should be avoided in all cases).</p>
+<p>If the expected ratio of secondary keys to primary keys is
+ small, then 3 and 4 seem reasonable. Both types of secondary
+ containers are relatively lightweight (in terms of memory use
+ and construction time), and so creating an entire container
+ object for each primary key is not too expensive. Option 4
+ might be preferable to option 3 if changing the secondary key
+ of some primary key is frequent - one cannot modify an
+ associative container's key, and the only possibility,
+ therefore, is erasing the secondary key and inserting another
+ one instead; a non-associative container, conversely, can
+ support in-place modification. The actual cost of erasing a
+ secondary key and inserting another one depends also on the
+ allocator used for secondary associative-containers (The tests
+ above used the standard allocator, but in practice one might
+ choose to use, <i>e.g.</i>, [<a href="references.html#boost_pool">boost_pool</a>]). Option 2 is
+ definitely an overkill in this case. Option 1 loses out either
+ immediately (when there is one secondary key per primary key)
+ or almost immediately after that. Option 5 has the same
+ drawbacks as option 2, but it has the additional drawback that
+ finding all values whose primary key is equivalent to some key,
+ might be linear in the total number of values stored (for
+ example, if using a hash-based container).</p>
+<p>If the expected ratio of secondary keys to primary keys is
+ large, then the answer is more complicated. It depends on the
+ distribution of secondary keys to primary keys, the
+ distribution of accesses according to primary keys, and the
+ types of operations most frequent.</p>
+<p>To be more precise, assume there are <i>m</i> primary keys,
+ primary key <i>i</i> is mapped to <i>n<sub>i</sub></i>
+ secondary keys, and each primary key is mapped, on average, to
+ <i>n</i> secondary keys (<i>i.e.</i>,
+ <i><b>E</b>(n<sub>i</sub>) = n</i>).</p>
+<p>Suppose one wants to find a specific pair of primary and
+ secondary keys. Using 1 with a tree based container
+ (<tt>std::multimap</tt>), the expected cost is
+ <i><b>E</b>(&Theta;(log(m) + n<sub>i</sub>)) = &Theta;(log(m) +
+ n)</i>; using 1 with a hash-based container
+ (<tt>std::tr1::unordered_multimap</tt>), the expected cost is
+ <i>&Theta;(n)</i>. Using 2 with a primary hash-based container
+ and secondary hash-based containers, the expected cost is
+ <i>O(1)</i>; using 2 with a primary tree-based container and
+ secondary tree-based containers, the expected cost is (using
+ the Jensen inequality [<a href="references.html#motwani95random">motwani95random</a>])
+ <i><b>E</b>(O(log(m) + log(n<sub>i</sub>)) = O(log(m)) +
+ <b>E</b>(O(log(n<sub>i</sub>)) = O(log(m)) + O(log(n))</i>,
+ assuming that primary keys are accessed equiprobably. 3 and 4
+ are similar to 1, but with lower constants. Using 5 with a
+ hash-based container, the expected cost is <i>O(1)</i>; using 5
+ with a tree based container, the cost is
+ <i><b>E</b>(&Theta;(log(mn))) = &Theta;(log(m) +
+ log(n))</i>.</p>
+<p>Suppose one needs the values whose primary key matches some
+ given key. Using 1 with a hash-based container, the expected
+ cost is <i>&Theta;(n)</i>, but the values will not be ordered
+ by secondary keys (which may or may not be required); using 1
+ with a tree-based container, the expected cost is
+ <i>&Theta;(log(m) + n)</i>, but with high constants; again the
+ values will not be ordered by secondary keys. 2, 3, and 4 are
+ similar to 1, but typically with lower constants (and,
+ additionally, if one uses a tree-based container for secondary
+ keys, they will be ordered). Using 5 with a hash-based
+ container, the cost is <i>&Theta;(mn)</i>.</p>
+<p>Suppose one wants to assign to a primary key all secondary
+ keys assigned to a different primary key. Using 1 with a
+ hash-based container, the expected cost is <i>&Theta;(n)</i>,
+ but with very high constants; using 1 with a tree-based
+ container, the cost is <i>&Theta;(nlog(mn))</i>. Using 2, 3,
+ and 4, the expected cost is <i>&Theta;(n)</i>, but typically
+ with far lower costs than 1. 5 is similar to 1.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_regression_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_regression_tests.html
new file mode 100644
index 0000000..178aadf
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_regression_tests.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Associative-Container Regression Tests</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Associative-Container Regression Tests</h1>
+
+ <h2><a name="assoc_desc" id="assoc_desc">Description</a></h2>
+
+ <p>The library contains a single comprehensive regression test.
+ For a given container type in <tt>pb_ds</tt>, the test creates
+ an object of the container type and an object of the
+ corresponding STL type (<i>e.g.</i>, <tt>std::set</tt>). It
+ then performs a random sequence of methods with random
+ arguments (<i>e.g.</i>, inserts, erases, and so forth) on both
+ objects. At each operation, the test checks the return value of
+ the method, and optionally both compares <tt>pb_ds</tt>'s
+ object with the STL's object as well as performing other
+ consistency checks on <tt>pb_ds</tt>'s object (<i>e.g.</i>,
+ order preservation, when applicable, or node invariants, when
+ applicable).</p>
+
+ <p>Additionally, the test integrally checks exception safety
+ and resource leaks. This is done as follows. A special
+ allocator type, written for the purpose of the test, both
+ randomly throws an exceptions when allocations are performed,
+ and tracks allocations and de-allocations. The exceptions thrown
+ at allocations simulate memory-allocation failures; the
+ tracking mechanism checks for memory-related bugs (<i>e.g.</i>,
+ resource leaks and multiple de-allocations). Both
+ <tt>pb_ds</tt>'s containers and the containers' value-types are
+ configured to use this allocator.</p>
+
+ <p>Due to compiler constraints, the test is split into the
+ several sources, each checking only some containers.</p>
+
+ <h2><a name="assoc_tests" id="assoc_tests">Tests</a></h2>
+
+ <h3><a name="assoc_tests_set" id="assoc_tests_set">"Set"
+ Tests</a></h3>
+
+ <p>The following check all "set" types:</p>
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc"><tt>hash_no_data_map_rand.cc</tt></a>
+ checks all hash-based "set" types.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc"><tt>list_update_no_data_map_rand.cc</tt></a>
+ checks all list-based "set" types.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc"><tt>tree_no_data_map_rand.cc</tt></a>
+ checks all tree-based "set" types.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc"><tt>trie_no_data_map_rand.cc</tt></a>
+ checks all PATRICIA-trie-based "set" types.</li>
+ </ol>
+
+ <h3><a name="assoc_tests_map" id="assoc_tests_map">"Map"
+ Tests</a></h3>
+
+ <p>The following check all "map" types:</p>
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/regression/hash_data_map_rand.cc"><tt>hash_data_map_rand.cc</tt></a>
+ checks all hash-based "map" types.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc"><tt>list_update_data_map_rand.cc</tt></a>
+ checks all list-based "map" types.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/regression/tree_data_map_rand.cc"><tt>tree_data_map_rand.cc</tt></a>
+ checks all tree-based "map" types.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/regression/trie_data_map_rand.cc"><tt>trie_data_map_rand.cc</tt></a>
+ checks all PATRICIA-trie-based "map" types.</li>
+ </ol>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_tests.html
new file mode 100644
index 0000000..6e44749
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_tests.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Associative-Container Tests</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Associative-Container Tests</h1>
+
+ <p><a href="assoc_regression_tests.html">Associative-Container
+ Regression Tests</a> describes the regression tests; <a href=
+ "assoc_performance_tests.html">Associative-Container
+ Performance Tests</a> describes the performance tests.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/associative_container_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/associative_container_tag.html
new file mode 100644
index 0000000..5c44efe
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/associative_container_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>associative_container_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>associative_container_tag</tt> Interface</h1>
+
+ <p>Basic associative-container data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="container_tag.html"><span class=
+"c2"><tt>container_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/balls_and_bins.png b/libstdc++-v3/docs/html/ext/pb_ds/balls_and_bins.png
new file mode 100644
index 0000000..529c3ae
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/balls_and_bins.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_table.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_table.html
new file mode 100644
index 0000000..a6c569c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_table.html
@@ -0,0 +1,436 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>basic_hash_table Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>basic_hash_table</tt> Interface</h1>
+
+ <p>An abstract basic hash-based associative container.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Hash_Fn1515835" id=
+"Hash_Fn1515835"><b>class</b> Hash_Fn</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Hash functor.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Eq_Fn60085" id="Eq_Fn60085"><b>class</b> Eq_Fn</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Equivalence functor.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Resize_Policy566860465" id=
+"Resize_Policy566860465"><b>class</b> Resize_Policy</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Resize policy.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Store_Hash218262104" id=
+"Store_Hash218262104"><b>bool</b> Store_Hash</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Indicates whether the hash value will be stored along
+ with each key.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped-structure tag.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link4" id="link4">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="hash_fn2015995" id="hash_fn2015995">hash_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Hash functor type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="eq_fn80245" id="eq_fn80245">eq_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Eq_Fn60085"><tt>Eq_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Equivalence functor type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="resize_policy4084493169" id=
+"resize_policy4084493169">resize_policy</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Resize policy type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="store_hash280766104" id=
+"store_hash280766104">store_hash</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Store_Hash218262104"><tt>Store_Hash</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Indicates whether a hash value is stored with each
+ entry.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~basic_hash_table
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Policy Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#hash_fn2015995"><tt>hash_fn</tt></a> &amp;
+ get_hash_fn
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#hash_fn2015995"><tt>hash_fn</tt></a> object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>const</b> <a href="#hash_fn2015995"><tt>hash_fn</tt></a> &amp;
+ get_hash_fn
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access to the <a href=
+ "#hash_fn2015995"><tt>hash_fn</tt></a> object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#eq_fn80245"><tt>eq_fn</tt></a> &amp;
+ get_eq_fn
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href="#eq_fn80245"><tt>eq_fn</tt></a>
+ object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>const</b> <a href="#eq_fn80245"><tt>eq_fn</tt></a> &amp;
+ get_eq_fn
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access to the <a href=
+ "#eq_fn80245"><tt>eq_fn</tt></a> object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;
+ get_resize_policy
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#resize_policy4084493169"><tt>resize_policy</tt></a>
+ object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>const</b> <a href=
+"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;
+ get_resize_policy
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access to the <a href=
+ "#resize_policy4084493169"><tt>resize_policy</tt></a>
+ object.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link8" id="link8">Private Methods</a></h2>
+
+ <h3><a name="link9" id="link9">Resize Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <b>void</b>
+ do_resize
+ (size_type new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Resizes the container object to <span class=
+ "c1"><tt>new_size</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_tag.html
new file mode 100644
index 0000000..8110c0d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>basic_hash_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>basic_hash_tag</tt> Interface</h1>
+
+ <p>Basic hash data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="associative_container_tag.html"><span class=
+"c2"><tt>associative_container_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_invalidation_guarantee.html
new file mode 100644
index 0000000..c4c242b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_invalidation_guarantee.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>basic_invalidation_guarantee Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>basic_invalidation_guarantee</tt> Interface</h1>
+
+ <p>Signifies a basic invalidation guarantee that any iterator,
+ pointer, or reference to a container object's mapped value type
+ is valid as long as the container is not modified.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_tree.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree.html
new file mode 100644
index 0000000..f66d7a9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree.html
@@ -0,0 +1,660 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>basic_tree Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>basic_tree</tt> Interface</h1>
+
+ <p>An abstract basic tree-like-based associative container.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped-structure tag.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Node_Update841554648" id=
+"Node_Update841554648"><b>class</b> Node_Update</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node updater.</p>
+
+ <p>Restores node-invariants when invalidated.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Policy_Tl42017403" id=
+"Policy_Tl42017403"><b>class</b> Policy_Tl</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Policy typelist.</p>
+
+ <p>Contains subclasses' policies.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#Node_Update841554648"><tt>Node_Update</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link4" id="link4">Key-Type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>::const_key_reference
+</pre>
+ </td>
+
+ <td>
+ <p>Const key reference type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="node_update2404554648" id=
+"node_update2404554648">node_update</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Node_Update841554648"><tt>Node_Update</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node updater type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link6" id="link6">Iterator Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>::const_iterator
+</pre>
+ </td>
+
+ <td>
+ <p>Const range-type iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>::iterator
+</pre>
+ </td>
+
+ <td>
+ <p>Range-type iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_reverse_iterator4151293083" id=
+"const_reverse_iterator4151293083">const_reverse_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Const reverse range-type iterator.
+</pre>
+ </td>
+
+ <td>
+ <p>Const reverse range-type <a href=
+ "#iterator10418194"><tt>iterator</tt></a>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="reverse_iterator1896910345" id=
+"reverse_iterator1896910345">reverse_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Reverse range-type iterator.<br />
+If <a href="#Mapped318655"><tt>Mapped</tt></a> is <a href=
+"null_mapped_type.html"><span class=
+"c2"><tt>null_mapped_type</tt></span></a>, then this is synonymous to <a href="#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Reverse range-type <a href=
+ "#iterator10418194"><tt>iterator</tt></a>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link7" id="link7">Public Methods</a></h2>
+
+ <h3><a name="link8" id="link8">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~basic_tree
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link9" id="link9">Policy Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#node_update2404554648"><tt>node_update</tt></a> &amp;
+ get_node_update
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#node_update2404554648"><tt>node_update</tt></a>
+ object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>const</b> <a href=
+"#node_update2404554648"><tt>node_update</tt></a> &amp;
+ get_node_update
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access to the <a href=
+ "#node_update2404554648"><tt>node_update</tt></a>
+ object.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link10" id="link10">Find Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#iterator10418194"><tt>iterator</tt></a>
+ lower_bound
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+ </td>
+
+ <td>
+ <p>Returns an <a href=
+ "#iterator10418194"><tt>iterator</tt></a> corresponding
+ to the entry whose key is the smallest one at least as
+ large as <span class="c1"><tt>r_key</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#const_iterator98626788"><tt>const_iterator</tt></a>
+ lower_bound
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <tt><b>const</b></tt> <a href=
+ "#iterator10418194"><tt>iterator</tt></a> corresponding
+ to the entry whose key is the smallest one at least as
+ large as <span class="c1"><tt>r_key</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#iterator10418194"><tt>iterator</tt></a>
+ upper_bound
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+ </td>
+
+ <td>
+ <p>Returns an <a href=
+ "#iterator10418194"><tt>iterator</tt></a> corresponding
+ to the entry whose key is the smallest one larger than
+ <span class="c1"><tt>r_key</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#const_iterator98626788"><tt>const_iterator</tt></a>
+ upper_bound
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a>
+ corresponding to the entry whose key is the smallest one
+ larger than <span class="c1"><tt>r_key</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link11" id="link11">Erase Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#iterator10418194"><tt>iterator</tt></a>
+ erase
+ (<a href="#iterator10418194"><tt>iterator</tt></a> it)
+</pre>
+ </td>
+
+ <td>
+ <p>Erases the value_type corresponding to the <a href=
+ "#iterator10418194"><tt>iterator</tt></a> <span class=
+ "c1"><tt>it</tt></span>. Returns the <a href=
+ "#iterator10418194"><tt>iterator</tt></a> corresponding
+ to the next value_type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+ erase
+ (<a href=
+"#reverse_iterator1896910345"><tt>reverse_iterator</tt></a> it)
+</pre>
+ </td>
+
+ <td>
+ <p>Erases the value_type corresponding to the <a href=
+ "#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+ <span class="c1"><tt>it</tt></span>. Returns the <a href=
+ "#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+ corresponding to the previous value_type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link12" id="link12">Iteration Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+ rbegin
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+ corresponding to the last value_type in the
+ container.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
+ rbegin
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
+ corresponding to the last value_type in the
+ container.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+ rend
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+ corresponding to the just-before-first value_type in the
+ container.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
+ rend
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
+ corresponding to the just-before-first value_type in the
+ container.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link13" id="link13">Split and join
+ Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ join
+ (<span class=
+"c2"><tt>basic_tree</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Joins two trees. When this function returns,
+ <span class="c1"><tt>other</tt></span> will be
+ empty.</p>
+
+ <p>When calling this method, <span class=
+ "c1"><tt>other</tt></span>'s keys must be all larger or
+ all smaller than this object's keys, and <span class=
+ "c1"><tt>other</tt></span>'s policies must be
+ equivalent to this object's policies.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ split
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key,
+ <span class=
+"c2"><tt>basic_tree</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Splits into two trees. When this function returns,
+ <span class="c1"><tt>other</tt></span> will contain
+ only keys larger than <span class=
+ "c1"><tt>r_key</tt></span>.</p>
+
+ <p>When calling this method, <span class=
+ "c1"><tt>other</tt></span>'s policies must be
+ equivalent to this object's policies.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html
new file mode 100644
index 0000000..5647f55
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html
@@ -0,0 +1,383 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>tree::const_node_iterator
+ Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt><span class=
+ "c2"><tt>tree</tt></span>::const_node_iterator</tt>
+ Interface</h1>
+
+ <p>Const node iterator.</p>
+
+ <p>This is an &amp;qout;iterator to an iterator&amp;qout; - it
+ iterates over nodes, and de-referencing it returns one of the
+ tree's iterators</p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">Iterator Definitions</a></h3>
+
+ <table class="c2" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="iterator_category2821876439" id=
+"iterator_category2821876439">iterator_category</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+trivial_iterator_tag
+</pre>
+ </td>
+
+ <td>
+ <p>Category.</p>
+
+ <p>This tag identifies that the iterator has none of the
+ STL's iterators' movement abilities.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="difference_type868028452" id=
+"difference_type868028452">difference_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre class="c1">
+void
+</pre>
+ </td>
+
+ <td>
+ <p>Difference type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link3" id="link3">Value-Type Definitions</a></h3>
+
+ <p>Note that a node iterator's value type is actually a tree
+ iterator.</p>
+
+ <table class="c2" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="value_type279018186" id=
+"value_type279018186">value_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"container_base.html#const_iterator98626788"><span class="c2"><tt>container_base</tt></span>::const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator's value type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="reference54418471" id="reference54418471">reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"container_base.html#const_iterator98626788"><span class="c2"><tt>container_base</tt></span>::const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator's reference type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"container_base.html#const_iterator98626788"><span class="c2"><tt>container_base</tt></span>::const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator's const <a href=
+ "#reference54418471"><tt>reference</tt></a> type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">Metadata Definitions</a></h3>
+
+ <p>These are only defined if <a href=
+ "basic_tree.html#Node_Update841554648"><span class="c2">
+ <tt>basic_tree</tt></span>::Node_Update</a>
+ is not <a href="null_tree_node_update.html"><span class=
+ "c2"><tt>null_tree_node_update</tt></span></a></p>
+
+ <table class="c2" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<tt><b>typename</b></tt> <a href=
+"basic_tree.html#Node_Update841554648"><span class="c2"><tt>basic_tree</tt></span>::Node_Update</a><tt>::metadata_type</tt>
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_metadata_reference1108857465" id=
+"const_metadata_reference1108857465">const_metadata_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> Allocator::<b>template</b> rebind&lt;
+ <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::<a href="#const_reference495461441"><tt>const_reference</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const metadata <a href=
+ "#reference54418471"><tt>reference</tt></a> type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c2" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b>
+ const_node_iterator
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Access Methods</a></h3>
+
+ <table class="c2" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"#const_reference495461441"><tt>const_reference</tt></a>
+ <b>operator</b>*
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Access.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link8" id="link8">Metadata Access Methods</a></h3>
+
+ <p>These are only defined if <a href=
+ "basic_tree.html#Node_Update841554648"><span class="c2">
+ <tt>basic_tree</tt></span>::Node_Update</a>
+ is not <a href="null_tree_node_update.html"><span class=
+ "c2"><tt>null_tree_node_update</tt></span></a></p>
+
+ <table class="c2" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"#const_metadata_reference1108857465"><tt>const_metadata_reference</tt></a>
+ get_metadata
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata access.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link9" id="link9">Movement Methods</a></h3>
+
+ <table class="c2" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <span class="c2"><tt>const_node_iterator</tt></span>
+ get_l_child
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the const node iterator associated with the
+ left node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <span class="c2"><tt>const_node_iterator</tt></span>
+ get_r_child
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the const node iterator associated with the
+ right node.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link10" id="link10">Comparison Methods</a></h3>
+
+ <table class="c2" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ <b>operator</b>==
+ (<b>const</b> <span class=
+"c2"><tt>const_node_iterator</tt></span> &amp;other) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Compares to a different iterator object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ <b>operator</b>!=
+ (<b>const</b> <span class=
+"c2"><tt>const_node_iterator</tt></span> &amp;other) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Compares (negatively) to a different iterator
+ object.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_tag.html
new file mode 100644
index 0000000..c35ecad
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>basic_tree_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>basic_tree_tag</tt> Interface</h1>
+
+ <p>Basic tree-like data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="associative_container_tag.html"><span class=
+"c2"><tt>associative_container_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/binary_heap_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/binary_heap_tag.html
new file mode 100644
index 0000000..47f4247
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/binary_heap_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>binary_heap_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>binary_heap_tag</tt> Interface</h1>
+
+ <p>Binary-heap (array-based) data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="priority_queue_tag.html"><span class=
+"c2"><tt>priority_queue_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png
new file mode 100644
index 0000000..07f0953
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png
new file mode 100644
index 0000000..76e02f1
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.png
new file mode 100644
index 0000000..b8a3b23
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/binomial_heap_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/binomial_heap_tag.html
new file mode 100644
index 0000000..6b5e849
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/binomial_heap_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>binomial_heap_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>binomial_heap_tag</tt> Interface</h1>
+
+ <p>Binomial-heap data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="priority_queue_tag.html"><span class=
+"c2"><tt>priority_queue_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html
new file mode 100644
index 0000000..e07c51e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html
@@ -0,0 +1,532 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>cc_hash_max_collision_check_resize_trigger
+ Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>cc_hash_max_collision_check_resize_trigger</tt>
+ Interface</h1>
+
+ <p>A resize trigger policy based on collision checks. It keeps
+ the simulated load factor lower than some given load
+ factor.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="External_Load_Access1313998607" id=
+"External_Load_Access1313998607"><b>bool</b> External_Load_Access </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Specifies whether the load factor can be accessed
+ externally. The two options have different trade-offs in
+ terms of flexibility, genericity, and encapsulation.</p>
+ </td>
+
+ <td><tt><b>false</b></tt></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+
+ <td>size_t</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="external_load_access3976598639" id=
+"external_load_access3976598639">external_load_access</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Indicates whether loads can be accessed externally</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+ <h3><a name="link5" id="link5">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ cc_hash_max_collision_check_resize_trigger
+ (float load = 0.5)
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor, or constructor taking
+ <span class="c1"><tt>load</tt></span>, a load factor
+ which it will attempt to maintain.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class=
+"c2"><tt>cc_hash_max_collision_check_resize_trigger</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link6" id="link6">Load Access Methods</a></h3>
+
+ <p>These methods are only available if the external access
+ parameter is set.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> float
+ get_load
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the current load.</p>
+
+ <p>Calling this method will not compile when <a href=
+ "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+ == <tt><b>false</b></tt>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ set_load
+ (float load)
+</pre>
+ </td>
+
+ <td>
+ <p>Sets the <span class="c1"><tt>load</tt></span>; does
+ not resize the container.</p>
+
+ <p>It is the responsibility of the user to pass an
+ appropriate <span class="c1"><tt>load</tt></span> to this
+ function. Calling this method will not compile when
+ <a href=
+ "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+ == <tt><b>false</b></tt>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link7" id="link7">Protected Methods</a></h2>
+
+ <h3><a name="link8" id="link8">Insert Search
+ Notifications.</a></h3>
+
+ <p>Notifications called during an insert operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link9" id="link9">Find Search
+ Notifications.</a></h3>
+
+ <p>Notifications called during a find operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link10" id="link10">Erase Search
+ Notifications.</a></h3>
+
+ <p>Notifications called during an insert operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link11" id="link11">Content Change
+ Notifications</a></h3>
+
+ <p>Notifications called when the content of the table changes
+ in a way that can affect the resize policy.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_inserted
+ (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies an element was inserted.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erased
+ (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies an element was erased.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_cleared
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was cleared.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link12" id="link12">Size Change
+ Notifications</a></h3>
+
+ <p>Notifications called when the table changes size.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was resized as a result of this
+ object's signifying that a resize is needed.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_externally_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was resized externally.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link13" id="link13">Queries</a></h3>
+
+ <p>Called to query whether/how to resize.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ is_resize_needed
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Queries whether a resize is needed.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ is_grow_needed
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size, <a href=
+"#size_type55424436"><tt>size_type</tt></a> num_entries) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Queries whether a grow is needed.</p>
+
+ <p>This method is called only if this object indicated is
+ needed.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png
new file mode 100644
index 0000000..85b9eca
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png
new file mode 100644
index 0000000..4f578c6
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png
new file mode 100644
index 0000000..d1234aa
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.png
new file mode 100644
index 0000000..1db2cc0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png
new file mode 100644
index 0000000..ca4db96
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png
new file mode 100644
index 0000000..0b51d94
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png
new file mode 100644
index 0000000..6e494038
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png
new file mode 100644
index 0000000..48fcf76
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png
new file mode 100644
index 0000000..39c96ad
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_table.html b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_table.html
new file mode 100644
index 0000000..fec6bec
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_table.html
@@ -0,0 +1,724 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>cc_hash_table Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>cc_hash_table</tt> Interface</h1>
+
+ <p>A concrete collision-chaining hash-based associative
+ container.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Hash_Fn1515835" id=
+"Hash_Fn1515835"><b>class</b> Hash_Fn </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Hash functor.</p>
+ </td>
+
+ <td>
+ <pre>
+__gnu_cxx::hash&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>if using gcc;
+ <pre>
+stdext::hash_value&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>if using Visual C++ .net
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Eq_Fn60085" id="Eq_Fn60085"><b>class</b> Eq_Fn </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Equivalence functor.</p>
+ </td>
+
+ <td>
+ <pre>
+std::equal_to&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Comb_Hash_Fn320611039" id=
+"Comb_Hash_Fn320611039"><b>class</b> Comb_Hash_Fn </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Combining hash functor.</p>
+
+ <p>If <a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a> is
+ not <a href="null_hash_fn.html"><span class=
+ "c2"><tt>null_hash_fn</tt></span></a>, then this is the
+ ranged-hash functor; otherwise, this is the range-hashing
+ functor.</p>
+
+ <p>(See <a href=
+ "hash_based_containers.html#hash_policies">Design::Hash-Based
+ Containers::Hash Policies</a>.)</p>
+ </td>
+
+ <td>
+ <pre>
+<a href="direct_mask_range_hashing.html"><span class=
+"c2"><tt>direct_mask_range_hashing</tt></span></a>
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Resize_Policy566860465" id=
+"Resize_Policy566860465"><b>class</b> Resize_Policy </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Resize policy.</p>
+ </td>
+
+ <td>
+ If <tt><a href=
+ "#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a></tt>
+ is <tt><a href=
+ "direct_mask_range_hashing.html"><span class=
+ "c2"><tt>direct_mask_range_hashing</tt></span></a></tt>,
+ then
+ <pre>
+<a href="hash_standard_resize_policy.html"><span class=
+"c2"><tt>hash_standard_resize_policy</tt></span></a>&lt;
+ <a href="hash_exponential_size_policy.html"><span class=
+"c2"><tt>hash_exponential_size_policy</tt></span></a>&lt;
+ <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;,
+ <a href="hash_load_check_resize_trigger.html"><span class=
+"c2"><tt>hash_load_check_resize_trigger</tt></span></a>&lt;
+ <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;,
+ <b>false</b>,
+ <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;
+</pre>otherwise,
+ <pre>
+<a href="hash_standard_resize_policy.html"><span class=
+"c2"><tt>hash_standard_resize_policy</tt></span></a>&lt;
+ <a href="hash_exponential_size_policy.html"><span class=
+"c2"><tt>hash_exponential_size_policy</tt></span></a>&lt;
+ <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;,
+ <a href="hash_load_check_resize_trigger.html"><span class=
+"c2"><tt>hash_load_check_resize_trigger</tt></span></a>&lt;
+ <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;,
+ <b>false</b>,
+ <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Store_Hash218262104" id=
+"Store_Hash218262104"><b>bool</b> Store_Hash </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Indicates whether the hash value will be stored along
+ with each key.</p>
+
+ <p>If <tt><a href=
+ "#hash_fn2015995"><tt>hash_fn</tt></a></tt> is <a href=
+ "null_hash_fn.html"><span class=
+ "c2"><tt>null_hash_fn</tt></span></a>, then the container
+ will not compile if this value is
+ <tt><b>true</b></tt></p>
+ </td>
+
+ <td>
+ <pre>
+<tt><b>false</b></tt>
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>
+ <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="basic_hash_table.html"><span class=
+"c2"><tt>basic_hash_table</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link4" id="link4">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="hash_fn2015995" id="hash_fn2015995">hash_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Hash functor type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="eq_fn80245" id="eq_fn80245">eq_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Eq_Fn60085"><tt>Eq_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Equivalence functor type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="resize_policy4084493169" id=
+"resize_policy4084493169">resize_policy</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Resize policy type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="comb_hash_fn1883611199" id=
+"comb_hash_fn1883611199">comb_hash_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Combining hash functor type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ cc_hash_table
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ cc_hash_table
+ (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a> object of
+ the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ cc_hash_table
+ (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, and <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ cc_hash_table
+ (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn,
+ <b>const</b> <a href=
+"#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;r_comb_hash_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object, and <span class=
+ "c1"><tt>r_comb_hash_fn</tt></span> will be copied by the
+ <a href=
+ "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+ object of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ cc_hash_table
+ (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn,
+ <b>const</b> <a href=
+"#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;r_comb_hash_fn,
+ <b>const</b> <a href=
+"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;r_resize_policy)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object, <span class=
+ "c1"><tt>r_comb_hash_fn</tt></span> will be copied by the
+ <a href=
+ "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+ object of the container object, and <span class=
+ "c1"><tt>r_resize_policy</tt></span> will be copied by
+ the <a href=
+ "#resize_policy4084493169"><tt>resize_policy</tt></a>
+ object of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ cc_hash_table
+ (It first_it,
+ It last_it)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of
+ value_types. The value_types between <span class=
+ "c1"><tt>first_it</tt></span> and <span class=
+ "c1"><tt>last_it</tt></span> will be inserted into the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ cc_hash_table
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects. The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ cc_hash_table
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, and <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ cc_hash_table
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn,
+ <b>const</b> <a href=
+"#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;r_comb_hash_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object, and <span class=
+ "c1"><tt>r_comb_hash_fn</tt></span> will be copied by the
+ <a href=
+ "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+ object of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ cc_hash_table
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn,
+ <b>const</b> <a href=
+"#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;r_comb_hash_fn,
+ <b>const</b> <a href=
+"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;r_resize_policy)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object, <span class=
+ "c1"><tt>r_comb_hash_fn</tt></span> will be copied by the
+ <a href=
+ "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+ object of the container object, and <span class=
+ "c1"><tt>r_resize_policy</tt></span> will be copied by
+ the <a href=
+ "#resize_policy4084493169"><tt>resize_policy</tt></a>
+ object of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ cc_hash_table
+ (<b>const</b> <span class=
+"c2"><tt>cc_hash_table</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~cc_hash_table
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<span class="c2"><tt>cc_hash_table</tt></span> &amp;
+ <b>operator</b>=
+ (<b>const</b> <span class=
+"c2"><tt>cc_hash_table</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Assignment operator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class=
+"c2"><tt>cc_hash_table</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Policy Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;
+ get_comb_hash_fn
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+ object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>const</b> <a href=
+"#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;
+ get_comb_hash_fn
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access to the <a href=
+ "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+ object.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_tag.html
new file mode 100644
index 0000000..fb6f593
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>cc_hash_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>cc_hash_tag</tt> Interface</h1>
+
+ <p>Collision-chaining hash data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="basic_hash_tag.html"><span class=
+"c2"><tt>basic_hash_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png
new file mode 100644
index 0000000..fde6b41
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png b/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png
new file mode 100644
index 0000000..2449e1d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png
new file mode 100644
index 0000000..11dca77
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/checked_by_tidy.gif b/libstdc++-v3/docs/html/ext/pb_ds/checked_by_tidy.gif
new file mode 100644
index 0000000..47c2c48
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/checked_by_tidy.gif
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/concepts.html b/libstdc++-v3/docs/html/ext/pb_ds/concepts.html
new file mode 100644
index 0000000..9f6c224
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/concepts.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Concepts</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Concepts</h1>
+
+ <h2><a name="concepts_find_and_range_iterators" id=
+ "concepts_find_and_range_iterators">Point and Range Methods and
+ Iterators</a></h2>
+
+ <p>A point-type iterator is an iterator that refers to a
+ specific element, <i>e.g.</i> as returned through an
+ associative-container's <tt>find</tt> method; a range-type
+ iterator is an iterator that is used to go over a sequence of
+ elements, <i>e.g.</i>, as returned by a container's
+ <tt>find</tt> method. A point-type method is a method that
+ returns a point-type iterator; a range-type method is a method
+ that returns a range-type iterator.</p>
+
+ <p>For most containers, these types are synonymous; for
+ self-organizing containers, such as hash-based containers or
+ priority queues, these are inherently different (in any
+ implementation, including that of the STL), but in
+ <tt>pb_ds</tt> this is made explicit - they are distinct
+ types.</p>
+
+
+ <h2><a name="invalidation_guarantees" id=
+ "invalidation_guarantees">Invalidation Guarantees</a></h2>
+
+ <p>If one manipulates a container object, then iterators
+ previously obtained from it can be invalidated. In some cases a
+ previously-obtained iterator cannot be de-referenced; in other
+ cases, the iterator's next or previous element might have
+ changed unpredictably. This corresponds exactly to the question
+ whether a point-type or range-type iterator (see previous
+ concept) is valid or not. In <tt>pb_ds</tt> one can query a
+ container (in compile time) what are its invalidation
+ guarantees.</p>
+
+ <h2><a name="prm_sec" id="prm_sec">Primary and Secondary Keys
+ and Associative Containers</a></h2>
+
+ <p>In <tt>pb_ds</tt> there are no associative containers which
+ allow multiple values with equivalent keys (such as the STL's
+ <tt>std::multimap</tt>, for example). Instead, one maps the
+ unique part of a key - the primary key, into an
+ associative-container of the (originally) non-unique parts of
+ the key - the secondary key. A primary associative-container is
+ an associative container of primary keys; a secondary
+ associative-container is an associative container of secondary
+ keys.</p>
+
+
+ <h2><a name="concepts_null_policies" id=
+ "concepts_null_policies">Null Policy Classes</a></h2>
+
+ <p>Associative containers are typically parametrized by
+ various policies. For example, a hash-based associative
+ container is parametrized by a hash-functor, transforming each
+ key into an non-negative numerical type. Each such value is
+ then further mapped into a position within the table. The
+ mapping of a key into a position within the table is therefore
+ a two-step process.</p>
+
+ <p>In some cases, instantiations are <i>redundant</i>. For
+ example, when the keys are integers, it is possible to use a
+ <i>redundant</i> hash policy, which transforms each key into
+ its value.</p>
+
+ <p>In some other cases, these policies are <i>irrelevant</i>.
+ For example, a hash-based associative container might transform
+ keys into positions within a table by a different method than
+ the two-step method described above. In such a case, the hash
+ functor is simply irrelevant.</p>
+
+ <p><tt>pb_ds</tt> uses special pre-defined "null policies"
+ classes for these cases. Some null policies in <tt>pb_ds</tt>
+ are:</p>
+
+ <ol>
+ <li><a href=
+ "null_mapped_type.html"><tt>null_mapped_type</tt></a></li>
+
+ <li><a href=
+ "null_tree_node_update.html"><tt>null_tree_node_update</tt></a></li>
+
+ <li><a href=
+ "null_trie_node_update.html"><tt>null_trie_node_update</tt></a></li>
+
+ <li><a href=
+ "null_hash_fn.html"><tt>null_hash_fn</tt></a></li>
+
+ <li><a href=
+ "null_probe_fn.html"><tt>null_probe_fn</tt></a></li>
+ </ol>
+
+ <p>A "set" in <tt>pb_ds</tt>, for example, is an associative
+ container with its <tt>Data_Parameter</tt> instantiated by
+ <a href="null_mapped_type.html"><tt>null_mapped_type</tt></a>.
+ <a href=
+ "tree_based_containers.html#invariants">Design::Tree-Based
+ Containers::Node Invariants</a> explains another case where a
+ null policy is needed.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/contact.html b/libstdc++-v3/docs/html/ext/pb_ds/contact.html
new file mode 100644
index 0000000..3d506c9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/contact.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Contact</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Contact</h1>
+
+ <p>For anything relevant, please write to <a href=
+ "mailto:pbassoc@gmail.com">pbassoc@gmail.com</a></p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/container_base.html b/libstdc++-v3/docs/html/ext/pb_ds/container_base.html
new file mode 100644
index 0000000..a074130
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/container_base.html
@@ -0,0 +1,1063 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>container_base Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>container_base</tt> Interface</h1>
+
+ <p>An abstract basic associative container.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Data structure tag.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Policy_Tl42017403" id=
+"Policy_Tl42017403"><b>class</b> Policy_Tl</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Policy typelist.</p>
+
+ <p>Contains subclasses' policies.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Container
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::size_type
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="difference_type868028452" id=
+"difference_type868028452">difference_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::difference_type
+</pre>
+ </td>
+
+ <td>
+ <p>Difference type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">Categories</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="container_category1247973216" id=
+"container_category1247973216">container_category</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Tag278938"><tt>Tag</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>The underlying mapped-structure tag of the
+ container.</p>
+
+ <p>This is one of:</p>
+
+ <ol>
+ <li><a href="cc_hash_tag.html"><span class=
+ "c2"><tt>cc_hash_tag</tt></span></a></li>
+
+ <li><a href="gp_hash_tag.html"><span class=
+ "c2"><tt>gp_hash_tag</tt></span></a></li>
+
+ <li><a href="rb_tree_tag.html"><span class=
+ "c2"><tt>rb_tree_tag</tt></span></a></li>
+
+ <li><a href="ov_tree_tag.html"><span class=
+ "c2"><tt>ov_tree_tag</tt></span></a></li>
+
+ <li><a href="splay_tree_tag.html"><span class=
+ "c2"><tt>splay_tree_tag</tt></span></a></li>
+
+ <li><a href="pat_trie_tag.html"><span class=
+ "c2"><tt>pat_trie_tag</tt></span></a></li>
+
+ <li><a href="list_update_tag.html"><span class=
+ "c2"><tt>list_update_tag</tt></span></a></li>
+ </ol>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+ type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link6" id="link6">Key-Type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href="#Key2501"><tt>Key</tt></a>&gt;::other::value_type
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Key2501"><tt>Key</tt></a> type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="key_reference2411522399" id=
+"key_reference2411522399">key_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#key_type10393186"><tt>key_type</tt></a>&gt;::other::reference
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Key2501"><tt>Key</tt></a> reference
+ type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#key_type10393186"><tt>key_type</tt></a>&gt;::other::const_reference
+</pre>
+ </td>
+
+ <td>
+ <p>Const key reference type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="key_pointer1299054769" id=
+"key_pointer1299054769">key_pointer</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#key_type10393186"><tt>key_type</tt></a>&gt;::other::pointer
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Key2501"><tt>Key</tt></a> pointer type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_key_pointer3735194427" id=
+"const_key_pointer3735194427">const_key_pointer</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#key_type10393186"><tt>key_type</tt></a>&gt;::other::const_pointer
+</pre>
+ </td>
+
+ <td>
+ <p>Const key pointer type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Mapped-Type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="mapped_type1308374436" id=
+"mapped_type1308374436">mapped_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Mapped318655"><tt>Mapped</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Mapped318655"><tt>Mapped</tt></a> type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="mapped_reference4153801225" id=
+"mapped_reference4153801225">mapped_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#mapped_type1308374436"><tt>mapped_type</tt></a>&gt;::other::reference
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Mapped318655"><tt>Mapped</tt></a> reference
+ type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_mapped_reference2113216667" id=
+"const_mapped_reference2113216667">const_mapped_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#mapped_type1308374436"><tt>mapped_type</tt></a>&gt;::other::const_reference
+</pre>
+ </td>
+
+ <td>
+ <p>Const mapped reference type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="mapped_pointer337953771" id=
+"mapped_pointer337953771">mapped_pointer</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#mapped_type1308374436"><tt>mapped_type</tt></a>&gt;::other::pointer
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Mapped318655"><tt>Mapped</tt></a> pointer
+ type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_mapped_pointer4207700301" id=
+"const_mapped_pointer4207700301">const_mapped_pointer</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#mapped_type1308374436"><tt>mapped_type</tt></a>&gt;::other::const_pointer
+</pre>
+ </td>
+
+ <td>
+ <p>Const mapped pointer type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link8" id="link8">Value-Type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="value_type279018186" id=
+"value_type279018186">value_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<br />
+If <a href="#Mapped318655"><tt>Mapped</tt></a> is <a href=
+"null_mapped_type.html"><span class=
+"c2"><tt>null_mapped_type</tt></span></a>, then <a href=
+"#Key2501"><tt>Key</tt></a><br />
+Otherwise, <a href="#Mapped318655"><tt>Mapped</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Value type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="reference54418471" id="reference54418471">reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::reference
+</pre>
+ </td>
+
+ <td>
+ <p>Value reference type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::const_reference
+</pre>
+ </td>
+
+ <td>
+ <p>Const value <a href=
+ "#reference54418471"><tt>reference</tt></a> type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="pointer2179769" id="pointer2179769">pointer</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::pointer
+</pre>
+ </td>
+
+ <td>
+ <p>Value pointer type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_pointer878814947" id=
+"const_pointer878814947">const_pointer</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::const_pointer
+</pre>
+ </td>
+
+ <td>
+ <p>Const Value <a href=
+ "#pointer2179769"><tt>pointer</tt></a> type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link9" id="link9">Iterator Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_point_iterator2364676009" id=
+"const_point_iterator2364676009">const_point_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Const point-type iterator.
+</pre>
+ </td>
+
+ <td>
+ <p>Const point-type iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="point_iterator2789896775" id=
+"point_iterator2789896775">point_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<br />
+Point-type iterator.<br />
+If <a href="#Mapped318655"><tt>Mapped</tt></a> is <a href=
+"null_mapped_type.html"><span class=
+"c2"><tt>null_mapped_type</tt></span></a>, then this is synonymous to <a href="#const_point_iterator2364676009"><tt>const_point_iterator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Point-type iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Const range-type iterator.
+</pre>
+ </td>
+
+ <td>
+ <p>Const range-type iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<br />
+Range-type iterator.<br />
+If <a href="#Mapped318655"><tt>Mapped</tt></a> is <a href=
+"null_mapped_type.html"><span class=
+"c2"><tt>null_mapped_type</tt></span></a>, then this is synonymous to <a href="#const_iterator98626788"><tt>const_iterator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Range-type iterator.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link10" id="link10">Public Methods</a></h2>
+
+ <h3><a name="link11" id="link11">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~container_base
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link12" id="link12">Information Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ size
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the number of distinct <a href=
+ "#value_type279018186"><tt>value_type</tt></a> objects
+ the container object is storing.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ max_size
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns an upper bound on the number of distinct
+ <a href="#value_type279018186"><tt>value_type</tt></a>
+ objects this container can store.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ empty
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns whether the container object is not storing
+ any <a href=
+ "#value_type279018186"><tt>value_type</tt></a>
+ objects.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link13" id="link13">Insert Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+std::pair&lt;<a href=
+"#point_iterator2789896775"><tt>point_iterator</tt></a>, <b>bool</b>&gt;
+ insert
+ (<a href=
+"#const_reference495461441"><tt>const_reference</tt></a> r_val)
+</pre>
+ </td>
+
+ <td>
+ <p>Inserts a <a href=
+ "#value_type279018186"><tt>value_type</tt></a> object. If
+ no <a href="#value_type279018186"><tt>value_type</tt></a>
+ with <span class="c1"><tt>r_val</tt></span>'s key was in
+ the container object, inserts and returns (<a href=
+ "#point_iterator2789896775"><tt>point_iterator</tt></a>
+ object associated with <span class=
+ "c1"><tt>r_val</tt></span>, <tt><b>true</b></tt>);
+ otherwise just returns (<a href=
+ "#point_iterator2789896775"><tt>point_iterator</tt></a>
+ object associated with <span class=
+ "c1"><tt>r_val</tt></span>'s key,
+ <tt><b>false</b></tt>).</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#mapped_reference4153801225"><tt>mapped_reference</tt></a>
+ <b>operator</b>[]
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+ </td>
+
+ <td>
+ <p>Subscript operator.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link14" id="link14">Find Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#point_iterator2789896775"><tt>point_iterator</tt></a>
+ find
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#point_iterator2789896775"><tt>point_iterator</tt></a>
+ corresponding to the <a href=
+ "#value_type279018186"><tt>value_type</tt></a> with
+ <span class="c1"><tt>r_key</tt></span> as its key, or the
+ <a href=
+ "#point_iterator2789896775"><tt>point_iterator</tt></a>
+ corresponding to the just-after-last entry if no such
+ <a href=
+ "#value_type279018186"><tt>value_type</tt></a>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"#const_point_iterator2364676009"><tt>const_point_iterator</tt></a>
+ find
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#const_point_iterator2364676009"><tt>const_point_iterator</tt></a>
+ corresponding to the <a href=
+ "#value_type279018186"><tt>value_type</tt></a> with
+ <span class="c1"><tt>r_key</tt></span> as its key, or the
+ <a href=
+ "#const_point_iterator2364676009"><tt>const_point_iterator</tt></a>
+ corresponding to the just-after-last entry if no such
+ <a href=
+ "#value_type279018186"><tt>value_type</tt></a>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link15" id="link15">Erase Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>bool</b>
+ erase
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+ </td>
+
+ <td>
+ <p>Erases the <a href=
+ "#value_type279018186"><tt>value_type</tt></a> associated
+ with <span class="c1"><tt>r_key</tt></span>. returns
+ <tt><b>false</b></tt> iff <span class=
+ "c1"><tt>r_key</tt></span> was not contained.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> Pred&gt;
+<a href="#size_type55424436"><tt>size_type</tt></a>
+ erase_if
+ (Pred prd)
+</pre>
+ </td>
+
+ <td>
+ <p>Erases any <a href=
+ "#value_type279018186"><tt>value_type</tt></a> satisfying
+ the predicate <span class="c1"><tt>prd</tt></span> (this
+ is transactional, either all matching <a href=
+ "#value_type279018186"><tt>value_type</tt></a>s are
+ erased, or, if an exception is thrown (for types whose
+ erase can throw an exception) none); returns the number
+ of <a href=
+ "#value_type279018186"><tt>value_type</tt></a>s
+ erased.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ clear
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Clears the container object.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link16" id="link16">Iteration Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#iterator10418194"><tt>iterator</tt></a>
+ begin
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Returns an <a href=
+ "#iterator10418194"><tt>iterator</tt></a> corresponding
+ to the first <a href=
+ "#value_type279018186"><tt>value_type</tt></a> in the
+ container.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#const_iterator98626788"><tt>const_iterator</tt></a>
+ begin
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a>
+ corresponding to the first <a href=
+ "#value_type279018186"><tt>value_type</tt></a> in the
+ container.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#iterator10418194"><tt>iterator</tt></a>
+ end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Returns an <a href=
+ "#iterator10418194"><tt>iterator</tt></a> corresponding
+ to the just-after-last <a href=
+ "#value_type279018186"><tt>value_type</tt></a> in the
+ container.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#const_iterator98626788"><tt>const_iterator</tt></a>
+ end
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a>
+ corresponding to the just-after-last <a href=
+ "#value_type279018186"><tt>value_type</tt></a> in the
+ container.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/container_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/container_cd.png
new file mode 100644
index 0000000..5255327
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/container_cd.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/container_cd.svg b/libstdc++-v3/docs/html/ext/pb_ds/container_cd.svg
new file mode 100644
index 0000000..3b5a981
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/container_cd.svg
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="11in"
+ height="8.5in"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.43"
+ version="1.0"
+ sodipodi:docbase="/mnt/share/src/policy_based_data_structures/current/pb_ds/doc"
+ sodipodi:docname="container_cd.svg"
+ inkscape:export-filename="/mnt/share/src/policy_based_data_structures/current/pb_ds/doc/container_cd.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mstart"
+ style="overflow:visible">
+ <path
+ id="path3311"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Sstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Sstart"
+ style="overflow:visible">
+ <path
+ id="path3319"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(0.3,0,0,0.3,-1.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Sstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Sstart"
+ style="overflow:visible">
+ <path
+ id="path3337"
+ d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(0.2,0.2)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Send"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Send"
+ style="overflow:visible">
+ <path
+ id="path3316"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(-0.3,0,0,-0.3,1.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend"
+ style="overflow:visible">
+ <path
+ id="path3322"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(-0.6,0,0,-0.6,3,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path3346"
+ d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(-0.8,-0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lstart"
+ style="overflow:visible">
+ <path
+ id="path3331"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(1.1,0,0,1.1,-5.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lend"
+ style="overflow:visible">
+ <path
+ id="path3328"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(-1.1,0,0,-1.1,5.5,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2"
+ inkscape:cx="396.81316"
+ inkscape:cy="280"
+ inkscape:document-units="in"
+ inkscape:current-layer="layer1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1278"
+ inkscape:window-height="973"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ gridtolerance="0.125in"
+ guidetolerance="0.125in">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="629"
+ id="guide1307" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="449"
+ id="guide1309" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="269"
+ id="guide1311" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="496"
+ id="guide1313" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="361"
+ id="guide1315" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="226"
+ id="guide1317" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="631"
+ id="guide1319" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="766"
+ id="guide1321" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="91"
+ id="guide1345" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="901"
+ id="guide1347" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="539"
+ id="guide3390" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="359"
+ id="guide3392" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="280.5"
+ id="guide3324" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="172"
+ id="guide3326" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="388"
+ id="guide3328" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="711.5"
+ id="guide3340" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Benjamin Kosnik</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1425"
+ width="141.64481"
+ height="23.200001"
+ x="209.57762"
+ y="382.56177" />
+ <rect
+ y="382.56177"
+ x="425.57761"
+ height="23.200001"
+ width="141.64481"
+ id="rect3376"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3378"
+ width="141.64481"
+ height="23.200001"
+ x="640.77765"
+ y="382.56177" />
+ <text
+ sodipodi:linespacing="100%"
+ id="use1329"
+ y="397.09772"
+ x="497.20001"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1703"
+ x="497.20001"
+ y="397.09772">list_update</tspan><tspan
+ sodipodi:role="line"
+ id="tspan1705"
+ x="497.20001"
+ y="406.69772" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="712.40002"
+ y="397.09772"
+ id="use1337"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1707"
+ x="712.40002"
+ y="397.09772">basic_hash_table</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="282"
+ y="397.09772"
+ id="text1339"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1701"
+ x="282"
+ y="397.09772">basic_tree</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3418"
+ width="141.64481"
+ height="23.200001"
+ x="101.57762"
+ y="472.5618" />
+ <rect
+ y="472.5618"
+ x="317.57761"
+ height="23.200001"
+ width="141.64481"
+ id="rect3420"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3422"
+ width="141.64481"
+ height="23.200001"
+ x="533.57764"
+ y="472.5618" />
+ <rect
+ y="472.5618"
+ x="748.77765"
+ height="23.200001"
+ width="141.64481"
+ id="rect3424"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="171.20001"
+ y="486.29773"
+ id="text3394"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1715"
+ x="171.20001"
+ y="486.29773">tree</tspan><tspan
+ sodipodi:role="line"
+ id="tspan1717"
+ x="171.20001"
+ y="495.89773" /></text>
+ <text
+ sodipodi:linespacing="100%"
+ id="text3400"
+ y="486.29773"
+ x="386.39999"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1709"
+ x="386.39999"
+ y="486.29773">trie</tspan><tspan
+ sodipodi:role="line"
+ id="tspan1711"
+ x="386.39999"
+ y="495.89773" /></text>
+ <text
+ sodipodi:linespacing="100%"
+ id="text3406"
+ y="486.29773"
+ x="601.20001"
+ style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1713"
+ x="601.20001"
+ y="486.29773">cc_hash_table</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="818"
+ y="486.29773"
+ id="text3412"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1719"
+ x="818"
+ y="486.29773">gp_hash_table</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3380"
+ width="141.64481"
+ height="23.200001"
+ x="425.57764"
+ y="292.56177" />
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="497.20001"
+ y="307.09772"
+ id="text1323"
+ sodipodi:linespacing="100%"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ inkscape:export-filename="/mnt/share/src/policy_based_data_structures/pb_ds_images/container_diagram.png"><tspan
+ sodipodi:role="line"
+ id="tspan1369"
+ x="497.20001"
+ y="307.09772">container_base</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.97031623px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 170.97058,472.5 L 170.97058,451 L 387.51871,450 L 387.51871,472.5"
+ id="path2244" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 280.5,450.53297 L 280.5,410.62445"
+ id="path3332" />
+ <path
+ id="path3353"
+ d="M 601.47058,472.5 L 601.47058,451 L 818.01871,450 L 818.01871,472.5"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.97031623px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path3355"
+ d="M 711,450.53297 L 711,410.62445"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path3344"
+ d="M 281.18218,383.28102 L 281.18218,361.78102 L 711.79281,360.78102 L 711.79281,383.28102"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.3682909px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path3347"
+ d="M 497.75146,383.49616 L 497.75146,322.77107"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/container_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/container_tag.html
new file mode 100644
index 0000000..b9f0531
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/container_tag.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>container _tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>container _tag</tt> Interface</h1>
+
+ <p>Basic data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/counter_lu_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/counter_lu_policy.html
new file mode 100644
index 0000000..142cca1
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/counter_lu_policy.html
@@ -0,0 +1,259 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>counter_lu_policy Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>counter_lu_policy</tt> Interface</h1>
+
+ <p>A list-update policy that moves elements to the front of the
+ list based on the counter algorithm.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/list_update_policy.hpp"><tt>list_update_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Max_Count39887466" id=
+"Max_Count39887466">size_t Max_Count </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Maximum count.</p>
+
+ <p>When some element is accessed this number of times, it
+ will be moved to the front of the list.</p>
+ </td>
+
+ <td>5</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+
+ <p>This is used only for definitions, e.g., the size
+ type.</p>
+ </td>
+
+ <td>
+ <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+ type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="max_count52407466" id="max_count52407466">max_count</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Max_Count39887466"><tt>Max_Count</tt></a>
+}
+</pre>
+ </td>
+
+ <td>
+ <p>Maximum count.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::size_type
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Metadata-Type
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Some class containing a counter.
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata on which this functor operates.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_reference583863863" id=
+"metadata_reference583863863">metadata_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::reference
+</pre>
+ </td>
+
+ <td>
+ <p>Reference to metadata on which this functor
+ operates.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link6" id="link6">Public Methods</a></h2>
+
+ <h3><a name="link7" id="link7">Metadata Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#metadata_type2849297114"><tt>metadata_type</tt></a>
+ <b>operator</b>()
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Creates a metadata object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>bool</b>
+ <b>operator</b>()
+ (<a href=
+"#metadata_reference583863863"><tt>metadata_reference</tt></a> r_metadata) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Decides whether a metadata object should be moved to
+ the front of the list.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/design.html b/libstdc++-v3/docs/html/ext/pb_ds/design.html
new file mode 100644
index 0000000..e83bd4d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/design.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Design</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Design</h1>
+
+ <p>The <tt>pb_ds</tt> namespace contains:</p>
+
+ <ol>
+ <li>Exception classes (see <a href=
+ "interface.html#exceptions_common">Interface::Exceptions::Common</a>)</li>
+
+ <li>Invalidation-guarantee tags (see <a href=
+ "ds_gen.html#inv_guar">Design::Invalidation Guarantees</a>
+ and <a href=
+ "interface.html#ds_inv_tag">Interface::Data-Structure Tags
+ and Traits::Invalidation-Guarantee Tags</a>).</li>
+
+ <li>Associative Containers (see <a href=
+ "tree_based_containers.html">Design::Associative
+ Containers::Tree-Based Containers</a>, <a href=
+ "trie_based_containers.html">Design::Associative
+ Containers::Trie-Based Containers</a>, <a href=
+ "hash_based_containers.html">Design::Associative
+ Containers::Hash-Based Containers</a>, and <a href=
+ "lu_based_containers.html">Design::Associative
+ Containers::List-Based Containers</a>, and <a href=
+ "interface.html#containers_assoc">Interface::Containers::Associative
+ Containers</a>).</li>
+
+ <li>Associative Container tags and traits
+ (see <a href="ds_gen.html">Design::Associative
+ Containers::Data-Structure Genericity</a>, <a href=
+ "interface.html#ds_ts_assoc">Interface::Data-Structure Tags
+ and Traits::Data-Structure Tags::Associative-Containers</a>,
+ and <a href=
+ "interface.html#container_traits">Interface::Data-Structure Tags and
+ Traits::Data-Structure
+ Traits::Associative-Containers</a>).</li>
+
+ <li>Associative Container policies (see
+ <a href="tree_based_containers.html">Design::Associative
+ Containers::Tree-Based Containers</a>, <a href=
+ "trie_based_containers.html">Design::Associative
+ Containers::Trie-Based Containers</a>, <a href=
+ "hash_based_containers.html">Design::Associative
+ Containers::Hash-Based Containers</a>, and <a href=
+ "lu_based_containers.html">Design::Associative
+ Containers::List-Based Containers</a>, and <a href=
+ "interface.html#ds_policy_classes">Interface::Container
+ Policy Classes</a>).</li>
+
+
+ <li>Mapped types for setting the mapping semantics of
+ associative containers (see <a href=
+ "tutorial.html#assoc_ms">Tutorial::Associative
+ Containers::Associative Containers Others than Maps</a> and
+ <a href="interface.html#ds_pol">Interface::Mapped-Type
+ Policies</a>).</li>
+
+
+ <li>Priority Queues (see <a href="pq_design.html">Design::Priority
+ Queues</a> and <a href=
+ "interface.html#containers_pq">Interface::Containers::Priority
+ Queues</a>).</li>
+
+ <li>Priority Queue tags and traits
+ (see <a href="pq_design.html#pq_traits">Design::Priority
+ Queues::Traits</a>, <a href=
+ "interface.html#ds_ts_pq">Interface::Data-Structure Tags and
+ Traits::Data-Structure Tags::Priority Queues</a>, and
+ <a href="interface.html#container_traits">Interface::Data-Structure
+ Tags and Traits::Data-Structure Traits::Priority
+ Queues</a>).</li>
+ </ol>
+
+
+ <p><a href="assoc_design.html">Associative-Container Design</a>
+ describes associative-container design.</p>
+
+ <p><a href="pq_design.html">Priority-Queue Design</a> describes
+ priority-queue design.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/different_underlying_dss.png b/libstdc++-v3/docs/html/ext/pb_ds/different_underlying_dss.png
new file mode 100644
index 0000000..adee126
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/different_underlying_dss.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/direct_mask_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_ds/direct_mask_range_hashing.html
new file mode 100644
index 0000000..1a7d39b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/direct_mask_range_hashing.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>direct_mask_range_hashing Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>direct_mask_range_hashing</tt> Interface</h1>
+
+ <p>A mask range-hashing class (uses a bit-mask).</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+
+ <td>size_t</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+ <h3><a name="link5" id="link5">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class=
+"c2"><tt>direct_mask_range_hashing</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link6" id="link6">Protected Methods</a></h2>
+
+ <h3><a name="link7" id="link7">Notification Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the policy object that the container's size
+ has changed to <span class="c1"><tt>size</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link8" id="link8">Operators.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ <b>operator</b>()
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> hash) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Transforms the hash value <span class=
+ "c1"><tt>hash</tt></span> into a ranged-hash value (using
+ a bit-mask).</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/direct_mod_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_ds/direct_mod_range_hashing.html
new file mode 100644
index 0000000..33c9933
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/direct_mod_range_hashing.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>direct_mod_range_hashing Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>direct_mod_range_hashing</tt> Interface</h1>
+
+ <p>A mod range-hashing class (uses the modulo function).</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+
+ <td>size_t</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+ <h3><a name="link5" id="link5">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class=
+"c2"><tt>direct_mod_range_hashing</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link6" id="link6">Protected Methods</a></h2>
+
+ <h3><a name="link7" id="link7">Notification Methods</a></h3>
+
+ <h3><a name="link8" id="link8">Operators.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ <b>operator</b>()
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> hash) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Transforms the hash value <span class=
+ "c1"><tt>hash</tt></span> into a ranged-hash value (using
+ a modulo operation).</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/disclaimer.html b/libstdc++-v3/docs/html/ext/pb_ds/disclaimer.html
new file mode 100644
index 0000000..681af4e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/disclaimer.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>What, me worry?</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h2>Disclaimer and Copyright</h2>
+
+ <p>Revised 16 February, 2004</p>&copy; Copyright Ami Tavory and
+ Vladimir Dreizin, IBM-HRL, 2004, and Benjamin Kosnik, Red Hat,
+ 2004.
+
+ <p>Permission to use, copy, modify, sell, and distribute this
+ software is hereby granted without fee, provided that the above
+ copyright notice appears in all copies, and that both that
+ copyright notice and this permission notice appear in
+ supporting documentation.</p>
+
+ <p>None of the above authors, nor IBM Haifa Research
+ Laboratories, Red Hat, or both, make any representation about
+ the suitability of this software for any purpose. It is
+ provided "as is" without express or implied warranty.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/ds_gen.html b/libstdc++-v3/docs/html/ext/pb_ds/ds_gen.html
new file mode 100644
index 0000000..5c3eea6
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/ds_gen.html
@@ -0,0 +1,344 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Data-Structure Genericity</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Data-Structure Genericity</h1>
+
+ <h2><a name="problem" id="problem">The Basic Problem</a></h2>
+
+ <p>The design attempts to address the following problem. When
+ writing a function manipulating a generic container object,
+ what is the behavior of the object? <i>E.g.</i>, suppose one
+ writes</p>
+ <pre>
+<b>template</b>&lt;<b>typename</b> Cntnr&gt;
+<b>void</b>
+some_op_sequence(Cntnr &amp;r_container)
+{
+ ...
+}
+</pre>then one needs to address the following questions in the body
+of <tt>some_op_sequence</tt>:
+
+ <ol>
+ <li>Which types and methods does <tt>Cntnr</tt> support?
+ Containers based on hash tables can be queries for the
+ hash-functor type and object; this is meaningless for
+ tree-based containers. Containers based on trees can be
+ split, joined, or can erase iterators and return the
+ following iterator; this cannot be done by hash-based
+ containers.</li>
+
+ <li>What are the guarantees of <tt>Cntnr</tt>? A container
+ based on a probing hash-table invalidates all iterators when
+ it is modified; this is not the case for containers based on
+ node-based trees. Containers based on a node-based tree can
+ be split or joined without exceptions; this is not the case
+ for containers based on vector-based trees.</li>
+
+ <li>How does the container maintain its elements? Tree-based
+ and Trie-based containers store elements by key order;
+ others, typically, do not. A container based on a splay trees
+ or lists with update policies "cache" "frequently accessed"
+ elements; containers based on most other underlying
+ data structures do not.</li>
+ </ol>
+
+ <p>The remainder of this section deals with these issues.</p>
+
+ <h2><a name="ds_hierarchy" id="ds_hierarchy">Container
+ Hierarchy</a></h2>
+
+ <p>Figure <a href="#cd">Container class hierarchy</a> shows the
+ container hierarchy.</p>
+
+ <h6 class="c1"><a name="cd" id="cd"><img src="container_cd.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Container class hierarchy.</h6>
+
+ <ol>
+ <li><a href=
+ "container_base.html"><tt>container_base</tt></a> is an
+ abstract base class for associative containers.</li>
+
+ <li>Tree-Like-Based Associative-Containers:
+
+ <ol>
+ <li><a href=
+ "basic_tree.html"><tt>basic_tree</tt></a>
+ is an abstract base class for tree-like-based
+ associative-containers</li>
+
+ <li><a href=
+ "tree.html"><tt>tree</tt></a>
+ is a concrete base class for tree-based
+ associative-containers</li>
+
+ <li><a href=
+ "trie.html"><tt>trie</tt></a>
+ is a concrete base class trie-based
+ associative-containers</li>
+ </ol>
+ </li>
+
+ <li>Hash-Based Associative-Containers:
+
+ <ol>
+ <li><a href=
+ "basic_hash_table.html"><tt>basic_hash_table</tt></a>
+ is an abstract base class for hash-based
+ associative-containers</li>
+
+ <li><a href=
+ "cc_hash_table.html"><tt>cc_hash_table</tt></a>
+ is a concrete collision-chaining hash-based
+ associative-containers</li>
+
+ <li><a href=
+ "gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ is a concrete (general) probing hash-based
+ associative-containers</li>
+ </ol>
+ </li>
+
+ <li>List-Based Associative-Containers:
+
+ <ol>
+ <li><a href=
+ "list_update.html"><tt>list_update</tt></a> -
+ list-based update-policy associative container</li>
+ </ol>
+ </li>
+ </ol>
+
+ <p>The hierarchy is composed naturally so that commonality is
+ captured by base classes. Thus <tt><b>operator[]</b></tt> is
+ defined <a href=
+ "container_base.html"><tt>container_base</tt></a>, since
+ all containers support it. Conversely <tt>split</tt> is defined
+ in <a href=
+ "basic_tree.html"><tt>basic_tree</tt></a>,
+ since only tree-like containers support it. <a href=
+ "#container_traits">Data-Structure Tags and Traits</a> discusses how
+ to query which types and methods each container supports.</p>
+
+ <h2><a name="container_traits" id="container_traits">Data-Structure Tags and
+ Traits</a></h2>
+
+ <p>Tags and traits are very useful for manipulating generic
+ types. For example, if <tt>It</tt> is an iterator class, then
+ <tt><b>typename</b> It::iterator_category</tt> or
+ <tt><b>typename</b>
+ std::iterator_traits&lt;It&gt;::iterator_category</tt> will
+ yield its category, and <tt><b>typename</b>
+ std::iterator_traits&lt;It&gt;::value_type</tt> will yield its
+ value type.</p>
+
+ <p><tt>pb_ds</tt> contains a tag hierarchy corresponding to the
+ hierarchy in Figure <a href="#cd">Class hierarchy</a>. The tag
+ hierarchy is shown in Figure <a href=
+ "#tag_cd">Data-structure tag class hierarchy</a>.</p>
+
+ <h6 class="c1"><a name="tag_cd" id="tag_cd"><img src=
+ "assoc_container_tag_cd.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Data-structure tag class hierarchy.</h6>
+
+ <p><a href=
+ "container_base.html"><tt>container_base</tt></a>
+ publicly defines <tt>container_category</tt> as one of the classes in
+ Figure <a href="#tag_cd">Data-structure tag class
+ hierarchy</a>. Given any container <tt>Cntnr</tt>, the tag of
+ the underlying data structure can be found via
+ <tt><b>typename</b> Cntnr::container_category</tt>.</p>
+
+ <p>Additionally, a traits mechanism can be used to query a
+ container type for its attributes. Given any container
+ <tt>Cntnr</tt>, then <tt><a href=
+ "assoc_container_traits.html">pb_ds::container_traits</a>&lt;Cntnr&gt;</tt>
+ is a traits class identifying the properties of the
+ container.</p>
+
+ <p>To find if a container can throw when a key is erased (which
+ is true for vector-based trees, for example), one can
+ use</p><a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::erase_can_throw</tt>,
+ for example.
+
+ <p>Some of the definitions in <a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a> are
+ dependent on other definitions. <i>E.g.</i>, if <a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::order_preserving</tt>
+ is <tt><b>true</b></tt> (which is the case for containers based
+ on trees and tries), then the container can be split or joined;
+ in this case, <a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::split_join_can_throw</tt>
+ indicates whether splits or joins can throw exceptions (which
+ is true for vector-based trees); otherwise <a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::split_join_can_throw</tt>
+ will yield a compilation error. (This is somewhat similar to a
+ compile-time version of the COM model [<a href=
+ "references.html#mscom">mscom</a>]).</p>
+
+ <h2><a name="find_range" id="find_range">Point-Type and
+ Range-Type Methods and Iterators</a></h2>
+
+ <h3><a name="it_unordered" id="it_unordered">Iterators in
+ Unordered Container Types</a></h3>
+
+ <p><tt>pb_ds</tt> differentiates between two types of methods
+ and iterators: point-type methods and iterators, and range-type
+ methods and iterators (see <a href=
+ "motivation.html#assoc_diff_it">Motivation::Associative
+ Containers::Differentiating between Iterator Types</a> and
+ <a href="tutorial.html#assoc_find_range">Tutorial::Associative
+ Containers::Point-Type and Range-Type Methods and
+ Iterators</a>). Each associative container's interface includes
+ the methods:</p>
+ <pre>
+const_point_iterator
+find(const_key_reference r_key) const;
+
+point_iterator
+find(const_key_reference r_key);
+
+std::pair&lt;point_iterator,<b>bool</b>&gt;
+insert(const_reference r_val);
+</pre>
+
+ <p>The relationship between these iterator types varies between
+ container types. Figure <a href=
+ "#point_iterators_cd">Point-type and range-type iterators</a>-A
+ shows the most general invariant between point-type and
+ range-type iterators: <tt>iterator</tt>, <i>e.g.</i>, can
+ always be converted to <tt>point_iterator</tt>. Figure <a href=
+ "#point_iterators_cd">Point-type and range-type iterators</a>-B
+ shows invariants for order-preserving containers: point-type
+ iterators are synonymous with range-type iterators.
+ Orthogonally, Figure <a href="#point_iterators_cd">Point-type
+ and range-type iterators</a>-C shows invariants for "set"
+ containers: iterators are synonymous with const iterators.</p>
+
+ <h6 class="c1"><a name="point_iterators_cd" id=
+ "point_iterators_cd"><img src="point_iterators_cd.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Point-type and range-type iterators.</h6>
+
+ <p>Note that point-type iterators in self-organizing containers
+ (<i>e.g.</i>, hash-based associative containers) lack movement
+ operators, such as <tt><b>operator++</b></tt> - in fact, this
+ is the reason why <tt>pb_ds</tt> differentiates from the STL's
+ design on this point.</p>
+
+ <p>Typically, one can determine an iterator's movement
+ capabilities in the STL using
+ <tt>std::iterator_traits&lt;It&gt;iterator_category</tt>, which
+ is a <tt><b>struct</b></tt> indicating the iterator's movement
+ capabilities. Unfortunately, none of the STL's predefined
+ categories reflect a pointer's <u>not</u> having any movement
+ capabilities whatsoever. Consequently, <tt>pb_ds</tt> adds a
+ type <a href=
+ "trivial_iterator_tag.html"><tt>trivial_iterator_tag</tt></a>
+ (whose name is taken from a concept in [<a href=
+ "references.html#sgi_stl">sgi_stl</a>]), which is the category
+ of iterators with no movement capabilities. All other STL tags,
+ such as <tt>forward_iterator_tag</tt> retain their common
+ use.</p>
+
+ <h3><a name="inv_guar" id="inv_guar">Invalidation
+ Guarantees</a></h3>
+
+ <p><a href=
+ "motivation.html#assoc_inv_guar">Motivation::Associative
+ Containers::Differentiating between Iterator
+ Types::Invalidation Guarantees</a> posed a problem. Given three
+ different types of associative containers, a modifying
+ operation (in that example, <tt>erase</tt>) invalidated
+ iterators in three different ways: the iterator of one
+ container remained completely valid - it could be de-referenced
+ and incremented; the iterator of a different container could
+ not even be de-referenced; the iterator of the third container
+ could be de-referenced, but its "next" iterator changed
+ unpredictably.</p>
+
+ <p>Distinguishing between find and range types allows
+ fine-grained invalidation guarantees, because these questions
+ correspond exactly to the question of whether point-type
+ iterators and range-type iterators are valid. <a href=
+ "#invalidation_guarantee_cd">Invalidation guarantees class
+ hierarchy</a> shows tags corresponding to different types of
+ invalidation guarantees.</p>
+
+ <h6 class="c1"><a name="invalidation_guarantee_cd" id=
+ "invalidation_guarantee_cd"><img src=
+ "invalidation_guarantee_cd.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Invalidation guarantees class hierarchy.</h6>
+
+ <ol>
+ <li><a href=
+ "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a>
+ corresponds to a basic guarantee that a point-type iterator,
+ a found pointer, or a found reference, remains valid as long
+ as the container object is not modified.</li>
+
+ <li><a href=
+ "point_invalidation_guarantee.html"><tt>point_invalidation_guarantee</tt></a>
+ corresponds to a guarantee that a point-type iterator, a
+ found pointer, or a found reference, remains valid even if
+ the container object is modified.</li>
+
+ <li><a href=
+ "range_invalidation_guarantee.html"><tt>range_invalidation_guarantee</tt></a>
+ corresponds to a guarantee that a range-type iterator remains
+ valid even if the container object is modified.</li>
+ </ol>
+
+ <p>As shown in <a href=
+ "tutorial.html#assoc_find_range">Tutorial::Associative
+ Containers::Point-Type and Range-Type Methods and
+ Iterators</a>, to find the invalidation guarantee of a
+ container, one can use</p>
+ <pre>
+<b>typename</b> <a href=
+"assoc_container_traits.html">container_traits</a>&lt;Cntnr&gt;::invalidation_guarantee
+</pre>
+
+ <p>which is one of the classes in Figure <a href=
+ "#invalidation_guarantee_cd">Invalidation guarantees class
+ hierarchy</a>.</p>
+
+ <p>Note that this hierarchy corresponds to the logic it
+ represents: if a container has range-invalidation guarantees,
+ then it must also have find invalidation guarantees;
+ correspondingly, its invalidation guarantee (in this case
+ <a href=
+ "range_invalidation_guarantee.html"><tt>range_invalidation_guarantee</tt></a>)
+ can be cast to its base class (in this case <a href=
+ "point_invalidation_guarantee.html"><tt>point_invalidation_guarantee</tt></a>).
+ This means that this this hierarchy can be used easily using
+ standard metaprogramming techniques, by specializing on the
+ type of <tt>invalidation_guarantee</tt>.</p>
+
+ <p>(These types of problems were addressed, in a more general
+ setting, in [<a href=
+ "references.html#meyers96more">meyers96more</a>] - Item 2. In
+ our opinion, an invalidation-guarantee hierarchy would solve
+ these problems in all container types - not just associative
+ containers.)</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_1.png b/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_1.png
new file mode 100644
index 0000000..9470a65
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_1.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_2.png b/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_2.png
new file mode 100644
index 0000000..d2ac91c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_2.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_3.png b/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_3.png
new file mode 100644
index 0000000..08ecb0f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_3.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/examples.html b/libstdc++-v3/docs/html/ext/pb_ds/examples.html
new file mode 100644
index 0000000..03c7a39
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/examples.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Examples</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Examples</h1>
+
+ <p><a href="assoc_examples.html">Associative-Container
+ Examples</a> shows examples for associative containers;
+ <a href="pq_examples.html">Priority-Queue Examples</a> shows
+ examples for priority queues.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/exceptions.html b/libstdc++-v3/docs/html/ext/pb_ds/exceptions.html
new file mode 100644
index 0000000..3b50c27
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/exceptions.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+<title>container_error Interface</title>
+<meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+</head>
+
+<body>
+<div id="page">
+<h1><tt>container_error</tt> Interface</h1>
+
+<p>Base class for associative-container exceptions.</p>
+
+<p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/exception.hpp"><tt>exception.hpp</tt></a></p>
+
+<h2><a name="link1" id="link1">Base Classes</a></h2>
+
+<table class="c1" width="100%" border="1" summary="Bases">
+<tr>
+<td width="80%" align="left"><b>Class</b></td>
+
+<td width="20%" align="left"><b>Derivation Type</b></td>
+</tr>
+
+<tr>
+<td>
+<pre>
+std::logic_error
+</pre>
+</td>
+
+<td>
+<p>public</p>
+</td>
+</tr>
+</table>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png
new file mode 100644
index 0000000..d86299b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png
new file mode 100644
index 0000000..1b31b7f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.png
new file mode 100644
index 0000000..b7082f2
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png
new file mode 100644
index 0000000..b9fbe00
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png
new file mode 100644
index 0000000..c693ed3
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png
new file mode 100644
index 0000000..248ff6b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png
new file mode 100644
index 0000000..ac4f838
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png
new file mode 100644
index 0000000..9fa08a0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.png
new file mode 100644
index 0000000..5f1d740
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_table.html b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_table.html
new file mode 100644
index 0000000..446359b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_table.html
@@ -0,0 +1,891 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>gp_hash_table Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>gp_hash_table</tt> Interface</h1>
+
+ <p>A concrete general-probing hash-based associative
+ container.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Hash_Fn1515835" id=
+"Hash_Fn1515835"><b>class</b> Hash_Fn </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Hash functor.</p>
+ </td>
+
+ <td>
+ <pre>
+__gnu_cxx::hash&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>if using gcc;
+ <pre>
+stdext::hash_value&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>if using Visual C++ .net
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Eq_Fn60085" id="Eq_Fn60085"><b>class</b> Eq_Fn </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Equivalence functor.</p>
+ </td>
+
+ <td>
+ <pre>
+std::equal_to&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Comb_Probe_Fn1603930855" id=
+"Comb_Probe_Fn1603930855"><b>class</b> Comb_Probe_Fn </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Combining probe functor.</p>
+
+ <p>If <a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a> is
+ <a href="null_hash_fn.html"><span class=
+ "c2"><tt>null_hash_fn</tt></span></a>, and <a href=
+ "#Probe_Fn8454835"><tt>Probe_Fn</tt></a> is <a href=
+ "null_probe_fn.html"><span class=
+ "c2"><tt>null_probe_fn</tt></span></a>, then this is the
+ ranged-probe functor; otherwise, this is the
+ range-hashing functor.</p>
+
+ <p>(See <a href=
+ "hash_based_containers.html#hash_policies">Design::Hash-Based
+ Containers::Hash Policies</a>.)</p>
+ </td>
+
+ <td><a href="direct_mask_range_hashing.html"><span class=
+ "c2"><tt>direct_mask_range_hashing</tt></span></a></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Probe_Fn8454835" id=
+"Probe_Fn8454835"><b>class</b> Probe_Fn </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Probe functor.</p>
+ </td>
+
+ <td>
+ If <tt><a href=
+ "#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a></tt>
+ is <a href="direct_mask_range_hashing.html"><span class=
+ "c2"><tt>direct_mask_range_hashing</tt></span></a>, then
+ <pre>
+<a href="linear_probe_fn.html"><span class=
+"c2"><tt>linear_probe_fn</tt></span></a>&lt;
+ <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
+</pre>otherwise,
+ <pre>
+<a href="quadratic_probe_fn.html"><span class=
+"c2"><tt>quadratic_probe_fn</tt></span></a>&lt;
+ <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Resize_Policy566860465" id=
+"Resize_Policy566860465"><b>class</b> Resize_Policy </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Resize policy.</p>
+ </td>
+
+ <td>
+ If <tt><a href=
+ "#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a></tt>
+ is <tt><a href=
+ "direct_mask_range_hashing.html"><span class=
+ "c2"><tt>direct_mask_range_hashing</tt></span></a></tt>,
+ then
+ <pre>
+<a href="hash_standard_resize_policy.html"><span class=
+"c2"><tt>hash_standard_resize_policy</tt></span></a>&lt;
+ <a href="hash_exponential_size_policy.html"><span class=
+"c2"><tt>hash_exponential_size_policy</tt></span></a>&lt;
+ <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
+ <a href="hash_load_check_resize_trigger.html"><span class=
+"c2"><tt>hash_load_check_resize_trigger</tt></span></a>&lt;
+ <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
+ <b>false</b>,
+ <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
+</pre>otherwise,
+ <pre>
+<a href="hash_standard_resize_policy.html"><span class=
+"c2"><tt>hash_standard_resize_policy</tt></span></a>&lt;
+ <a href="hash_exponential_size_policy.html"><span class=
+"c2"><tt>hash_exponential_size_policy</tt></span></a>&lt;
+ <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
+ <a href="hash_load_check_resize_trigger.html"><span class=
+"c2"><tt>hash_load_check_resize_trigger</tt></span></a>&lt;
+ <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
+ <b>false</b>,
+ <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Store_Hash218262104" id=
+"Store_Hash218262104"><b>bool</b> Store_Hash </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Indicates whether the hash value will be stored along
+ with each key.</p>
+
+ <p>If <tt><a href=
+ "#hash_fn2015995"><tt>hash_fn</tt></a></tt> is <a href=
+ "null_hash_fn.html"><span class=
+ "c2"><tt>null_hash_fn</tt></span></a>, then the container
+ will not compile if this value is
+ <tt><b>true</b></tt></p>
+ </td>
+
+ <td>
+ <pre>
+<tt><b>false</b></tt>
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>
+ <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="basic_hash_table.html"><span class=
+"c2"><tt>basic_hash_table</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link4" id="link4">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="hash_fn2015995" id="hash_fn2015995">hash_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Hash functor type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="eq_fn80245" id="eq_fn80245">eq_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Eq_Fn60085"><tt>Eq_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Equivalence functor type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="comb_probe_fn828996423" id=
+"comb_probe_fn828996423">comb_probe_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Combining probe functor type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="probe_fn10954995" id="probe_fn10954995">probe_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Probe_Fn8454835"><tt>Probe_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Probe functor type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="resize_policy4084493169" id=
+"resize_policy4084493169">resize_policy</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Resize policy type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ gp_hash_table
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ gp_hash_table
+ (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ gp_hash_table
+ (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, and <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ gp_hash_table
+ (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn,
+ <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object, and <span class=
+ "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+ the <a href=
+ "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+ object of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ gp_hash_table
+ (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn,
+ <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn,
+ <b>const</b> <a href=
+"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object, <span class=
+ "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+ the <a href=
+ "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+ object of the container object, and <span class=
+ "c1"><tt>r_probe_fn</tt></span> will be copied by the
+ <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
+ of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ gp_hash_table
+ (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn,
+ <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn,
+ <b>const</b> <a href=
+"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn,
+ <b>const</b> <a href=
+"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;r_resize_policy)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object, <span class=
+ "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+ the <a href=
+ "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+ object of the container object, <span class=
+ "c1"><tt>r_probe_fn</tt></span> will be copied by the
+ <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
+ of the container object, and <span class=
+ "c1"><tt>r_resize_policy</tt></span> will be copied by
+ the <a href=
+ "#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
+ object of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ gp_hash_table
+ (It first_it,
+ It last_it)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of
+ value_types. The value_types between <span class=
+ "c1"><tt>first_it</tt></span> and <span class=
+ "c1"><tt>last_it</tt></span> will be inserted into the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ gp_hash_table
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects. The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ gp_hash_table
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects. The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, and <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ gp_hash_table
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn,
+ <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects. The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object, and <span class=
+ "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+ the <a href=
+ "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+ object of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ gp_hash_table
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn,
+ <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn,
+ <b>const</b> <a href=
+"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects. The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object, <span class=
+ "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+ the <a href=
+ "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+ object of the container object, and <span class=
+ "c1"><tt>r_probe_fn</tt></span> will be copied by the
+ <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
+ of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ gp_hash_table
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn,
+ <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn,
+ <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn,
+ <b>const</b> <a href=
+"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn,
+ <b>const</b> <a href=
+"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;r_resize_policy)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects. The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object. <span class=
+ "c1"><tt>r_hash_fn</tt></span> will be copied by the
+ <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+ the container object, <span class=
+ "c1"><tt>r_eq_fn</tt></span> will be copied by the
+ <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+ container object, <span class=
+ "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+ the <a href=
+ "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+ object of the container object, <span class=
+ "c1"><tt>r_probe_fn</tt></span> will be copied by the
+ <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
+ of the container object, and <span class=
+ "c1"><tt>r_resize_policy</tt></span> will be copied by
+ the <a href=
+ "#resize_policy4084493169"><tt>resize_policy</tt></a>
+ object of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ gp_hash_table
+ (<b>const</b> <span class=
+"c2"><tt>gp_hash_table</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~gp_hash_table
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<span class="c2"><tt>gp_hash_table</tt></span> &amp;
+ <b>operator</b>=
+ (<b>const</b> <span class=
+"c2"><tt>gp_hash_table</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Assignment operator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class=
+"c2"><tt>gp_hash_table</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Policy Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;
+ get_comb_probe_fn
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+ object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;
+ get_comb_probe_fn
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access to the <a href=
+ "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+ object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#probe_fn10954995"><tt>probe_fn</tt></a> &amp;
+ get_probe_fn
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#probe_fn10954995"><tt>probe_fn</tt></a> object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>const</b> <a href=
+"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;
+ get_probe_fn
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access to the <a href=
+ "#probe_fn10954995"><tt>probe_fn</tt></a> object.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_tag.html
new file mode 100644
index 0000000..720984f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>gp_hash_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>gp_hash_tag</tt> Interface</h1>
+
+ <p>General-probing hash data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="basic_hash_tag.html"><span class=
+"c2"><tt>basic_hash_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_based_containers.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_based_containers.html
new file mode 100644
index 0000000..fed7a48
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_based_containers.html
@@ -0,0 +1,835 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Hash-Based Containers</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Hash Table Design</h1>
+
+ <h2><a name="overview" id="overview">Overview</a></h2>
+
+ <p>The collision-chaining hash-based container has the
+ following declaration.</p>
+ <pre>
+<b>template</b>&lt;
+ <b>typename</b> Key,
+ <b>typename</b> Mapped,
+ <b>typename</b> Hash_Fn = std::hash&lt;Key&gt;,
+ <b>typename</b> Eq_Fn = std::equal_to&lt;Key&gt;,
+ <b>typename</b> Comb_Hash_Fn = <a href=
+"direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;&gt;
+ <b>typename</b> Resize_Policy = <i>default explained below.</i>
+ <b>bool</b> Store_Hash = <b>false</b>,
+ <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href=
+"cc_hash_table.html">cc_hash_table</a>;
+</pre>
+
+ <p>The parameters have the following meaning:</p>
+
+ <ol>
+ <li><tt>Key</tt> is the key type.</li>
+
+ <li><tt>Mapped</tt> is the mapped-policy, and is explained in
+ <a href="tutorial.html#assoc_ms">Tutorial::Associative
+ Containers::Associative Containers Others than Maps</a>.</li>
+
+ <li><tt>Hash_Fn</tt> is a key hashing functor.</li>
+
+ <li><tt>Eq_Fn</tt> is a key equivalence functor.</li>
+
+ <li><tt>Comb_Hash_Fn</tt> is a <i>range-hashing_functor</i>;
+ it describes how to translate hash values into positions
+ within the table. This is described in <a href=
+ "#hash_policies">Hash Policies</a>.</li>
+
+ <li><tt>Resize_Policy</tt> describes how a container object
+ should change its internal size. This is described in
+ <a href="#resize_policies">Resize Policies</a>.</li>
+
+ <li><tt>Store_Hash</tt> indicates whether the hash value
+ should be stored with each entry. This is described in
+ <a href="#policy_interaction">Policy Interaction</a>.</li>
+
+ <li><tt>Allocator</tt> is an allocator
+ type.</li>
+ </ol>
+
+ <p>The probing hash-based container has the following
+ declaration.</p>
+ <pre>
+<b>template</b>&lt;
+ <b>typename</b> Key,
+ <b>typename</b> Mapped,
+ <b>typename</b> Hash_Fn = std::hash&lt;Key&gt;,
+ <b>typename</b> Eq_Fn = std::equal_to&lt;Key&gt;,
+ <b>typename</b> Comb_Probe_Fn = <a href=
+"direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;&gt;
+ <b>typename</b> Probe_Fn = <i>default explained below.</i>
+ <b>typename</b> Resize_Policy = <i>default explained below.</i>
+ <b>bool</b> Store_Hash = <b>false</b>,
+ <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href=
+"gp_hash_table.html">gp_hash_table</a>;
+</pre>
+
+ <p>The parameters are identical to those of the
+ collision-chaining container, except for the following.</p>
+
+ <ol>
+ <li><tt>Comb_Probe_Fn</tt> describes how to transform a probe
+ sequence into a sequence of positions within the table.</li>
+
+ <li><tt>Probe_Fn</tt> describes a probe sequence policy.</li>
+ </ol>
+
+ <p>Some of the default template values depend on the values of
+ other parameters, and are explained in <a href=
+ "#policy_interaction">Policy Interaction</a>.</p>
+
+ <h2><a name="hash_policies" id="hash_policies">Hash
+ Policies</a></h2>
+
+ <h3><a name="general_terms" id="general_terms">General
+ Terms</a></h3>
+
+ <p>Following is an explanation of some functions which hashing
+ involves. Figure <a href=
+ "#hash_ranged_hash_range_hashing_fns">Hash functions,
+ ranged-hash functions, and range-hashing functions</a>)
+ illustrates the discussion.</p>
+
+ <h6 class="c1"><a name="hash_ranged_hash_range_hashing_fns" id=
+ "hash_ranged_hash_range_hashing_fns"><img src=
+ "hash_ranged_hash_range_hashing_fns.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Hash functions, ranged-hash functions, and
+ range-hashing functions.</h6>
+
+ <p>Let <i>U</i> be a domain (<i>e.g.</i>, the integers, or the
+ strings of 3 characters). A hash-table algorithm needs to map
+ elements of <i>U</i> "uniformly" into the range <i>[0,..., m -
+ 1]</i> (where <i>m</i> is a non-negative integral value, and
+ is, in general, time varying). <i>I.e.</i>, the algorithm needs
+ a <i>ranged-hash</i> function</p>
+
+ <p><i>f : U &times; Z<sub>+</sub> &rarr; Z<sub>+</sub></i>
+ ,</p>
+
+ <p>such that for any <i>u</i> in <i>U</i> ,</p>
+
+ <p><i>0 &le; f(u, m) &le; m - 1</i> ,</p>
+
+ <p>and which has "good uniformity" properties [<a href=
+ "references.html#knuth98sorting">knuth98sorting</a>]. One
+ common solution is to use the composition of the hash
+ function</p>
+
+ <p><i>h : U &rarr; Z<sub>+</sub></i> ,</p>
+
+ <p>which maps elements of <i>U</i> into the non-negative
+ integrals, and</p>
+
+ <p class="c2">g : Z<sub>+</sub> &times; Z<sub>+</sub> &rarr;
+ Z<sub>+</sub>,</p>
+
+ <p>which maps a non-negative hash value, and a non-negative
+ range upper-bound into a non-negative integral in the range
+ between 0 (inclusive) and the range upper bound (exclusive),
+ <i>i.e.</i>, for any <i>r</i> in <i>Z<sub>+</sub></i>,</p>
+
+ <p><i>0 &le; g(r, m) &le; m - 1</i> .</p>
+
+ <p>The resulting ranged-hash function, is</p>
+
+ <p><i><a name="ranged_hash_composed_of_hash_and_range_hashing"
+ id="ranged_hash_composed_of_hash_and_range_hashing">f(u , m) =
+ g(h(u), m)</a></i> (1) .</p>
+
+ <p>From the above, it is obvious that given <i>g</i> and
+ <i>h</i>, <i>f</i> can always be composed (however the converse
+ is not true). The STL's hash-based containers allow specifying
+ a hash function, and use a hard-wired range-hashing function;
+ the ranged-hash function is implicitly composed.</p>
+
+ <p>The above describes the case where a key is to be mapped
+ into a <i>single position</i> within a hash table, <i>e.g.</i>,
+ in a collision-chaining table. In other cases, a key is to be
+ mapped into a <i>sequence of positions</i> within a table,
+ <i>e.g.</i>, in a probing table. Similar terms apply in this
+ case: the table requires a <i>ranged probe</i> function,
+ mapping a key into a sequence of positions withing the table.
+ This is typically achieved by composing a <i>hash function</i>
+ mapping the key into a non-negative integral type, a
+ <i>probe</i> function transforming the hash value into a
+ sequence of hash values, and a <i>range-hashing</i> function
+ transforming the sequence of hash values into a sequence of
+ positions.</p>
+
+ <h3><a name="range_hashing_fns" id=
+ "range_hashing_fns">Range-Hashing Functions</a></h3>
+
+ <p>Some common choices for range-hashing functions are the
+ division, multiplication, and middle-square methods [<a href=
+ "references.html#knuth98sorting">knuth98sorting</a>], defined
+ as</p>
+
+ <p><i><a name="division_method" id="division_method">g(r, m) =
+ r mod m</a></i> (2) ,</p>
+
+ <p><i>g(r, m) = &lceil; u/v ( a r mod v ) &rceil;</i> ,</p>
+
+ <p>and</p>
+
+ <p><i>g(r, m) = &lceil; u/v ( r<sup>2</sup> mod v ) &rceil;</i>
+ ,</p>
+
+ <p>respectively, for some positive integrals <i>u</i> and
+ <i>v</i> (typically powers of 2), and some <i>a</i>. Each of
+ these range-hashing functions works best for some different
+ setting.</p>
+
+ <p>The division method <a href="#division_method">(2)</a> is a
+ very common choice. However, even this single method can be
+ implemented in two very different ways. It is possible to
+ implement <a href="#division_method">(2)</a> using the low
+ level <i>%</i> (modulo) operation (for any <i>m</i>), or the
+ low level <i>&amp;</i> (bit-mask) operation (for the case where
+ <i>m</i> is a power of 2), <i>i.e.</i>,</p>
+
+ <p><i><a name="division_method_prime_mod" id=
+ "division_method_prime_mod">g(r, m) = r % m</a></i> (3) ,</p>
+
+ <p>and</p>
+
+ <p><i><a name="division_method_bit_mask" id=
+ "division_method_bit_mask">g(r, m) = r &amp; m - 1, (m =
+ 2<sup>k</sup>)</a></i> for some <i>k)</i> (4),</p>
+
+ <p>respectively.</p>
+
+ <p>The <i>%</i> (modulo) implementation <a href=
+ "#division_method_prime_mod">(3)</a> has the advantage that for
+ <i>m</i> a prime far from a power of 2, <i>g(r, m)</i> is
+ affected by all the bits of <i>r</i> (minimizing the chance of
+ collision). It has the disadvantage of using the costly modulo
+ operation. This method is hard-wired into SGI's implementation
+ [<a href="references.html#sgi_stl">sgi_stl</a>].</p>
+
+ <p>The <i>&amp;</i> (bit-mask) implementation <a href=
+ "#division_method_bit_mask">(4)</a> has the advantage of
+ relying on the fast bit-wise and operation. It has the
+ disadvantage that for <i>g(r, m)</i> is affected only by the
+ low order bits of <i>r</i>. This method is hard-wired into
+ Dinkumware's implementation [<a href=
+ "references.html#dinkumware_stl">dinkumware_stl</a>].</p>
+
+ <h3><a name="hash_policies_ranged_hash_policies" id=
+ "hash_policies_ranged_hash_policies">Ranged-Hash
+ Functions</a></h3>
+
+ <p>In cases it is beneficial to allow the
+ client to directly specify a ranged-hash hash function. It is
+ true, that the writer of the ranged-hash function cannot rely
+ on the values of <i>m</i> having specific numerical properties
+ suitable for hashing (in the sense used in [<a href=
+ "references.html#knuth98sorting">knuth98sorting</a>]), since
+ the values of <i>m</i> are determined by a resize policy with
+ possibly orthogonal considerations.</p>
+
+ <p>There are two cases where a ranged-hash function can be
+ superior. The firs is when using perfect hashing [<a href=
+ "references.html#knuth98sorting">knuth98sorting</a>]; the
+ second is when the values of <i>m</i> can be used to estimate
+ the "general" number of distinct values required. This is
+ described in the following.</p>
+
+ <p>Let</p>
+
+ <p class="c2">s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>]</p>
+
+ <p>be a string of <i>t</i> characters, each of which is from
+ domain <i>S</i>. Consider the following ranged-hash
+ function:</p>
+
+ <p><a name="total_string_dna_hash" id=
+ "total_string_dna_hash"><i>f<sub>1</sub>(s, m) = &sum; <sub>i =
+ 0</sub><sup>t - 1</sup> s<sub>i</sub> a<sup>i</sup></i> mod
+ <i>m</i></a> (5) ,</p>
+
+ <p>where <i>a</i> is some non-negative integral value. This is
+ the standard string-hashing function used in SGI's
+ implementation (with <i>a = 5</i>) [<a href=
+ "references.html#sgi_stl">sgi_stl</a>]. Its advantage is that
+ it takes into account all of the characters of the string.</p>
+
+ <p>Now assume that <i>s</i> is the string representation of a
+ of a long DNA sequence (and so <i>S = {'A', 'C', 'G',
+ 'T'}</i>). In this case, scanning the entire string might be
+ prohibitively expensive. A possible alternative might be to use
+ only the first <i>k</i> characters of the string, where</p>
+
+ <p>k <sup>|S|</sup> &ge; m ,</p>
+
+ <p><i>i.e.</i>, using the hash function</p>
+
+ <p><a name="only_k_string_dna_hash" id=
+ "only_k_string_dna_hash"><i>f<sub>2</sub>(s, m) = &sum; <sub>i
+ = 0</sub><sup>k - 1</sup> s<sub>i</sub> a<sup>i</sup></i> mod
+ <i>m</i></a> , (6)</p>
+
+ <p>requiring scanning over only</p>
+
+ <p><i>k =</i> log<i><sub>4</sub>( m )</i></p>
+
+ <p>characters.</p>
+
+ <p>Other more elaborate hash-functions might scan <i>k</i>
+ characters starting at a random position (determined at each
+ resize), or scanning <i>k</i> random positions (determined at
+ each resize), <i>i.e.</i>, using</p>
+
+ <p><i>f<sub>3</sub>(s, m) = &sum; <sub>i =
+ r</sub>0</i><sup>r<sub>0</sub> + k - 1</sup> s<sub>i</sub>
+ a<sup>i</sup> mod <i>m</i> ,</p>
+
+ <p>or</p>
+
+ <p><i>f<sub>4</sub>(s, m) = &sum; <sub>i = 0</sub><sup>k -
+ 1</sup> s<sub>r</sub>i</i> a<sup>r<sub>i</sub></sup> mod
+ <i>m</i> ,</p>
+
+ <p>respectively, for <i>r<sub>0</sub>,..., r<sub>k-1</sub></i>
+ each in the (inclusive) range <i>[0,...,t-1]</i>.</p>
+
+ <p>It should be noted that the above functions cannot be
+ decomposed as <a href=
+ "#ranged_hash_composed_of_hash_and_range_hashing">(1)</a> .</p>
+
+ <h3><a name="pb_ds_imp" id="pb_ds_imp">Implementation</a></h3>
+
+ <p>This sub-subsection describes the implementation of the
+ above in <tt>pb_ds</tt>. It first explains range-hashing
+ functions in collision-chaining tables, then ranged-hash
+ functions in collision-chaining tables, then probing-based
+ tables, and, finally, lists the relevant classes in
+ <tt>pb_ds</tt>.</p>
+
+ <h4>Range-Hashing and Ranged-Hashes in Collision-Chaining
+ Tables</h4>
+
+ <p><a href=
+ "cc_hash_table.html"><tt>cc_hash_table</tt></a> is
+ parametrized by <tt>Hash_Fn</tt> and <tt>Comb_Hash_Fn</tt>, a
+ hash functor and a combining hash functor, respectively.</p>
+
+ <p>In general, <tt>Comb_Hash_Fn</tt> is considered a
+ range-hashing functor. <a href=
+ "cc_hash_table.html"><tt>cc_hash_table</tt></a>
+ synthesizes a ranged-hash function from <tt>Hash_Fn</tt> and
+ <tt>Comb_Hash_Fn</tt> (see <a href=
+ "#ranged_hash_composed_of_hash_and_range_hashing">(1)</a>
+ above). Figure <a href="#hash_range_hashing_seq_diagram">Insert
+ hash sequence diagram</a> shows an <tt>insert</tt> sequence
+ diagram for this case. The user inserts an element (point A),
+ the container transforms the key into a non-negative integral
+ using the hash functor (points B and C), and transforms the
+ result into a position using the combining functor (points D
+ and E).</p>
+
+ <h6 class="c1"><a name="hash_range_hashing_seq_diagram" id=
+ "hash_range_hashing_seq_diagram"><img src=
+ "hash_range_hashing_seq_diagram.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Insert hash sequence diagram.</h6>
+
+ <p>If <a href=
+ "cc_hash_table.html"><tt>cc_hash_table</tt></a>'s
+ hash-functor, <tt>Hash_Fn</tt> is instantiated by <a href=
+ "null_hash_fn.html"><tt>null_hash_fn</tt></a> (see <a href=
+ "concepts.html#concepts_null_policies">Interface::Concepts::Null
+ Policy Classes</a>), then <tt>Comb_Hash_Fn</tt> is taken to be
+ a ranged-hash function. Figure <a href=
+ "#hash_range_hashing_seq_diagram2">Insert hash sequence diagram
+ with a null hash policy</a> shows an <tt>insert</tt> sequence
+ diagram. The user inserts an element (point A), the container
+ transforms the key into a position using the combining functor
+ (points B and C).</p>
+
+ <h6 class="c1"><a name="hash_range_hashing_seq_diagram2" id=
+ "hash_range_hashing_seq_diagram2"><img src=
+ "hash_range_hashing_seq_diagram2.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Insert hash sequence diagram with a null hash
+ policy.</h6>
+
+ <h4>Probing Tables</h4>
+
+ <p><a href=
+ "gp_hash_table.html"></a><tt>gp_hash_table</tt> is
+ parametrized by <tt>Hash_Fn</tt>, <tt>Probe_Fn</tt>, and
+ <tt>Comb_Probe_Fn</tt>. As before, if <tt>Probe_Fn</tt> and
+ <tt>Comb_Probe_Fn</tt> are, respectively, <a href=
+ "null_hash_fn.html"><tt>null_hash_fn</tt></a> and <a href=
+ "null_probe_fn.html"><tt>null_probe_fn</tt></a>, then
+ <tt>Comb_Probe_Fn</tt> is a ranged-probe functor. Otherwise,
+ <tt>Hash_Fn</tt> is a hash functor, <tt>Probe_Fn</tt> is a
+ functor for offsets from a hash value, and
+ <tt>Comb_Probe_Fn</tt> transforms a probe sequence into a
+ sequence of positions within the table.</p>
+
+ <h4>Pre-Defined Policies</h4>
+
+ <p><tt>pb_ds</tt> contains some pre-defined classes
+ implementing range-hashing and probing functions:</p>
+
+ <ol>
+ <li><a href=
+ "direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+ and <a href=
+ "direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+ are range-hashing functions based on a bit-mask and a modulo
+ operation, respectively.</li>
+
+ <li><a href=
+ "linear_probe_fn.html"><tt>linear_probe_fn</tt></a>, and
+ <a href=
+ "quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a> are
+ a linear probe and a quadratic probe function,
+ respectively.</li>
+ </ol>Figure <a href="#hash_policy_cd">Hash policy class
+ diagram</a> shows a class diagram.
+
+ <h6 class="c1"><a name="hash_policy_cd" id=
+ "hash_policy_cd"><img src="hash_policy_cd.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Hash policy class diagram.</h6>
+
+ <h2><a name="resize_policies" id="resize_policies">Resize
+ Policies</a></h2>
+
+ <h3><a name="general" id="general">General Terms</a></h3>
+
+ <p>Hash-tables, as opposed to trees, do not naturally grow or
+ shrink. It is necessary to specify policies to determine how
+ and when a hash table should change its size. Usually, resize
+ policies can be decomposed into orthogonal policies:</p>
+
+ <ol>
+ <li>A <i>size policy</i> indicating <i>how</i> a hash table
+ should grow (<i>e.g.,</i> it should multiply by powers of
+ 2).</li>
+
+ <li>A <i>trigger policy</i> indicating <i>when</i> a hash
+ table should grow (<i>e.g.,</i> a load factor is
+ exceeded).</li>
+ </ol>
+
+ <h3><a name="size_policies" id="size_policies">Size
+ Policies</a></h3>
+
+ <p>Size policies determine how a hash table changes size. These
+ policies are simple, and there are relatively few sensible
+ options. An exponential-size policy (with the initial size and
+ growth factors both powers of 2) works well with a mask-based
+ range-hashing function (see <a href=
+ "#hash_policies">Range-Hashing Policies</a>), and is the
+ hard-wired policy used by Dinkumware [<a href=
+ "references.html#dinkumware_stl">dinkumware_stl</a>]. A
+ prime-list based policy works well with a modulo-prime range
+ hashing function (see <a href="#hash_policies">Range-Hashing
+ Policies</a>), and is the hard-wired policy used by SGI's
+ implementation [<a href=
+ "references.html#sgi_stl">sgi_stl</a>].</p>
+
+ <h3><a name="trigger_policies" id="trigger_policies">Trigger
+ Policies</a></h3>
+
+ <p>Trigger policies determine when a hash table changes size.
+ Following is a description of two policies: <i>load-check</i>
+ policies, and collision-check policies.</p>
+
+ <p>Load-check policies are straightforward. The user specifies
+ two factors, <i>&alpha;<sub>min</sub></i> and
+ <i>&alpha;<sub>max</sub></i>, and the hash table maintains the
+ invariant that</p>
+
+ <p><i><a name="load_factor_min_max" id=
+ "load_factor_min_max">&alpha;<sub>min</sub> &le; (number of
+ stored elements) / (hash-table size) &le;
+ &alpha;<sub>max</sub></a></i> (1) .</p>
+
+ <p>Collision-check policies work in the opposite direction of
+ load-check policies. They focus on keeping the number of
+ collisions moderate and hoping that the size of the table will
+ not grow very large, instead of keeping a moderate load-factor
+ and hoping that the number of collisions will be small. A
+ maximal collision-check policy resizes when the longest
+ probe-sequence grows too large.</p>
+
+ <p>Consider Figure <a href="#balls_and_bins">Balls and
+ bins</a>. Let the size of the hash table be denoted by
+ <i>m</i>, the length of a probe sequence be denoted by
+ <i>k</i>, and some load factor be denoted by &alpha;. We would
+ like to calculate the minimal length of <i>k</i>, such that if
+ there were <i>&alpha; m</i> elements in the hash table, a probe
+ sequence of length <i>k</i> would be found with probability at
+ most <i>1/m</i>.</p>
+
+ <h6 class="c1"><a name="balls_and_bins" id=
+ "balls_and_bins"><img src="balls_and_bins.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Balls and bins.</h6>
+
+ <p>Denote the probability that a probe sequence of length
+ <i>k</i> appears in bin <i>i</i> by <i>p<sub>i</sub></i>, the
+ length of the probe sequence of bin <i>i</i> by
+ <i>l<sub>i</sub></i>, and assume uniform distribution. Then</p>
+
+ <p><a name="prob_of_p1" id=
+ "prob_of_p1"><i>p<sub>1</sub></i></a> = (3)</p>
+
+ <p class="c2"><b>P</b>(l<sub>1</sub> &ge; k) =</p>
+
+ <p><i><b>P</b>(l<sub>1</sub> &ge; &alpha; ( 1 + k / &alpha; - 1
+ ) &le;</i> (a)</p>
+
+ <p><i>e ^ ( - ( &alpha; ( k / &alpha; - 1 )<sup>2</sup> ) /2
+ )</i> ,</p>
+
+ <p>where (a) follows from the Chernoff bound [<a href=
+ "references.html#motwani95random">motwani95random</a>]. To
+ calculate the probability that <i>some</i> bin contains a probe
+ sequence greater than <i>k</i>, we note that the
+ <i>l<sub>i</sub></i> are negatively-dependent [<a href=
+ "references.html#dubhashi98neg">dubhashi98neg</a>]. Let
+ <i><b>I</b>(.)</i> denote the indicator function. Then</p>
+
+ <p><a name="at_least_k_i_n_some_bin" id=
+ "at_least_k_i_n_some_bin"><i><b>P</b>( exists<sub>i</sub>
+ l<sub>i</sub> &ge; k ) =</i> (3)</a></p>
+
+ <p class="c2"><b>P</b> ( &sum; <sub>i = 1</sub><sup>m</sup>
+ <b>I</b>(l<sub>i</sub> &ge; k) &ge; 1 ) =</p>
+
+ <p><i><b>P</b> ( &sum; <sub>i = 1</sub><sup>m</sup> <b>I</b> (
+ l<sub>i</sub> &ge; k ) &ge; m p<sub>1</sub> ( 1 + 1 / (m
+ p<sub>1</sub>) - 1 ) ) &le;</i> (a)</p>
+
+ <p class="c2">e ^ ( ( - m p<sub>1</sub> ( 1 / (m p<sub>1</sub>)
+ - 1 ) <sup>2</sup> ) / 2 ) ,</p>
+
+ <p>where (a) follows from the fact that the Chernoff bound can
+ be applied to negatively-dependent variables [<a href=
+ "references.html#dubhashi98neg">dubhashi98neg</a>]. Inserting
+ <a href="#prob_of_p1">(2)</a> into <a href=
+ "#at_least_k_i_n_some_bin">(3)</a>, and equating with
+ <i>1/m</i>, we obtain</p>
+
+ <p><i>k ~ &radic; ( 2 &alpha;</i> ln <i>2 m</i> ln<i>(m) )
+ )</i> .</p>
+
+ <h3><a name="imp_pb_ds" id="imp_pb_ds">Implementation</a></h3>
+
+ <p>This sub-subsection describes the implementation of the
+ above in <tt>pb_ds</tt>. It first describes resize policies and
+ their decomposition into trigger and size policies, then
+ describes pre-defined classes, and finally discusses controlled
+ access the policies' internals.</p>
+
+ <h4>Resize Policies and Their Decomposition</h4>
+
+ <p>Each hash-based container is parametrized by a
+ <tt>Resize_Policy</tt> parameter; the container derives
+ <tt><b>public</b></tt>ly from <tt>Resize_Policy</tt>. For
+ example:</p>
+ <pre>
+<a href="cc_hash_table.html">cc_hash_table</a>&lt;
+ <b>typename</b> Key,
+ <b>typename</b> Mapped,
+ ...
+ <b>typename</b> Resize_Policy
+ ...&gt; :
+ <b>public</b> Resize_Policy
+</pre>
+
+ <p>As a container object is modified, it continuously notifies
+ its <tt>Resize_Policy</tt> base of internal changes
+ (<i>e.g.</i>, collisions encountered and elements being
+ inserted). It queries its <tt>Resize_Policy</tt> base whether
+ it needs to be resized, and if so, to what size.</p>
+
+ <p>Figure <a href="#insert_resize_sequence_diagram1">Insert
+ resize sequence diagram</a> shows a (possible) sequence diagram
+ of an insert operation. The user inserts an element; the hash
+ table notifies its resize policy that a search has started
+ (point A); in this case, a single collision is encountered -
+ the table notifies its resize policy of this (point B); the
+ container finally notifies its resize policy that the search
+ has ended (point C); it then queries its resize policy whether
+ a resize is needed, and if so, what is the new size (points D
+ to G); following the resize, it notifies the policy that a
+ resize has completed (point H); finally, the element is
+ inserted, and the policy notified (point I).</p>
+
+ <h6 class="c1"><a name="insert_resize_sequence_diagram1" id=
+ "insert_resize_sequence_diagram1"><img src=
+ "insert_resize_sequence_diagram1.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Insert resize sequence diagram.</h6>
+
+ <p>In practice, a resize policy can be usually orthogonally
+ decomposed to a size policy and a trigger policy. Consequently,
+ the library contains a single class for instantiating a resize
+ policy: <a href=
+ "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ is parametrized by <tt>Size_Policy</tt> and
+ <tt>Trigger_Policy</tt>, derives <tt><b>public</b></tt>ly from
+ both, and acts as a standard delegate [<a href=
+ "references.html#gamma95designpatterns">gamma95designpatterns</a>]
+ to these policies.</p>
+
+ <p>Figures <a href="#insert_resize_sequence_diagram2">Standard
+ resize policy trigger sequence diagram</a> and <a href=
+ "#insert_resize_sequence_diagram3">Standard resize policy size
+ sequence diagram</a> show sequence diagrams illustrating the
+ interaction between the standard resize policy and its trigger
+ and size policies, respectively.</p>
+
+ <h6 class="c1"><a name="insert_resize_sequence_diagram2" id=
+ "insert_resize_sequence_diagram2"><img src=
+ "insert_resize_sequence_diagram2.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Standard resize policy trigger sequence
+ diagram.</h6>
+
+ <h6 class="c1"><a name="insert_resize_sequence_diagram3" id=
+ "insert_resize_sequence_diagram3"><img src=
+ "insert_resize_sequence_diagram3.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Standard resize policy size sequence
+ diagram.</h6>
+
+ <h4>Pre-Defined Policies</h4>
+
+ <p>The library includes the following
+ instantiations of size and trigger policies:</p>
+
+ <ol>
+ <li><a href=
+ "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ implements a load check trigger policy.</li>
+
+ <li><a href=
+ "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>
+ implements a collision check trigger policy.</li>
+
+ <li><a href=
+ "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+ implements an exponential-size policy (which should be used
+ with mask range hashing).</li>
+
+ <li><a href=
+ "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+ implementing a size policy based on a sequence of primes
+ [<a href="references.html#sgi_stl">sgi_stl</a>] (which should
+ be used with mod range hashing</li>
+ </ol>
+
+ <p>Figure <a href="#resize_policy_cd">Resize policy class
+ diagram</a> gives an overall picture of the resize-related
+ classes. <a href=
+ "basic_hash_table.html"><tt>basic_hash_table</tt></a>
+ is parametrized by <tt>Resize_Policy</tt>, which it subclasses
+ publicly. This class is currently instantiated only by <a href=
+ "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>.
+ <a href=
+ "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ itself is parametrized by <tt>Trigger_Policy</tt> and
+ <tt>Size_Policy</tt>. Currently, <tt>Trigger_Policy</tt> is
+ instantiated by <a href=
+ "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>,
+ or <a href=
+ "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>;
+ <tt>Size_Policy</tt> is instantiated by <a href=
+ "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>,
+ or <a href=
+ "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>.</p>
+
+ <h6 class="c1"><a name="resize_policy_cd" id=
+ "resize_policy_cd"><img src="resize_policy_cd.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Resize policy class diagram.</h6>
+
+ <h4>Controlled Access to Policies' Internals</h4>
+
+ <p>There are cases where (controlled) access to resize
+ policies' internals is beneficial. <i>E.g.</i>, it is sometimes
+ useful to query a hash-table for the table's actual size (as
+ opposed to its <tt>size()</tt> - the number of values it
+ currently holds); it is sometimes useful to set a table's
+ initial size, externally resize it, or change load factors.</p>
+
+ <p>Clearly, supporting such methods both decreases the
+ encapsulation of hash-based containers, and increases the
+ diversity between different associative-containers' interfaces.
+ Conversely, omitting such methods can decrease containers'
+ flexibility.</p>
+
+ <p>In order to avoid, to the extent possible, the above
+ conflict, the hash-based containers themselves do not address
+ any of these questions; this is deferred to the resize policies,
+ which are easier to change or replace. Thus, for example,
+ neither <a href=
+ "cc_hash_table.html"><tt>cc_hash_table</tt></a> nor
+ <a href=
+ "gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ contain methods for querying the actual size of the table; this
+ is deferred to <a href=
+ "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>.</p>
+
+ <p>Furthermore, the policies themselves are parametrized by
+ template arguments that determine the methods they support
+ ([<a href=
+ "references.html#alexandrescu01modern">alexandrescu01modern</a>]
+ shows techniques for doing so). <a href=
+ "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ is parametrized by <tt>External_Size_Access</tt> that
+ determines whether it supports methods for querying the actual
+ size of the table or resizing it. <a href=
+ "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ is parametrized by <tt>External_Load_Access</tt> that
+ determines whether it supports methods for querying or
+ modifying the loads. <a href=
+ "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>
+ is parametrized by <tt>External_Load_Access</tt> that
+ determines whether it supports methods for querying the
+ load.</p>
+
+ <p>Some operations, for example, resizing a container at
+ run time, or changing the load factors of a load-check trigger
+ policy, require the container itself to resize. As mentioned
+ above, the hash-based containers themselves do not contain
+ these types of methods, only their resize policies.
+ Consequently, there must be some mechanism for a resize policy
+ to manipulate the hash-based container. As the hash-based
+ container is a subclass of the resize policy, this is done
+ through virtual methods. Each hash-based container has a
+ <tt><b>private</b></tt> <tt><b>virtual</b></tt> method:</p>
+ <pre>
+<b>virtual void</b>
+ do_resize
+ (size_type new_size);
+</pre>
+
+ <p>which resizes the container. Implementations of
+ <tt>Resize_Policy</tt> can export public methods for resizing
+ the container externally; these methods internally call
+ <tt>do_resize</tt> to resize the table.</p>
+
+ <h2><a name="policy_interaction" id="policy_interaction">Policy
+ Interaction</a></h2>
+
+ <p>Hash-tables are unfortunately especially susceptible to
+ choice of policies. One of the more complicated aspects of this
+ is that poor combinations of good policies can form a poor
+ container. Following are some considerations.</p>
+
+ <h3><a name="policy_interaction_probe_size_trigger" id=
+ "policy_interaction_probe_size_trigger">Probe Policies, Size
+ Policies, and Trigger Policies</a></h3>
+
+ <p>Some combinations do not work well for probing containers.
+ For example, combining a quadratic probe policy with an
+ exponential size policy can yield a poor container: when an
+ element is inserted, a trigger policy might decide that there
+ is no need to resize, as the table still contains unused
+ entries; the probe sequence, however, might never reach any of
+ the unused entries.</p>
+
+ <p>Unfortunately, <tt>pb_ds</tt> cannot detect such problems at
+ compilation (they are halting reducible). It therefore defines
+ an exception class <a href=
+ "insert_error.html"><tt>insert_error</tt></a> to throw an
+ exception in this case.</p>
+
+ <h3><a name="policy_interaction_hash_trigger" id=
+ "policy_interaction_hash_trigger">Hash Policies and Trigger
+ Policies</a></h3>
+
+ <p>Some trigger policies are especially susceptible to poor
+ hash functions. Suppose, as an extreme case, that the hash
+ function transforms each key to the same hash value. After some
+ inserts, a collision detecting policy will always indicate that
+ the container needs to grow.</p>
+
+ <p>The library, therefore, by design, limits each operation to
+ one resize. For each <tt>insert</tt>, for example, it queries
+ only once whether a resize is needed.</p>
+
+ <h3><a name="policy_interaction_eq_sth_hash" id=
+ "policy_interaction_eq_sth_hash">Equivalence Functors, Storing
+ Hash Values, and Hash Functions</a></h3>
+
+ <p><a href=
+ "cc_hash_table.html"><tt>cc_hash_table</tt></a> and
+ <a href=
+ "gp_hash_table.html"><tt>gp_hash_table</tt></a> are
+ parametrized by an equivalence functor and by a
+ <tt>Store_Hash</tt> parameter. If the latter parameter is
+ <tt><b>true</b></tt>, then the container stores with each entry
+ a hash value, and uses this value in case of collisions to
+ determine whether to apply a hash value. This can lower the
+ cost of collision for some types, but increase the cost of
+ collisions for other types.</p>
+
+ <p>If a ranged-hash function or ranged probe function is
+ directly supplied, however, then it makes no sense to store the
+ hash value with each entry. <tt>pb_ds</tt>'s container will
+ fail at compilation, by design, if this is attempted.</p>
+
+ <h3><a name="policy_interaction_size_load_check" id=
+ "policy_interaction_size_load_check">Size Policies and
+ Load-Check Trigger Policies</a></h3>
+
+ <p>Assume a size policy issues an increasing sequence of sizes
+ <i>a, a q, a q<sup>1</sup>, a q<sup>2</sup>, ...</i> For
+ example, an exponential size policy might issue the sequence of
+ sizes <i>8, 16, 32, 64, ...</i></p>
+
+ <p>If a load-check trigger policy is used, with loads
+ <i>&alpha;<sub>min</sub></i> and <i>&alpha;<sub>max</sub></i>,
+ respectively, then it is a good idea to have:</p>
+
+ <ol>
+ <li><i>&alpha;<sub>max</sub> ~ 1 / q</i></li>
+
+ <li><i>&alpha;<sub>min</sub> &lt; 1 / (2 q)</i></li>
+ </ol>
+
+ <p>This will ensure that the amortized hash cost of each
+ modifying operation is at most approximately 3.</p>
+
+ <p><i>&alpha;<sub>min</sub> ~ &alpha;<sub>max</sub></i> is, in
+ any case, a bad choice, and <i>&alpha;<sub>min</sub> &gt;
+ &alpha;<sub>max</sub></i> is horrendous.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_exponential_size_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_exponential_size_policy.html
new file mode 100644
index 0000000..059fa48
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_exponential_size_policy.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>hash_exponential_size_policy Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>hash_exponential_size_policy</tt> Interface</h1>
+
+ <p>A size policy whose sequence of sizes form an exponential
+ sequence (typically powers of 2)</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+
+ <td>size_t</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+ <h3><a name="link5" id="link5">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ hash_exponential_size_policy
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> start_size = 8,
+ <a href=
+"#size_type55424436"><tt>size_type</tt></a> grow_factor = 2)
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor, or constructor taking a
+ <span class="c1"><tt>start_size</tt></span>, or
+ constructor taking a start size and <span class=
+ "c1"><tt>grow_factor</tt></span>. The policy will use the
+ sequence of sizes <span class=
+ "c1"><tt>start_size</tt></span>, <span class=
+ "c1"><tt>start_size</tt></span> * <span class=
+ "c1"><tt>grow_factor</tt></span>, <span class=
+ "c1"><tt>start_size</tt></span> * <span class=
+ "c1"><tt>grow_factor</tt></span>^2, ...</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class=
+"c2"><tt>hash_exponential_size_policy</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link6" id="link6">Protected Methods</a></h2>
+
+ <h3><a name="link7" id="link7">Size methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+ get_nearest_larger_size
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Given a size <span class="c1"><tt>size</tt></span>,
+ returns a size that is larger.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+ get_nearest_smaller_size
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Given a size <span class="c1"><tt>size</tt></span>,
+ returns a size that is smaller.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_load_check_resize_trigger.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_load_check_resize_trigger.html
new file mode 100644
index 0000000..0013e01
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_load_check_resize_trigger.html
@@ -0,0 +1,583 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>hash_load_check_resize_trigger Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>hash_load_check_resize_trigger</tt> Interface</h1>
+
+ <p>A resize trigger policy based on a load check. It keeps the
+ load factor between some load factors load_min and
+ load_max.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="External_Load_Access1313998607" id=
+"External_Load_Access1313998607"><b>bool</b> External_Load_Access </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Specifies whether the load factor can be accessed
+ externally. The two options have different trade-offs in
+ terms of flexibility, genericity, and encapsulation.</p>
+ </td>
+
+ <td><tt><b>false</b></tt></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+
+ <td>size_t</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="external_load_access3976598639" id=
+"external_load_access3976598639">external_load_access</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Indicates whether loads can be accessed externally</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+ <h3><a name="link5" id="link5">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ hash_load_check_resize_trigger
+ (float load_min = 0.125,
+ float load_max = 0.5)
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor, or constructor taking
+ <span class="c1"><tt>load_min</tt></span> and
+ <span class="c1"><tt>load_max</tt></span> load factors
+ between which this policy will keep the actual load.</p>
+
+ <p>It is the responsibility of the user to ensure that
+ <span class="c1"><tt>load_min</tt></span> is smaller than
+ <span class="c1"><tt>load_max</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class=
+"c2"><tt>hash_load_check_resize_trigger</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ <b>virtual</b>
+ ~hash_load_check_resize_trigger
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link6" id="link6">Load Access Methods</a></h3>
+
+ <p>These methods are only available if the external access
+ parameter is set.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> std::pair&lt;float, float&gt;
+ get_loads
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a pair of the minimal and maximal loads,
+ respectively.</p>
+
+ <p>Calling this method will not compile when <a href=
+ "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+ == <tt><b>false</b></tt>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ set_loads
+ (std::pair&lt;float, float&gt; load_pair)
+</pre>
+ </td>
+
+ <td>
+ <p>Sets the loads through a pair of the minimal and
+ maximal loads, respectively.</p>
+
+ <p>Calling this method resizes the container, and might
+ throw an exception. It is the responsibility of the user
+ to pass appropriate loads to this function. Calling this
+ method will not compile when <a href=
+ "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+ == <tt><b>false</b></tt>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link7" id="link7">Protected Methods</a></h2>
+
+ <h3><a name="link8" id="link8">Insert Search
+ Notifications.</a></h3>
+
+ <p>Notifications called during an insert operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link9" id="link9">Find Search
+ Notifications.</a></h3>
+
+ <p>Notifications called during a find operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link10" id="link10">Erase Search
+ Notifications.</a></h3>
+
+ <p>Notifications called during an insert operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link11" id="link11">Content Change
+ Notifications.</a></h3>
+
+ <p>Notifications called when the content of the table changes
+ in a way that can affect the resize policy.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_inserted
+ (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies an element was inserted. the total number of
+ entries in the table is <span class=
+ "c1"><tt>num_entries</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erased
+ (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies an element was erased.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_cleared
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was cleared.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link12" id="link12">Size Change
+ Notifications.</a></h3>
+
+ <p>Notifications called when the table changes size.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was resized as a result of this
+ object's signifying that a resize is needed.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_externally_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was resized externally.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link13" id="link13">Queries</a></h3>
+
+ <p>Called to query whether/how to resize.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ is_resize_needed
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Queries whether a resize is needed.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ is_grow_needed
+ (<a href="#size_type55424436"><tt>size_type</tt></a> size,
+ <a href=
+"#size_type55424436"><tt>size_type</tt></a> num_entries) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Queries whether a grow is needed.</p>
+
+ <p>This method is called only if this object indicated
+ resize is needed. The actual <span class=
+ "c1"><tt>size</tt></span> of the table is <span class=
+ "c1"><tt>size</tt></span>, and the number of entries in
+ it is <span class="c1"><tt>num_entries</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link14" id="link14">Private Methods</a></h2>
+
+ <h3><a name="link15" id="link15">Overrides</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <b>void</b>
+ do_resize
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Resizes to <span class=
+ "c1"><tt>new_size</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_policy_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_policy_cd.png
new file mode 100644
index 0000000..f3122a1
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_policy_cd.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_prime_size_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_prime_size_policy.html
new file mode 100644
index 0000000..cf67dab
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_prime_size_policy.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>hash_prime_size_policy Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>hash_prime_size_policy</tt> Interface</h1>
+
+ <p>A size policy whose sequence of sizes form a
+ nearly-exponential sequence of primes.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+ <h3><a name="link4" id="link4">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ hash_prime_size_policy
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> start_size = 8)
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor, or constructor taking a
+ <span class="c1"><tt>start_size</tt></span> The policy
+ will use the sequence of sizes approximately <span class=
+ "c1"><tt>start_size</tt></span>, <span class=
+ "c1"><tt>start_size</tt></span> * 2, <span class=
+ "c1"><tt>start_size</tt></span> * 2^2, ...</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ swap
+ (<span class=
+"c2"><tt>hash_prime_size_policy</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Size methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+ get_nearest_larger_size
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Given a size <span class="c1"><tt>size</tt></span>,
+ returns a size that is larger.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+ get_nearest_smaller_size
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Given a size <span class="c1"><tt>size</tt></span>,
+ returns a size that is smaller.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html
new file mode 100644
index 0000000..073c84c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Text Locality of Reference Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Erase Memory-Use Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of uniform i.i.d. integer keys
+ into a container, then erases all keys except one. It measures
+ the final size of the container.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc"><tt>hash_random_int_erase_mem_usage.cc</tt></a>
+ 2000 2000 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks how containers adjust internally as their
+ logical size decreases (see <a href="motivation.html#assoc_ers_methods">Motivation::Associative
+ Containers::Slightly Different Methods::Methods Related to
+ Erase</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NHG">NHG</a>, <a href="#NHM">NHM</a> and
+ <a href="#NHL">NHL</a> show the results for the native and
+ collision-chaining types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a> and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_hash_random_int_erase_mem_usage_test">
+<div id="NHG_assoc">
+<div id="NHG_Native_456_collision-chaing_456_and_probing_456_hash_random_int_erase_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="hash_random_int_erase_mem_usage_test_gcc.png" alt="no image" /></a></h6>NHG: Native, collision-chaing, and probing, hash random int erase test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_set_ncah-
+<tt>std::tr1::unordered_set</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_hash_random_int_erase_mem_usage_test">
+<div id="NHM_assoc">
+<div id="NHM_Native_456_collision-chaing_456_and_probing_456_hash_random_int_erase_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="hash_random_int_erase_mem_usage_test_msvc.png" alt="no image" /></a></h6>NHM: Native, collision-chaing, and probing, hash random int erase test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_set_ncah-
+<tt>stdext::hash_set</tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_hash_random_int_erase_mem_usage_test">
+<div id="NHM_assoc">
+<div id="NHM_Native_456_collision-chaing_456_and_probing_456_hash_random_int_erase_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="hash_random_int_erase_mem_usage_test_msvc.png" alt="no image" /></a></h6>NHM: Native, collision-chaing, and probing, hash random int erase test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_set_ncah-
+<tt>stdext::hash_set</tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_hash_random_int_erase_mem_usage_test">
+<div id="NHL_assoc">
+<div id="NHL_Native_456_collision-chaing_456_and_probing_456_hash_random_int_erase_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="hash_random_int_erase_mem_usage_test_local.png" alt="no image" /></a></h6>NHL: Native, collision-chaing, and probing, hash random int erase test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>STL hash-based containers act very differently than trees in
+ this respect. When erasing numerous keys from an STL
+ associative-container, the resulting memory user varies greatly
+ depending on whether the container is tree-based or hash-based.
+ As noted in <a href="motivation.html#assoc_methods">Motivation::Choice of
+ Methods</a> , this is a fundamental consequence of the STL's
+ associative containers' interface, it is not due to a specific
+ implementation.</p>
+<p>(See <a href="priority_queue_text_pop_mem_usage_test.html">Priority Queue
+ Text <tt>pop</tt> Memory Use Test</a> for a similar phenomenon
+ regarding priority queues.)</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png
new file mode 100644
index 0000000..c552506a
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png
new file mode 100644
index 0000000..dbd3ee9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png
new file mode 100644
index 0000000..8c23d46
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html
new file mode 100644
index 0000000..7e7f208
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html
@@ -0,0 +1,247 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash Random Int Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Random-Integer <tt>find</tt> Find Timing
+ Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with uniform i.i.d.
+ integer keys into a container, then performs a series of finds
+ using <tt>find</tt>. It measures the average time
+ for<tt>find</tt> as a function of the number of values
+ inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/random_int_find_timing.cc"><tt>random_int_find_timing_test</tt></a>
+ 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ hash-tables (see <a href="hash_based_containers.html">Design::Associative
+ Containers::Associative Containers::Hash-Based Containers</a>),
+ range-hashing functions, and trigger policies (see <a href="hash_based_containers.html#hash_policies">Design::Associative
+ Containers::Hash-Based Containers::Hash Policies</a> and
+ <a href="hash_based_containers.html#resize_policies">Design::Associative
+ Containers::Hash-Based Containers::Resize Policies</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NCCG">NCCG</a>, <a href="#NCCM">NCCM</a>,
+ and <a href="#NCCL">NCCL</a> show the results for the native
+ and collision-chaining types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NGPG">NGPG</a>, <a href="#NGPM">NGPM</a>, and <a href="#NGPL">NGPL</a> show the results
+ for the native and probing types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>
+ respectively.</p>
+<div id="NCCG_res_div">
+<div id="NCCG_gcc">
+<div id="NCCG_cc_hash_random_int_find_timing_test">
+<div id="NCCG_assoc">
+<div id="NCCG_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCG" id="NCCG"><img src="cc_hash_random_int_find_timing_test_gcc.png" alt="no image" /></a></h6>NCCG: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCM_res_div">
+<div id="NCCM_msvc">
+<div id="NCCM_cc_hash_random_int_find_timing_test">
+<div id="NCCM_assoc">
+<div id="NCCM_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCM" id="NCCM"><img src="cc_hash_random_int_find_timing_test_msvc.png" alt="no image" /></a></h6>NCCM: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCL_res_div">
+<div id="NCCL_local">
+<div id="NCCL_cc_hash_random_int_find_timing_test">
+<div id="NCCL_assoc">
+<div id="NCCL_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCL" id= "NCCL"><img src="cc_hash_random_int_find_timing_test_local.png" alt="no image" /></a></h6>NCCL: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPG_res_div">
+<div id="NGPG_gcc">
+<div id="NGPG_gp_hash_random_int_find_timing_test">
+<div id="NGPG_assoc">
+<div id="NGPG_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPG" id="NGPG"><img src="gp_hash_random_int_find_timing_test_gcc.png" alt="no image" /></a></h6>NGPG: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPM_res_div">
+<div id="NGPM_msvc">
+<div id="NGPM_gp_hash_random_int_find_timing_test">
+<div id="NGPM_assoc">
+<div id="NGPM_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPM" id="NGPM"><img src="gp_hash_random_int_find_timing_test_msvc.png" alt="no image" /></a></h6>NGPM: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPL_res_div">
+<div id="NGPL_local">
+<div id="NGPL_gp_hash_random_int_find_timing_test">
+<div id="NGPL_assoc">
+<div id="NGPL_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPL" id= "NGPL"><img src="gp_hash_random_int_find_timing_test_local.png" alt="no image" /></a></h6>NGPL: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this setting, the choice of underlying hash-table (see
+ <a href="hash_based_containers.html">Design::Associative
+ Containers::Hash-Based Containers</a> ) affects performance
+ most, then the range-hashing scheme (See <a href="hash_based_containers.html#hash_policies">Design::Associative
+ Containers::Hash-Based Containers::Hash Policies</a> ), and,
+ only finally, other policies.</p>
+<p>When comparing Figures <a href="#NCCG">NCCG</a> and <a href="#NCCM">NCCM</a> to <a href="#NGPG">NGPG</a> and <a href="#NGPM">NGPM</a> , respectively, it is apparent that the
+ probing containers are less efficient than the
+ collision-chaining containers (both
+ <tt>std::tr1::unordered_map</tt> and <tt>stdext::hash_map</tt>
+ use collision-chaining) in this case.</p>
+<p>( <a href="hash_random_int_subscript_insert_timing_test.html">Hash-Based
+ Random-Integer Subscript Insert Timing Test</a> shows a
+ different case, where the situation is reversed; <a href="assoc_performance_tests.html#hash_based_types">Observations::Hash-Based
+ Container Types</a> discusses some further considerations.)</p>
+<p>Within each type of hash-table, the range-hashing scheme
+ affects performance more than other policies; <a href="hash_text_find_find_timing_test.html#observations">Hash-Based
+ Text <tt>find</tt> Find Timing Test::Observations</a> discusses
+ this. In Figures <a href="#NCCG">NCCG</a> , <a href="#NCCM">NCCM</a> , <a href="#NGPG">NGPG</a> , and <a href="#NGPM">NGPM</a> , it should be noted that
+ <tt>std::tr1::unordered_map</tt> and <tt>stdext::hash_map</tt>
+ are hard-wired currently to mod-based and mask-based schemes,
+ respectively.</p>
+<p><a href="assoc_performance_tests.html#hash_based_types">Observations::Hash-Based
+ Container Types</a> summarizes some observations on hash-based
+ containers; <a href="assoc_performance_tests.html#hash_based_policies">Observations::Hash-Based
+ Containers' Policies</a> summarizes some observations on
+ hash-based containers' policies.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html
new file mode 100644
index 0000000..adee8f0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html
@@ -0,0 +1,220 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash Random Int Subscript Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Random-Integer <tt><b>operator</b>[]</tt>
+ FindTiming Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with uniform i.i.d.
+ integer keys into a container, then performs a series of finds
+ using <tt><b>operator</b>[]</tt>. It measures the average time
+ for <tt><b>operator</b>[]</tt> as a function of the number of
+ values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc"><tt>hash_random_int_subscript_find_timing_test</tt></a>
+ 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ hash-tables (see <a href="hash_based_containers.html">Design::Hash-Based Containers</a>
+ ), range-hashing functions, and trigger policies (see <a href="hash_based_containers.html#hash_policies">Design::Hash-Based
+ Containers::Hash Policies</a> and <a href="hash_based_containers.html#resize_policies">Design::Hash-Based
+ Containers::Resize Policies</a> ).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NCCG">NCCG</a>, <a href="#NCCM">NCCM</a>,
+ and <a href="#NCCL">NCCL</a> show the results for the native
+ and collision-chaining types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NGPG">NGPG</a>, <a href="#NGPM">NGPM</a>, and <a href="#NGPL">NGPL</a> show the results
+ for the native and probing types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NCCG_res_div">
+<div id="NCCG_gcc">
+<div id="NCCG_cc_hash_random_int_subscript_timing_test_find">
+<div id="NCCG_assoc">
+<div id="NCCG_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCG" id="NCCG"><img src="cc_hash_random_int_subscript_timing_test_find_gcc.png" alt="no image" /></a></h6>NCCG: Native and collision-chaining hash random int find timing test using <tt><b>operator</b></tt>[] - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCM_res_div">
+<div id="NCCM_msvc">
+<div id="NCCM_cc_hash_random_int_subscript_timing_test_find">
+<div id="NCCM_assoc">
+<div id="NCCM_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCM" id="NCCM"><img src="cc_hash_random_int_subscript_timing_test_find_msvc.png" alt="no image" /></a></h6>NCCM: Native and collision-chaining hash random int find timing test using <tt><b>operator</b></tt>[] - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCL_res_div">
+<div id="NCCL_local">
+<div id="NCCL_cc_hash_random_int_subscript_timing_test_find">
+<div id="NCCL_assoc">
+<div id="NCCL_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCL" id= "NCCL"><img src="cc_hash_random_int_subscript_timing_test_find_local.png" alt="no image" /></a></h6>NCCL: Native and collision-chaining hash random int find timing test using <tt><b>operator</b></tt>[] - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPG_res_div">
+<div id="NGPG_gcc">
+<div id="NGPG_gp_hash_random_int_subscript_timing_test_find">
+<div id="NGPG_assoc">
+<div id="NGPG_Native_and_probing_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPG" id="NGPG"><img src="gp_hash_random_int_subscript_timing_test_find_gcc.png" alt="no image" /></a></h6>NGPG: Native and probing hash random int find timing test using <tt><b>operator</b></tt>[] - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPM_res_div">
+<div id="NGPM_msvc">
+<div id="NGPM_gp_hash_random_int_subscript_timing_test_find">
+<div id="NGPM_assoc">
+<div id="NGPM_Native_and_probing_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPM" id="NGPM"><img src="gp_hash_random_int_subscript_timing_test_find_msvc.png" alt="no image" /></a></h6>NGPM: Native and probing hash random int find timing test using <tt><b>operator</b></tt>[] - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPL_res_div">
+<div id="NGPL_local">
+<div id="NGPL_gp_hash_random_int_subscript_timing_test_find">
+<div id="NGPL_assoc">
+<div id="NGPL_Native_and_probing_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPL" id= "NGPL"><img src="gp_hash_random_int_subscript_timing_test_find_local.png" alt="no image" /></a></h6>NGPL: Native and probing hash random int find timing test using <tt><b>operator</b></tt>[] - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>This test shows similar results to <a href="hash_random_int_find_find_timing_test.html">Hash-Based
+ Random-Integer <tt>find</tt> Find Timing Test</a> .</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html
new file mode 100644
index 0000000..37a8644
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html
@@ -0,0 +1,365 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash Random Int Subscript Insert Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Random-Integer <tt><b>operator</b>[]</tt> Insert
+ Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with uniform i.i.d.
+ integer keys into a container, using
+ <tt><b>operator</b>[]</tt>. It measures the average time for
+ <tt><b>operator</b>[]</tt> as a function of the number of
+ values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc"><tt>hash_random_int_subscript_insert_timing_test</tt></a>
+ 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test primarily checks the effect of different underlying
+ hash-tables (see <a href="hash_based_containers.html">Design::Associative
+ Containers::Associative Containers::Hash-Based
+ Containers</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NCCG">NCCG</a>, <a href="#NCCM">NCCM</a>,
+ and <a href="#NCCL">NCCL</a> show the results for the native
+ and collision-chaining types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NGPG">NGPG</a>, <a href="#NGPM">NGPM</a>, and <a href="#NGPL">NGPL</a> show the results
+ for the native and probing types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>
+ respectively; Figures <a href="#CCGPG">CCGPG</a>, <a href="#CCGPM">CCGPM</a>, and <a href="#CCGPL">CCGPL</a> compare the
+ results for the collision-chaining and probing types of
+ <tt>pb_ds</tt> only, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>
+ respectively.</p>
+<div id="NCCG_res_div">
+<div id="NCCG_gcc">
+<div id="NCCG_cc_hash_random_int_subscript_timing_test_insert">
+<div id="NCCG_assoc">
+<div id="NCCG_Native_and_collision-chaining_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCG" id="NCCG"><img src="cc_hash_random_int_subscript_timing_test_insert_gcc.png" alt="no image" /></a></h6>NCCG: Native and collision-chaining hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCM_res_div">
+<div id="NCCM_msvc">
+<div id="NCCM_cc_hash_random_int_subscript_timing_test_insert">
+<div id="NCCM_assoc">
+<div id="NCCM_Native_and_collision-chaining_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCM" id="NCCM"><img src="cc_hash_random_int_subscript_timing_test_insert_msvc.png" alt="no image" /></a></h6>NCCM: Native and collision-chaining hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCL_res_div">
+<div id="NCCL_local">
+<div id="NCCL_cc_hash_random_int_subscript_timing_test_insert">
+<div id="NCCL_assoc">
+<div id="NCCL_Native_and_collision-chaining_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCL" id= "NCCL"><img src="cc_hash_random_int_subscript_timing_test_insert_local.png" alt="no image" /></a></h6>NCCL: Native and collision-chaining hash random int insert timing test using <tt><b>operator</b></tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPG_res_div">
+<div id="NGPG_gcc">
+<div id="NGPG_gp_hash_random_int_subscript_timing_test_insert">
+<div id="NGPG_assoc">
+<div id="NGPG_Native_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPG" id="NGPG"><img src="gp_hash_random_int_subscript_timing_test_insert_gcc.png" alt="no image" /></a></h6>NGPG: Native and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPM_res_div">
+<div id="NGPM_msvc">
+<div id="NGPM_gp_hash_random_int_subscript_timing_test_insert">
+<div id="NGPM_assoc">
+<div id="NGPM_Native_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPM" id="NGPM"><img src="gp_hash_random_int_subscript_timing_test_insert_msvc.png" alt="no image" /></a></h6>NGPM: Native and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPL_res_div">
+<div id="NGPL_local">
+<div id="NGPL_gp_hash_random_int_subscript_timing_test_insert">
+<div id="NGPL_assoc">
+<div id="NGPL_Native_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPL" id= "NGPL"><img src="gp_hash_random_int_subscript_timing_test_insert_local.png" alt="no image" /></a></h6>NGPL: Native and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="CCGPG_res_div">
+<div id="CCGPG_gcc">
+<div id="CCGPG_ccgp_hash_random_int_subscript_timing_test_insert">
+<div id="CCGPG_assoc">
+<div id="CCGPG_Collision-chaining_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="CCGPG" id="CCGPG"><img src="ccgp_hash_random_int_subscript_timing_test_insert_gcc.png" alt="no image" /></a></h6>CCGPG: Collision-chaining and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="CCGPM_res_div">
+<div id="CCGPM_msvc">
+<div id="CCGPM_ccgp_hash_random_int_subscript_timing_test_insert">
+<div id="CCGPM_assoc">
+<div id="CCGPM_Collision-chaining_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="CCGPM" id="CCGPM"><img src="ccgp_hash_random_int_subscript_timing_test_insert_msvc.png" alt="no image" /></a></h6>CCGPM: Collision-chaining and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="CCGPL_res_div">
+<div id="CCGPL_local">
+<div id="CCGPL_ccgp_hash_random_int_subscript_timing_test_insert">
+<div id="CCGPL_assoc">
+<div id="CCGPL_Collision-chaining_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="CCGPL" id= "CCGPL"><img src="ccgp_hash_random_int_subscript_timing_test_insert_local.png" alt="no image" /></a></h6>CCGPL: Collision-chaining and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this setting, as in <a href="hash_text_find_find_timing_test.html">Hash-Based Text
+ <tt>find</tt> Find Timing Test</a> and <a href="hash_random_int_find_find_timing_test.html">Hash-Based
+ Random-Integer <tt>find</tt> Find Timing Test</a> , the choice
+ of underlying hash-table underlying hash-table (see <a href="hash_based_containers.html">Design::Associative
+ Containers::Hash-Based Containers</a> ) affects performance
+ most, then the range-hashing scheme (See <a href="hash_based_containers.html#hash_policies">Design::Associative
+ Containers::Hash-Based Containers::Hash Policies</a> ), and,
+ only finally, other policies.</p>
+<p>There are some differences, however:</p>
+<ol>
+<li>In this setting, probing tables function sometimes more
+ efficiently than collision-chaining tables (see Figures
+ <a href="#CCGPG">CCGPG</a> and <a href="#CCGPM">CCGPM</a> ).
+ This is explained shortly.</li>
+<li>The performance graphs have a "saw-tooth" shape. The
+ average insert time rises and falls. As values are inserted
+ into the container, the load factor grows larger. Eventually,
+ a resize occurs. The reallocations and rehashing are
+ relatively expensive. After this, the load factor is smaller
+ than before.</li>
+</ol>
+<p>Collision-chaining containers use indirection for greater
+ flexibility; probing containers store values contiguously, in
+ an array (see Figure <a href="motivation.html#different_underlying_data_structures">Motivation::Different
+ underlying data structures</a> A and B, respectively). It
+ follows that for simple data types, probing containers access
+ their allocator less frequently than collision-chaining
+ containers, (although they still have less efficient probing
+ sequences). This explains why some probing containers fare
+ better than collision-chaining containers in this case.</p>
+<p>Within each type of hash-table, the range-hashing scheme
+ affects performance more than other policies. This is similar
+ to the situation in <a href="hash_text_find_find_timing_test.html">Hash-Based Text
+ <tt>find</tt> Find Timing Test</a> and <a href="hash_random_int_find_find_timing_test.html">Hash-Based
+ Random-Integer <tt>find</tt> Find Timing Test</a>.
+ Unsurprisingly, however, containers with <u>lower</u>
+<i>alpha<sub>max</sub></i> perform <u>worse</u> in this case,
+ since more re-hashes are performed.</p>
+<p><a href="assoc_performance_tests.html#hash_based_types">Observations::Hash-Based
+ Container Types</a> summarizes some observations on hash-based
+ containers; <a href="assoc_performance_tests.html#hash_based_policies">Observations::Hash-Based
+ Containers' Policies</a> summarizes some observations on
+ hash-based containers' policies.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram.png
new file mode 100644
index 0000000..5c37407
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png
new file mode 100644
index 0000000..87763ca
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png
new file mode 100644
index 0000000..5e0d7f4
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_standard_resize_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_standard_resize_policy.html
new file mode 100644
index 0000000..70d6086
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_standard_resize_policy.html
@@ -0,0 +1,795 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>hash_standard_resize_policy Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>hash_standard_resize_policy</tt> Interface</h1>
+
+ <p>A resize policy which delegates operations to size and
+ trigger policies.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Size_Policy1072992366" id=
+"Size_Policy1072992366"><b>class</b> Size_Policy </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size policy type.</p>
+ </td>
+
+ <td><a href=
+ "hash_exponential_size_policy.html"><span class="c2"><tt>hash_exponential_size_policy</tt></span></a></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Trigger_Policy3611271815" id=
+"Trigger_Policy3611271815"><b>class</b> Trigger_Policy </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Trigger policy type.</p>
+ </td>
+
+ <td><a href=
+ "hash_load_check_resize_trigger.html"><span class=
+ "c2"><tt>hash_load_check_resize_trigger</tt></span></a></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="External_Size_Access1380482982" id=
+"External_Size_Access1380482982"><b>bool</b> External_Size_Access </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Indicates whether physical sizes can be accessed
+ externally.</p>
+ </td>
+
+ <td><tt><b>false</b></tt></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+
+ <td>size_t</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link4" id="link4">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="trigger_policy4019166151" id=
+"trigger_policy4019166151">trigger_policy</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Trigger policy type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_policy1385592366" id=
+"size_policy1385592366">size_policy</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size policy type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="external_size_access4043083014" id=
+"external_size_access4043083014">external_size_access</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"#External_Size_Access1380482982"><tt>External_Size_Access</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Indicates whether sizes can be accessed
+ externally.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link6" id="link6">Public Methods</a></h2>
+
+ <h3><a name="link7" id="link7">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ hash_standard_resize_policy
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ hash_standard_resize_policy
+ (<b>const</b> <a href=
+"#Size_Policy1072992366"><tt>Size_Policy</tt></a> &amp;r_size_policy)
+</pre>
+ </td>
+
+ <td>
+ <p>constructor taking some policies <span class=
+ "c1"><tt>r_size_policy</tt></span> will be copied by the
+ <a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
+ object of this object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ hash_standard_resize_policy
+ (<b>const</b> <a href=
+"#Size_Policy1072992366"><tt>Size_Policy</tt></a> &amp;r_size_policy,
+ <b>const</b> <a href=
+"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a> &amp;r_trigger_policy)
+</pre>
+ </td>
+
+ <td>
+ <p>constructor taking some policies. <span class=
+ "c1"><tt>r_size_policy</tt></span> will be copied by the
+ <a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
+ object of this object. <span class=
+ "c1"><tt>r_trigger_policy</tt></span> will be copied by
+ the <a href=
+ "#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
+ object of this object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~hash_standard_resize_policy
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ swap
+ (<span class=
+"c2"><tt>hash_standard_resize_policy</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link8" id="link8">Policy Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a> &amp;
+ get_size_policy
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#Size_Policy1072992366"><tt>Size_Policy</tt></a> object
+ used.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>const</b> <a href=
+"#Size_Policy1072992366"><tt>Size_Policy</tt></a> &amp;
+ get_size_policy
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access to the <a href=
+ "#Size_Policy1072992366"><tt>Size_Policy</tt></a> object
+ used.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a> &amp;
+ get_trigger_policy
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
+ object used.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>const</b> <a href=
+"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a> &amp;
+ get_trigger_policy
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
+ object used.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link9" id="link9">Size Access Methods</a></h3>
+
+ <p>These methods are available only if the external size
+ parameter indicates that external size access is allowed.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ get_actual_size
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the actual size of the container.</p>
+
+ <p>This method returns the number of entries (used and
+ unused) in the container. It is different from the
+ container's size method, which returns the number of used
+ entries. Calling this method will not compile when
+ <a href=
+ "#External_Size_Access1380482982"><tt>External_Size_Access</tt></a>
+ == <tt><b>false</b></tt>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ resize
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> suggested_new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Resizes the container to <span class=
+ "c1"><tt>suggested_new_size</tt></span>, a suggested size
+ (the actual size will be determined by the <a href=
+ "#Size_Policy1072992366"><tt>Size_Policy</tt></a>
+ object).</p>
+
+ <p>Calling this method will not compile when <a href=
+ "#External_Size_Access1380482982"><tt>External_Size_Access</tt></a>
+ == <tt><b>false</b></tt>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link10" id="link10">Protected Methods</a></h2>
+
+ <h3><a name="link11" id="link11">Insert Search
+ Notifications.</a></h3>
+
+ <p>Notifications called during an insert operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link12" id="link12">Find Search
+ Notifications.</a></h3>
+
+ <p>Notifications called during a find operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link13" id="link13">Erase Search
+ Notifications.</a></h3>
+
+ <p>Notifications called during an insert operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link14" id="link14">Content Change
+ Notifications</a></h3>
+
+ <p>Notifications called when the content of the table changes
+ in a way that can affect the resize policy.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_inserted
+ (<a href="#size_type55424436"><tt>size_type</tt></a> num_e)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies an element was inserted.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erased
+ (<a href="#size_type55424436"><tt>size_type</tt></a> num_e)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies an element was erased.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_cleared
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was cleared.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link15" id="link15">Size Change
+ Notifications</a></h3>
+
+ <p>Notifications called when the table changes size.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was resized to <span class=
+ "c1"><tt>new_size</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link16" id="link16">Queries</a></h3>
+
+ <p>Called to query whether/how to resize.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ is_resize_needed
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Queries whether a resize is needed.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+ get_new_size
+ (<a href="#size_type55424436"><tt>size_type</tt></a> size,
+ <a href=
+"#size_type55424436"><tt>size_type</tt></a> num_used_e) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Queries what the new <span class=
+ "c1"><tt>size</tt></span> should be, when the container
+ is resized naturally. The current size of the container
+ is <span class="c1"><tt>size</tt></span>, and the number
+ of used entries within the container is <span class=
+ "c1"><tt>num_used_e</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link17" id="link17">Private Methods</a></h2>
+
+ <h3><a name="link18" id="link18">Overrides</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <b>void</b>
+ do_resize
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Resizes to <span class=
+ "c1"><tt>new_size</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_text_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_text_find_find_timing_test.html
new file mode 100644
index 0000000..fafa245
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_text_find_find_timing_test.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash Text Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Text <tt>find</tt> Find Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+ a container, then performs a series of finds using
+ <tt>find</tt> . It measures the average time for <tt>find</tt>
+ as a function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/text_find_timing.cc"><tt>text_find_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different range-hashing
+ functions, trigger policies, and cache-hashing policies (see
+ <a href="hash_based_containers.html#hash_policies">Design::Associative
+ Containers::Associative Containers::Hash-Based Containers::Hash
+ Policies</a> and <a href="hash_based_containers.html#resize_policies">Design::Associative
+ Containers::Hash-Based Containers::Resize Policies</a> ).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NCCG">NCCG</a>, <a href="#NCCM">NCCM</a>
+ and <a href="#NCCL">NCCL</a> show the results for the native
+ and collision-chaining types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respetively.</p>
+<div id="NCCG_res_div">
+<div id="NCCG_gcc">
+<div id="NCCG_text_find_timing_test_hash">
+<div id="NCCG_assoc">
+<div id="NCCG_Native_and_collision-chaining_hash_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCG" id="NCCG"><img src="text_find_timing_test_hash_gcc.png" alt="no image" /></a></h6>NCCG: Native and collision-chaining hash text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_sth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCM_res_div">
+<div id="NCCM_msvc">
+<div id="NCCM_text_find_timing_test_hash">
+<div id="NCCM_assoc">
+<div id="NCCM_Native_and_collision-chaining_hash_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCM" id="NCCM"><img src="text_find_timing_test_hash_msvc.png" alt="no image" /></a></h6>NCCM: Native and collision-chaining hash text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_sth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCL_res_div">
+<div id="NCCL_local">
+<div id="NCCL_text_find_timing_test_hash">
+<div id="NCCL_assoc">
+<div id="NCCL_Native_and_collision-chaining_hash_text_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCL" id= "NCCL"><img src="text_find_timing_test_hash_local.png" alt="no image" /></a></h6>NCCL: Native and collision-chaining hash text find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this setting, the range-hashing scheme (See <a href="hash_based_containers.html#hash_policies">Design::Associative
+ Containers::Hash-Based Containers::Hash Policies</a> ) affects
+ performance more than other policies. As Figure <a href="#NCCG">NCCG</a> shows, containers using mod-based
+ range-hashing (including the native hash-based container, which
+ is currently hard-wired to this scheme) have lower performance
+ than those using mask-based range-hashing. A modulo-based
+ range-hashing scheme's main benefit is that it takes into
+ account all hash-value bits. Standard string hash-functions are
+ designed to create hash values that are nearly-uniform as is [
+ <a href="references.html#knuth98sorting">knuth98sorting</a>
+ ].</p>
+<p>Trigger policies (see <a href="hash_based_containers.html#resize_policies">Design::Associative
+ Containers::Hash-Based Containers::Resize Policies</a> ),
+ <i>i.e.</i> the load-checks constants, affect performance to a
+ lesser extent.</p>
+<p>Perhaps surprisingly, storing the hash value alongside each
+ entry affects performance only marginally, at least in
+ <tt>pb_ds</tt> 's implementation. (Unfortunately, it was not
+ possible to run the tests with <tt>std::tr1::unordered_map</tt>
+ 's <tt>cache_hash_code = <b>true</b></tt> , as it appeared to
+ malfuntion.)</p>
+<p><a href="assoc_performance_tests.html#hash_based_policies">Observations::Hash-Based
+ Containers' Policies</a> summarizes some observations on
+ hash-based containers' policies.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html
new file mode 100644
index 0000000..f7156b1
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash Skewed Distribution Memory Use Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Skewed-Distribution Random-Integer <tt>find</tt>
+ Find Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with a markedly
+ non-uniform i.i.d. integer keys into a container, then performs
+ a series of finds using <tt>find</tt> . It measures the average
+ time for <tt>find</tt> as a function of the number of values in
+ the containers. The keys are generated as follows. First, a
+ uniform integer is created; it is then shifted left 8 bits.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc"><tt>hash_zlob_random_int_find_timing_test</tt></a>
+ 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different range-hashing
+ functions and trigger policies (see <a href="hash_based_containers.html#hash_policies">Design::Associative
+ Containers::Hash-Based Containers::Hash Policies</a> and
+ <a href="hash_based_containers.html#resize_policies">Design::Associative
+ Containers::Hash-Based Containers::Resize Policies</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NHG">NHG</a>, <a href="#NHM">NHM</a>, and
+ <a href="#NHL">NHL</a> show the results for various hash-based
+ associative-containers in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_hash_zlob_random_int_find_timing_test">
+<div id="NHG_assoc">
+<div id="NHG_Skewed-distribution_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="hash_zlob_random_int_find_timing_test_gcc.png" alt="no image" /></a></h6>NHG: Skewed-distribution random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_hash_zlob_random_int_find_timing_test">
+<div id="NHM_assoc">
+<div id="NHM_Skewed-distribution_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="hash_zlob_random_int_find_timing_test_msvc.png" alt="no image" /></a></h6>NHM: Skewed-distribution random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_hash_zlob_random_int_find_timing_test">
+<div id="NHL_assoc">
+<div id="NHL_Skewed-distribution_random_int_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="hash_zlob_random_int_find_timing_test_local.png" alt="no image" /></a></h6>NHL: Skewed-distribution random int find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this setting, the keys' distribution is so skewed that
+ the unerlying hash-table type affects performance marginally.
+ (This is in contrast with <a href="hash_text_find_find_timing_test.html">Hash-Based Text
+ <tt>find</tt> Find Timing Test</a> , <a href="hash_random_int_find_find_timing_test.html">Hash-Based
+ Random-Integer <tt>find</tt> Find Timing Test</a> , <a href="hash_random_int_subscript_find_timing_test.html">Hash-Based
+ Random-Integer Subscript Find Timing Test</a> and <a href="hash_random_int_subscript_insert_timing_test.html">Hash-Based
+ Random-Integer Subscript Insert Timing Test</a> .)</p>
+<p>The range-hashing scheme affects performance dramatically. A
+ mask-based range-hashing scheme effectively maps all values
+ into the same bucket. Access degenerates into a search within
+ an unordered linked-list. In Figures <a href="#NHG">NHG</a> and
+ <a href="#NHM">NHM</a> , it should be noted that
+ <tt>std::tr1::unordered_map</tt> and <tt>stdext::hash_map</tt>
+ are hard-wired currently to mod-based and mask-based schemes,
+ respectively.</p>
+<p>When observing the settings of this test, it is apparent
+ that the keys' distribution is far from natural. One might ask
+ if the test is not contrived to show that, in some cases,
+ mod-based range hashing does better than mask-based range
+ hashing. This is, in fact just the case. We did not encounter a
+ more natural case in which mod-based range hashing is better.
+ In our opnion, real-life key distributions are handled better
+ with an appropriate hash function and a mask-based
+ range-hashing function. (<a href="../../../../testsuite/ext/pb_ds/example/hash_shift_mask.cc"><tt>shift_mask.cc</tt></a>
+ shows an example of handling this a-priori known skewed
+ distribution with a mask-based range-hashing function). If hash
+ performance is bad, a <i>&Chi;<sup>2</sup></i> test can be used
+ to check how to transform it into a more uniform
+ distribution.</p>
+<p>For this reason, <tt>pb_ds</tt>'s default range-hashing
+ function is mask-based.</p>
+<p><a href="assoc_performance_tests.html#hash_based_types">Observations::Hash-Based
+ Container Types</a> summarizes some observations on hash-based
+ containers; <a href="assoc_performance_tests.html#hash_based_policies">Observations::Hash-Based
+ Containers' Policies</a> summarizes some observations on
+ hash-based containers' policies.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png
new file mode 100644
index 0000000..8d170db
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png
new file mode 100644
index 0000000..0be2f00
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png
new file mode 100644
index 0000000..874e7a7
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/index.html b/libstdc++-v3/docs/html/ext/pb_ds/index.html
new file mode 100644
index 0000000..9288544
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/index.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Policy-Based Data Structures</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Policy-Based Data Structures</h1>
+
+ <h5>Ami Tavory and Vladimir Dreizin, IBM Haifa Research
+ Laboratories, and Benjamin Kosnik, Red Hat</h5>
+
+ <h5><a href="mailto:pbassoc@gmail.com">pbassoc@gmail.com</a></h5>
+
+ <p>This is a library of policy-based elementary
+ data structures: associative containers and priority queues. It
+ is designed for high-performance, flexibility, semantic safety,
+ and conformance to the corresponding containers in <tt>std</tt>
+ and std::tr1 (except for some points where it differs by
+ design).</p>
+
+ <p>The documentation is organized as follows:</p>
+
+ <ol>
+ <li>
+ <a href="introduction.html">Introductory</a>
+
+ <ol>
+ <li><a href="introduction.html">Introduction</a></li>
+
+ <li><a href="motivation.html">Motivation</a></li>
+
+ <li><a href="prerequisites.html">Usage
+ Prerequisites</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="interface.html">Interface</a>
+
+ <ol>
+ <li><a href="tutorial.html">Short Tutorial</a></li>
+
+ <li><a href="concepts.html">Concepts</a></li>
+
+ <li><a href="interface.html">Specifics</a</li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="design.html">Design</a>
+
+ <ol>
+ <li>
+ <a href="assoc_design.html">Associative Containers</a>
+
+ <ol>
+ <li><a href="ds_gen.html">Data-Structure
+ Genericity and Interface</a> </li>
+
+ <li><a href="tree_based_containers.html">Tree-Based
+ Containers</a></li>
+
+ <li><a href="trie_based_containers.html">Trie-Based
+ Containers</a></li>
+
+ <li><a href="hash_based_containers.html">Hash-Based
+ Containers</a></li>
+
+ <li><a href="lu_based_containers.html">List-Based
+ Containers</a> </li>
+ </ol>
+ </li>
+
+ <li><a href="pq_design.html">Priority Queues</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="examples.html">Examples</a>
+
+ <ol>
+ <li><a href="assoc_examples.html">Associative
+ Containers</a></li>
+
+ <li><a href="pq_examples.html">Priority Queues</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="tests.html">Tests</a>
+
+ <ol>
+ <li>
+ <a href="assoc_tests.html">Associative Containers</a>
+
+ <ol>
+ <li><a href="assoc_regression_tests.html">Regression
+ Tests</a></li>
+
+ <li><a href=
+ "assoc_performance_tests.html">Performance
+ Tests</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="pq_tests.html">Priority Queues</a>
+
+ <ol>
+ <li><a href="pq_regression_tests.html">Regression
+ Tests</a></li>
+
+ <li><a href="pq_performance_tests.html">Performance
+ Tests</a></li>
+ </ol>
+ </li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="misc.html">Misc.</a>
+
+ <ol>
+ <li><a href="acks.html">Acknowledgments</a></li>
+
+ <li><a href="contact.html">Contact</a></li>
+
+ <li><a href="disclaimer.html">Disclaimer and
+ Copyright</a></li>
+
+ <li><a href="references.html">References</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/insert_error.html b/libstdc++-v3/docs/html/ext/pb_ds/insert_error.html
new file mode 100644
index 0000000..f67160f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/insert_error.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+<title>insert_error Interface</title>
+<meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+</head>
+
+<body>
+<div id="page">
+<h1><tt>insert_error</tt> Interface</h1>
+
+<p>An entry cannot be inserted into a container object for logical
+reasons (not, e.g., if memory is unavailable, in which case the
+allocator's exception will be thrown).</p>
+
+ <p>This exception may be thrown, e.g., when a probe sequence in
+ a probing hash table does not encounter any free positions,
+ even though free positions are available.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/exception.hpp"><tt>exception.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="exceptions.html"><span class=
+"c2"><tt>insert_error</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram1.png b/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram1.png
new file mode 100644
index 0000000..f64764e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram1.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram2.png b/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram2.png
new file mode 100644
index 0000000..e464597
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram2.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram3.png b/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram3.png
new file mode 100644
index 0000000..5535c5f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram3.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/interface.html b/libstdc++-v3/docs/html/ext/pb_ds/interface.html
new file mode 100644
index 0000000..a48a8bb
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/interface.html
@@ -0,0 +1,446 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+<title>Interface</title>
+<meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+</head>
+
+<body>
+<div id="page">
+<h1>Interface Specifics</h1>
+
+<p>Following are the library's interface specifics. <a href=
+ "tutorial.html">Short Tutorial</a> is a short tutorial, and
+ <a href="concepts.html">Concepts</a> describes some
+ concepts.</p>
+ <hr />
+
+ <h2><a name="namespaces" id="namespaces">Namespace</a></h2>
+
+ <p>All code is enclosed in namespace <tt>pb_ds</tt>. Nested within
+ this is namespace <tt>detail</tt>, which contains the parts of this
+ library that are considered implementation details.</p>
+ <hr />
+
+ <h2><a name="containers" id="containers">Containers</a></h2>
+
+ <h3><a name="containers_assoc" id=
+ "containers_assoc">Associative Containers</a></h3>
+
+ <ol>
+ <li><a href=
+ "container_base.html"><tt>container_base</tt></a> -
+ abstract base class for associative containers.</li>
+
+ <li>Hash-based:
+
+ <ol>
+ <li><a href=
+ "basic_hash_table.html"><tt>basic_hash_table</tt></a>
+ - abstract base class for hash-based
+ containers</li>
+
+ <li><a href=
+ "cc_hash_table.html"><tt>cc_hash_table</tt></a>
+ - concrete collision-chaining hash-based
+ containers</li>
+
+ <li><a href=
+ "gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ - concrete (general) probing hash-based
+ containers</li>
+ </ol>
+ </li>
+
+ <li>Tree-based:
+
+ <ol>
+ <li><a href=
+ "basic_tree.html"><tt>basic_tree</tt></a>
+ - abstract base class for tree and trie based
+ containers</li>
+
+ <li><a href=
+ "tree.html"><tt>tree</tt></a>
+ - concrete base class for tree-based
+ containers</li>
+
+ <li><a href=
+ "trie.html"><tt>trie</tt></a>
+ - concrete base class for trie-based
+ containers</li>
+ </ol>
+ </li>
+
+ <li>List-based:
+
+ <ol>
+ <li><a href=
+ "list_update.html"><tt>list_update</tt></a> -
+ singly-linked list with update-policy container</li>
+ </ol>
+ </li>
+ </ol>
+
+ <h3><a name="containers_pq" id="containers_pq">Priority
+ Queues</a></h3>
+
+ <ol>
+ <li><a href="priority_queue.html"><tt>priority_queue</tt></a>
+ - priority queue</li>
+ </ol>
+ <hr />
+
+ <h2><a name="tag" id="tag">Container Tags and
+ Traits</a></h2>
+
+ <h3><a name="ds_ts" id="ds_ts">Container Tags</a></h3>
+
+ <h4><a name="ds_ts_common" id="ds_ts_common">Common</a></h4>
+
+ <ol>
+ <li><a href="container_tag.html"><tt>container_tag</tt></a> -
+ base class for data structure tags</li>
+ </ol>
+
+ <h4><a name="ds_ts_assoc" id=
+ "ds_ts_assoc">Associative-Containers</a></h4>
+
+ <ol>
+ <li><a href=
+ "associative_container_tag.html"><tt>associative_container_tag</tt></a> -
+ base class for associative-container data structure tags</li>
+
+ <li><a href=
+ "basic_hash_tag.html"><tt>basic_hash_tag</tt></a> -
+ base class for hash-based structure tags</li>
+
+ <li><a href="cc_hash_tag.html"><tt>cc_hash_tag</tt></a>
+ - collision-chaining hash structure tag</li>
+
+ <li><a href="gp_hash_tag.html"><tt>gp_hash_tag</tt></a>
+ - (general) probing hash structure tag</li>
+
+ <li><a href=
+ "basic_tree_tag.html"><tt>basic_tree_tag</tt></a>
+ - base class for tree-like structure tags</li>
+
+ <li><a href=
+ "tree_tag.html"><tt>tree_tag</tt></a> -
+ base class for tree structure tags</li>
+
+ <li><a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+ - red-black tree structure tag/li&gt;</li>
+
+ <li><a href=
+ "splay_tree_tag.html"><tt>splay_tree_tag</tt></a> -
+ splay tree structure tag</li>
+
+ <li><a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+ - ordered-vector tree structure tag</li>
+
+ <li><a href=
+ "trie_tag.html"><tt>trie_tag</tt></a> -
+ trie structure tag</li>
+
+ <li><a href=
+ "pat_trie_tag.html"><tt>pat_trie_tag</tt></a> -
+ PATRICIA trie structure tag</li>
+
+ <li><a href="list_update_tag.html"><tt>list_update_tag</tt></a> - list
+ (with updates) structure tag</li>
+ </ol>
+
+ <h4><a name="ds_ts_pq" id="ds_ts_pq">Priority-Queues</a></h4>
+
+ <ol>
+ <li><a href=
+ "priority_queue_tag.html"><tt>priority_queue_tag</tt></a> - base
+ class for priority-queue data structure tags</li>
+
+ <li><a href=
+ "pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a> -
+ pairing-heap structure tag.</li>
+
+ <li><a href=
+ "binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+ - binomial-heap structure tag</li>
+
+ <li><a href=
+ "rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+ - redundant-counter binomial-heap (<i>i.e.</i>, a heap where
+ binomial trees form a sequence that is similar to a
+ de-amortized bit-addition algorithm) structure tag</li>
+
+ <li><a href=
+ "binary_heap_tag.html"><tt>binary_heap_tag</tt></a> -
+ binary heap (based on an array or an array of nodes)
+ structure tag</li>
+
+ <li><a href=
+ "thin_heap_tag.html"><tt>thin_heap_tag</tt></a> - thin
+ heap (an alternative [<a href=
+ "references.html#kt99fat_heaps">kt99fat_heaps</a>] to
+ Fibonacci heap) data structure tag.</li>
+ </ol>
+
+ <h3><a name="ds_inv_tag" id="ds_inv_tag">Invalidation-Guarantee
+ Tags</a></h3>
+
+ <ol>
+ <li><a href=
+ "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a>
+ - weakest invalidation guarantee</li>
+
+ <li><a href=
+ "point_invalidation_guarantee.html"><tt>point_invalidation_guarantee</tt></a>
+ - stronger invalidation guarantee</li>
+
+ <li><a href=
+ "range_invalidation_guarantee.html"><tt>range_invalidation_guarantee</tt></a>
+ - strongest invalidation guarantee</li>
+ </ol>
+
+ <h3><a name="container_traits" id="container_traits">Container
+ Traits</a></h3>
+
+ <ol>
+ <li><a href="pq_container_traits.html"><tt>container_traits</tt></a> -
+ traits for determining underlying data structure
+ properties</li>
+ </ol>
+ <hr />
+
+ <h2><a name="ds_policy_classes" id=
+ "ds_policy_classes">Container Policy Classes</a></h2>
+
+ <h3><a name="hash_related_policies" id=
+ "hash_related_policies">Hash Policies</a></h3>
+
+ <h4>Hash and Probe Policies</h4>
+
+ <ol>
+ <li>Hash Functions:
+
+ <ol>
+ <li><a href="null_hash_fn.html"><tt>null_hash_fn</tt></a>
+ - type indicating one-step range-hashing</li>
+ </ol>
+ </li>
+
+ <li>Range-Hashing Functions:
+
+ <ol>
+ <li><a href="sample_range_hashing.html">Sample
+ range-hashing function</a> - interface required of a
+ range-hashing functor</li>
+
+ <li><a href=
+ "direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+ - (bit) mask-based range hashing functor</li>
+
+ <li><a href=
+ "direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+ - modulo-based range hashing functor</li>
+ </ol>
+ </li>
+
+ <li>Probe Functions:
+
+ <ol>
+ <li><a href="sample_probe_fn.html">Sample probe
+ function</a> - interface required of a probe functor</li>
+
+ <li><a href=
+ "null_probe_fn.html"><tt>null_probe_fn</tt></a> - type
+ indicating one-step ranged-probe</li>
+
+ <li><a href=
+ "linear_probe_fn.html"><tt>linear_probe_fn</tt></a> -
+ linear-probe functor</li>
+
+ <li><a href=
+ "quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>-
+ quadratic-probe functor</li>
+ </ol>
+ </li>
+
+ <li>Ranged-Hash Functions:
+
+ <ol>
+ <li><a href="sample_ranged_hash_fn.html">Sample
+ ranged-hash function</a> - interface required of a
+ ranged-hash functor</li>
+ </ol>
+ </li>
+
+ <li>Ranged-Probe Functions:
+
+ <ol>
+ <li><a href="sample_ranged_probe_fn.html">Sample
+ ranged-probe function</a> - interface required of a
+ ranged-probe functor</li>
+ </ol>
+ </li>
+ </ol>
+
+ <h4>Resize Policies</h4>
+ <ol>
+ <li>Resize Policies:
+
+ <ol>
+ <li><a href="sample_resize_policy.html">Sample resize
+ policy</a> - interface required of a resize policy</li>
+
+ <li><a href=
+ "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ - standard resize policy</li>
+ </ol>
+ </li>
+
+ <li>Size Policies:
+
+ <ol>
+ <li><a href="sample_size_policy.html">Sample size
+ policy</a> - interface required of a size policy</li>
+
+ <li><a href=
+ "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+ - exponential size policy (typically used with (bit) mask
+ range-hashing)</li>
+
+ <li><a href=
+ "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+ - prime size policy (typically used with modulo
+ range-hashing)</li>
+ </ol>
+ </li>
+
+ <li>Trigger Policies:
+
+ <ol>
+ <li><a href="sample_resize_trigger.html">Sample trigger
+ policy</a> - interface required of a trigger policy</li>
+
+ <li><a href=
+ "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ - trigger policy based on load checks</li>
+
+ <li><a href=
+ "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>
+ - trigger policy based on collision checks</li>
+ </ol>
+ </li>
+ </ol>
+
+ <h3><a name="tree_related_policies" id=
+ "tree_related_policies">Tree Policies</a></h3>
+
+ <h4>Tree Node-Update Policies</h4>
+
+
+<ol>
+<li><a href="sample_tree_node_update.html">Sample node
+updater policy</a> - interface required of a tree
+node-updating functor</li>
+
+<li><a href=
+ "null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+- null policy indicating no updates are required</li>
+
+<li><a href=
+ "tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+- updater enabling order statistics queries</li>
+</ol>
+
+<h3><a name="trie_related_policies" id=
+ "trie_related_policies">Trie Policies</a></h3>
+
+
+<h4>Trie Element-Access Traits</h4>
+
+ <ol>
+ <li><a href="sample_trie_e_access_traits.html">Sample
+ element-access traits</a> - interface required of
+ element-access traits</li>
+
+ <li><a href=
+ "string_trie_e_access_traits.html"><tt>string_trie_e_access_traits</tt></a>
+ - String element-access traits</li>
+ </ol>
+
+ <h4>Trie Node-Update Policies</h4>
+
+
+<ol>
+<li><a href="sample_trie_node_update.html">Sample node
+updater policy</a> - interface required of a trie node
+updater</li>
+
+<li><a href=
+ "null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+- null policy indicating no updates are required</li>
+
+<li><a href=
+ "trie_prefix_search_node_update.html"><tt>trie_prefix_search_node_update</tt></a>
+- updater enabling prefix searches</li>
+
+<li><a href=
+ "trie_order_statistics_node_update.html"><tt>trie_order_statistics_node_update</tt></a>
+- updater enabling order statistics queries</li>
+</ol>
+
+<h3><a name="list_related_policies" id=
+ "list_related_policies">List Policies</a></h3>
+
+<h4>List Update Policies</h4>
+
+
+ <ol>
+ <li><a href="sample_update_policy.html">Sample list update
+ policy</a> - interface required of a list update policy</li>
+
+ <li><a href=
+ "move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+ - move-to-front update algorithm</li>
+
+ <li><a href=
+ "counter_lu_policy.html"><tt>counter_lu_policy</tt></a> -
+ counter update algorithm</li>
+ </ol>
+
+ <h3><a name="ds_pol" id="ds_pol">Mapped-Type Policies</a></h3>
+
+
+ <ol>
+ <li><a href=
+ "null_mapped_type.html"><tt>null_mapped_type</tt></a> - data
+ policy indicating that a container is a "set"</li>
+ </ol>
+ <hr />
+
+ <h2><a name="exceptions" id="exceptions">Exceptions</a></h2>
+
+
+ <ol>
+ <li><a href="exceptions.html"><tt>container_error</tt></a>
+ - base class for all policy-based data structure errors</li>
+
+ <li><a href=
+ "insert_error.html"><tt>insert_error</tt></a></li>
+
+ <li><a href="join_error.html"><tt>join_error</tt></a></li>
+
+ <li><a href=
+ "resize_error.html"><tt>resize_error</tt></a></li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/introduction.html b/libstdc++-v3/docs/html/ext/pb_ds/introduction.html
new file mode 100644
index 0000000..b3ccbd7
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/introduction.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Introduction</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Introduction</h1>
+
+ <p>This section describes what problems the library attempts to
+ solve. <a href="motivation.html">Motivation</a> describes the
+ reasons we think it solves these problems better than similar
+ libraries.</p>
+
+ <h2><a name="assoc" id="assoc">Associative Containers</a></h2>
+
+ <ol>
+ <li>Associative containers depend on their policies to a very
+ large extent. Implicitly hard-wiring policies can hamper their
+ performance and limit their functionality. An efficient
+ hash-based container, for example, requires policies for
+ testing key equivalence, hashing keys, translating hash
+ values into positions within the hash table, and determining
+ when and how to resize the table internally. A tree-based
+ container can efficiently support order statistics,
+ <i>i.e.</i>, the ability to query what is the order of each
+ key within the sequence of keys in the container, but only if
+ the container is supplied with a policy to internally update
+ meta-data. There are many other such examples.<p></p></li>
+
+ <li>Ideally, all associative containers would share the same
+ interface. Unfortunately, underlying data structures and
+ mapping semantics differentiate between different containers.
+ For example, suppose one writes a generic function
+ manipulating an associative container <tt>Cntnr</tt>:
+ <pre>
+template&lt;typename Cntnr&gt;
+ void
+ some_op_sequence(Cntnr&amp; r_cnt)
+ {
+ ...
+ }
+</pre>
+
+then what can one assume about <tt>Cntnr</tt>? The answer
+varies according to its underlying data structure. If the
+underlying data structure of <tt>Cntnr</tt> is based on a tree or
+trie, then the order of elements is well defined; otherwise, it is
+not, in general. If the underlying data structure of <tt>Cntnr</tt>
+is based on a collision-chaining hash table, then modifying
+r_<tt>Cntnr</tt> will not invalidate its iterators' order; if the
+underlying data structure is a probing hash table, then this is not
+the case. If the underlying data structure is based on a tree or
+trie, then <tt>r_cnt</tt> can efficiently be split; otherwise, it
+cannot, in general. If the underlying data structure is a red-black
+tree, then splitting <tt>r_cnt</tt> is exception-free; if it is an
+ordered-vector tree, exceptions can be thrown.
+ <p></p></li>
+ </ol>
+
+ <h2><a name="pq" id="pq">Priority Queues</a></h2>
+
+ <p>Priority queues are useful when one needs to efficiently
+ access a minimum (or maximum) value as the set of values
+ changes.</p>
+
+ <ol>
+ <li>Most useful data structures for priority queues have a
+ relatively simple structure, as they are geared toward
+ relatively simple requirements. Unfortunately, these structures
+ do not support access to an arbitrary value, which turns out to
+ be necessary in many algorithms. Say, decreasing an arbitrary
+ value in a graph algorithm. Therefore, some extra mechanism is
+ necessary and must be invented for accessing arbitrary
+ values. There are at least two alternatives: embedding an
+ associative container in a priority queue, or allowing
+ cross-referencing through iterators. The first solution adds
+ significant overhead; the second solution requires a precise
+ definition of iterator invalidation. Which is the next
+ point...<p></p></li>
+
+ <li>Priority queues, like hash-based containers, store values in
+ an order that is meaningless and undefined externally. For
+ example, a <tt>push</tt> operation can internally reorganize the
+ values. Because of this characteristic, describing a priority
+ queues' iterator is difficult: on one hand, the values to which
+ iterators point can remain valid, but on the other, the logical
+ order of iterators can change unpredictably.<p></p></li>
+
+ <li>Roughly speaking, any element that is both inserted to a
+ priority queue (<i>e.g.</i>, through <tt>push</tt>) and removed
+ from it (<i>e.g.</i>, through <tt>pop</tt>), incurs a
+ logarithmic overhead (in the amortized sense). Different
+ underlying data structures place the actual cost differently:
+ some are optimized for amortized complexity, whereas others
+ guarantee that specific operations only have a constant
+ cost. One underlying data structure might be chosen if modifying
+ a value is frequent (Dijkstra's shortest-path algorithm),
+ whereas a different one might be chosen
+ otherwise. Unfortunately, an array-based binary heap - an
+ underlying data structure that optimizes (in the amortized
+ sense) <tt>push</tt> and <tt>pop</tt> operations, differs from
+ the others in terms of its invalidation guarantees. Other design
+ decisions also impact the cost and placement of the overhead, at
+ the expense of more difference in the the kinds of operations
+ that the underlying data structure can support. These
+ differences pose a challenge when creating a uniform interface
+ for priority queues.<p></p></li>
+ </ol>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_cd.png
new file mode 100644
index 0000000..1f9d124
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_cd.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_erase.png b/libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_erase.png
new file mode 100644
index 0000000..940a27f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_erase.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/join_error.html b/libstdc++-v3/docs/html/ext/pb_ds/join_error.html
new file mode 100644
index 0000000..3441e1f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/join_error.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+<title>join_error Interface</title>
+<meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+</head>
+
+<body>
+<div id="page">
+<h1><tt>join_error</tt> Interface</h1>
+
+<p>A join cannot be performed logical reasons (i.e., the ranges of the
+ two container objects
+ being joined
+ overlaps.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/exception.hpp"><tt>exception.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+<pre><a href="exceptions.html"><span class="c2"><tt>join_error</tt></span></a>
+</pre>
+ </td>
+
+<td>
+<p>public</p>
+</td>
+</tr>
+ </table>
+ </div>
+ </body>
+ </html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/linear_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/linear_probe_fn.html
new file mode 100644
index 0000000..2141c26
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/linear_probe_fn.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>linear_probe_fn Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>linear_probe_fn</tt> Interface</h1>
+
+ <p>A probe sequence policy using fixed increments.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+
+ <td>size_t</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+ <h3><a name="link5" id="link5">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class="c2"><tt>linear_probe_fn</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link6" id="link6">Protected Methods</a></h2>
+
+ <h3><a name="link7" id="link7">Offset Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ <b>operator</b>()
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <span class="c1"><tt>i</tt></span>-th
+ offset from the hash value.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/list_update.html b/libstdc++-v3/docs/html/ext/pb_ds/list_update.html
new file mode 100644
index 0000000..93785ac
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/list_update.html
@@ -0,0 +1,316 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>list_update Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>list_update</tt> Interface</h1>
+
+ <p>A list-update based associative container.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Eq_Fn60085" id="Eq_Fn60085"><b>class</b> Eq_Fn </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Equivalence functor.</p>
+ </td>
+
+ <td>
+ <pre>
+std::equal_to&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Update_Policy1671938590" id=
+"Update_Policy1671938590"><b>class</b> Update_Policy </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Update policy (determines when an element will be
+ moved to the front of the list.</p>
+ </td>
+
+ <td><a href="move_to_front_lu_policy.html"><span class=
+ "c2"><tt>move_to_front_lu_policy</tt></span></a></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>
+ <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link4" id="link4">Policy definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="eq_fn80245" id="eq_fn80245">eq_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Eq_Fn60085"><tt>Eq_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Equivalence functor type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="update_policy894603998" id=
+"update_policy894603998">update_policy</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Update_Policy1671938590"><tt>Update_Policy</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>List update policy type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+ type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ list_update
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ list_update
+ (It first_it,
+ It last_it)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of
+ value_types. The value_types between <span class=
+ "c1"><tt>first_it</tt></span> and <span class=
+ "c1"><tt>last_it</tt></span> will be inserted into the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ list_update
+ (<b>const</b> <span class=
+"c2"><tt>list_update</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~list_update
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<span class="c2"><tt>list_update</tt></span> &amp;
+ <b>operator</b>=
+ (<b>const</b> <span class=
+"c2"><tt>list_update</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Assignment operator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class="c2"><tt>list_update</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/list_update_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/list_update_tag.html
new file mode 100644
index 0000000..a35dc8c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/list_update_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>list_update_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>list_update_tag</tt> Interface</h1>
+
+ <p>List-update data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="associative_container_tag.html"><span class=
+"c2"><tt>associative_container_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/lu.png b/libstdc++-v3/docs/html/ext/pb_ds/lu.png
new file mode 100644
index 0000000..7c96dca
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/lu.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/lu_based_containers.html b/libstdc++-v3/docs/html/ext/pb_ds/lu_based_containers.html
new file mode 100644
index 0000000..c869343
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/lu_based_containers.html
@@ -0,0 +1,229 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>List-Based Containers</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>List-Update Design</h1>
+
+ <h2><a name="overview" id="overview">Overview</a></h2>
+
+ <p>The list-based container has the following declaration:</p>
+ <pre>
+<b>template</b>&lt;
+ <b>typename</b> Key,
+ <b>typename</b> Mapped,
+ <b>typename</b> Eq_Fn = std::equal_to&lt;Key&gt;,
+ <b>typename</b> Update_Policy = <a href=
+"move_to_front_lu_policy.html">move_to_front_lu_policy&lt;&gt;</a>,
+ <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href="list_update.html">list_update</a>;
+</pre>
+
+ <p>The parameters have the following meaning:</p>
+
+ <ol>
+ <li><tt>Key</tt> is the key type.</li>
+
+ <li><tt>Mapped</tt> is the mapped-policy, and is explained in
+ <a href="tutorial.html#assoc_ms">Tutorial::Associative
+ Containers::Associative Containers Others than Maps</a>.</li>
+
+ <li><tt>Eq_Fn</tt> is a key equivalence functor.</li>
+
+ <li><tt>Update_Policy</tt> is a policy updating positions in
+ the list based on access patterns. It is described in the
+ following subsection.</li>
+
+ <li><tt>Allocator</tt> is an allocator
+ type.</li>
+ </ol>
+
+ <p>A list-based associative container is a container that
+ stores elements in a linked-list. It does not order the
+ elements by any particular order related to the keys.
+ List-based containers are primarily useful for creating
+ "multimaps" (see <a href=
+ "motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Avoiding Multiple Keys</a> and <a href=
+ "tutorial.html#assoc_ms">Tutorial::Associative
+ Containers::Associative Containers Others than Maps</a>). In
+ fact, list-based containers are designed in <tt>pb_ds</tt>
+ expressly for this purpose. This is explained further in
+ <a href="#mmaps">Use for "Multimaps"</a>.</p>
+
+ <p>List-based containers might also be useful for some rare
+ cases, where a key is encapsulated to the extent that only
+ key-equivalence can be tested. Hash-based containers need to
+ know how to transform a key into a size type, and tree-based
+ containers need to know if some key is larger than another.
+ List-based associative containers, conversely, only need to
+ know if two keys are equivalent.</p>
+
+ <p>Since a list-based associative container does not order
+ elements by keys, is it possible to order the list in some
+ useful manner? Remarkably, many on-line competitive [<a href=
+ "references.html#motwani95random">motwani95random</a>]
+ algorithms exist for reordering lists to reflect access
+ prediction [<a href=
+ "references.html#andrew04mtf">andrew04mtf</a>].</p>
+
+ <h2><a name="list_updates" id="list_updates">List
+ Updates</a></h2>
+
+ <h3><a name="general" id="general">General Terms</a></h3>
+
+ <p>Figure <a href="#simple_list">A simple list</a> shows a
+ simple list of integer keys. If we search for the integer 6, we
+ are paying an overhead: the link with key 6 is only the fifth
+ link; if it were the first link, it could be accessed
+ faster.</p>
+
+ <h6 class="c1"><a name="simple_list" id="simple_list"><img src=
+ "simple_list.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">A simple list.</h6>
+
+ <p>List-update algorithms reorder lists as elements are
+ accessed. They try to determine, by the access history, which
+ keys to move to the front of the list. Some of these algorithms
+ require adding some metadata alongside each entry.</p>
+
+ <p>For example, Figure <a href="#lu">The counter algorithm</a>
+ -A shows the counter algorithm. Each node contains both a key
+ and a count metadata (shown in bold). When an element is
+ accessed (<i>e.g.</i> 6) its count is incremented, as shown in
+ Figure <a href="#lu">The counter algorithm</a> -B. If the count
+ reaches some predetermined value, say 10, as shown in Figure
+ <a href="#lu">The counter algorithm</a> -C, the count is set to
+ 0 and the node is moved to the front of the list, as in Figure
+ <a href="#lu">The counter algorithm</a> -D.</p>
+
+ <h6 class="c1"><a name="lu" id="lu"><img src="lu.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">The counter algorithm.</h6>
+
+ <h3><a name="imp_pb_ds" id="imp_pb_ds">Implementation</a></h3>
+
+ <p><tt>pb_ds</tt> allows instantiating lists with policies
+ implementing any algorithm moving nodes to the front of the
+ list (policies implementing algorithms interchanging nodes are
+ unsupported).</p>
+
+ <p>Associative containers based on lists are parametrized by a
+ <tt>Update_Policy</tt> parameter. This parameter defines the
+ type of metadata each node contains, how to create the
+ metadata, and how to decide, using this metadata, whether to
+ move a node to the front of the list. A list-based associative
+ container object derives (publicly) from its update policy.
+ Figure <a href="#update_policy_cd">A list and its update
+ policy</a> shows the scheme, as well as some predefined
+ policies (which are explained below).</p>
+
+ <h6 class="c1"><a name="update_policy_cd" id=
+ "update_policy_cd"><img src="update_policy_cd.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">A list and its update policy.</h6>
+
+ <p>An instantiation of <tt>Update_Policy</tt> must define
+ internally <tt>update_metadata</tt> as the metadata it
+ requires. Internally, each node of the list contains, besides
+ the usual key and data, an instance of <tt><b>typename</b>
+ Update_Policy::update_metadata</tt>.</p>
+
+ <p>An instantiation of <tt>Update_Policy</tt> must define
+ internally two operators:</p>
+ <pre>
+update_metadata
+<b>operator</b>()();
+
+<b>bool</b>
+<b>operator</b>()(update_metadata &amp;);
+</pre>
+
+ <p>The first is called by the container object, when creating a
+ new node, to create the node's metadata. The second is called
+ by the container object, when a node is accessed (<i>e.g.</i>,
+ when a find operation's key is equivalent to the key of the
+ node), to determine whether to move the node to the front of
+ the list.</p>
+
+ <p>The library contains two predefined implementations of
+ list-update policies [<a href=
+ "references.html#andrew04mtf">andrew04mtf</a>]. The first is
+ <a href=
+ "counter_lu_policy.html"><tt>counter_lu_policy</tt></a>, which
+ implements the counter algorithm described above. The second is
+ <a href=
+ "move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>,
+ which unconditionally move an accessed element to the front of
+ the list. The latter type is very useful in <tt>pb_ds</tt>,
+ since there is no need to associate metadata with each element
+ (this is explained further in <a href="#mmaps">Use for
+ "Multimaps"</a>).</p>
+
+ <h2><a name="mmaps" id="mmaps">Use for "Multimaps"</a></h2>
+
+ <p>In <tt>pb_ds</tt>, there are no equivalents for the STL's
+ multimaps and multisets; instead one uses an associative
+ container mapping primary keys to secondary keys (see <a href=
+ "motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Alternative to Multiple Equivalent Keys</a> and
+ <a href="tutorial.html#assoc_ms">Tutorial::Associative
+ Containers::Associative Containers Others than Maps</a>).</p>
+
+ <p>List-based containers are especially useful as associative
+ containers for secondary keys. In fact, they are implemented
+ here expressly for this purpose.</p>
+
+ <p>To begin with, these containers use very little per-entry
+ structure memory overhead, since they can be implemented as
+ singly-linked lists. (Arrays use even lower per-entry memory
+ overhead, but they are less flexible in moving around entries,
+ and have weaker invalidation guarantees).</p>
+
+ <p>More importantly, though, list-based containers use very
+ little per-container memory overhead. The memory overhead of an
+ empty list-based container is practically that of a pointer.
+ This is important for when they are used as secondary
+ associative-containers in situations where the average ratio of
+ secondary keys to primary keys is low (or even 1).</p>
+
+ <p>In order to reduce the per-container memory overhead as much
+ as possible, they are implemented as closely as possible to
+ singly-linked lists.</p>
+
+ <ol>
+ <li>List-based containers do not store internally the number
+ of values that they hold. This means that their <tt>size</tt>
+ method has linear complexity (just like <tt>std::list</tt>).
+ Note that finding the number of equivalent-key values in an
+ STL multimap also has linear complexity (because it must be
+ done, <i>e.g.</i>, via <tt>std::distance</tt> of the
+ multimap's <tt>equal_range</tt> method), but usually with
+ higher constants.</li>
+
+ <li>Most associative-container objects each hold a policy
+ object (<i>e.g.</i>, a hash-based container object holds a
+ hash functor). List-based containers, conversely, only have
+ class-wide policy objects.</li>
+ </ol>
+
+ <p>See also <a href=
+ "assoc_performance_tests.html#msc">Associative-Container
+ Performance Tests::Observations::Mapping-Semantics
+ Considerations</a>.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/misc.html b/libstdc++-v3/docs/html/ext/pb_ds/misc.html
new file mode 100644
index 0000000..01029e1
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/misc.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Misc.</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Misc.</h1>
+
+ <p><a href="acks.html" title="Acknowledgements">Acks</a>
+ contains acknowledgments; <a href="contact.html">Contact</a>
+ contains contact information;<a href=
+ "disclaimer.html">Disclaimer and Copyright</a> is a standard
+ disclaimer, and <a href="references.html">References</a>
+ contains references.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/motivation.html b/libstdc++-v3/docs/html/ext/pb_ds/motivation.html
new file mode 100644
index 0000000..420fc64
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/motivation.html
@@ -0,0 +1,993 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Motivation</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Motivation</h1>
+
+ <p>Many fine associative-container libraries were already
+ written, most notably, the STL's associative containers. Why
+ then write another library? This section shows some possible
+ advantages of this library, when considering the challenges in
+ <a href="introduction.html">Introduction</a>. Many of these
+ points stem from the fact that the STL introduced
+ associative-containers in a two-step process (first
+ standardizing tree-based containers, only then adding
+ hash-based containers, which are fundamentally different), did
+ not standardize priority queues as containers, and (in our
+ opinion) overloads the iterator concept.</p>
+
+ <h2><a name="assoc" id="assoc">Associative Containers</a></h2>
+
+ <h3><a name="assoc_policies" id="assoc_policies">More
+ Configuration Choices</a></h3>
+
+ <p>Associative containers require a relatively large number of
+ policies to function efficiently in various settings. In some
+ cases this is needed for making their common operations more
+ efficient, and in other cases this allows them to support a
+ larger set of operations</p>
+
+ <ol>
+ <li>Hash-based containers, for example, support look-up and
+ insertion methods (<i>e.g.</i>, <tt>find</tt> and
+ <tt>insert</tt>). In order to locate elements quickly, they
+ are supplied a hash functor, which instruct how to transform
+ a key object into some size type; <i>e.g.</i>, a hash functor
+ might transform <tt>"hello"</tt> into <tt>1123002298</tt>. A
+ hash table, though, requires transforming each key object
+ into some size-type type in some specific domain;
+ <i>e.g.</i>, a hash table with a 128-long table might
+ transform <tt>"hello"</tt> into position 63. The policy by
+ which the hash value is transformed into a position within
+ the table can dramatically affect performance (see <a href=
+ "hash_based_containers.html#hash_policies">Design::Associative
+ Containers::Hash-Based Containers::Hash Policies</a>).
+ Hash-based containers also do not resize naturally (as
+ opposed to tree-based containers, for example). The
+ appropriate resize policy is unfortunately intertwined with
+ the policy that transforms hash value into a position within
+ the table (see <a href=
+ "hash_based_containers.html#resize_policies">Design::Associative
+ Containers::Hash-Based Containers::Resize Policies</a>).
+
+ <p><a href=
+ "assoc_performance_tests.html#hash_based">Associative-Container
+ Performance Tests::Hash-Based Containers</a> quantifies
+ some of these points.</p>
+ </li>
+
+ <li>Tree-based containers, for example, also support look-up
+ and insertion methods, and are primarily useful when
+ maintaining order between elements is important. In some
+ cases, though, one can utilize their balancing algorithms for
+ completely different purposes.
+
+ <p>Figure <a href="#node_invariants">Metadata for
+ order-statistics and interval intersections</a>-A, for
+ example, shows a tree whose each node contains two entries:
+ a floating-point key, and some size-type <i>metadata</i>
+ (in bold beneath it) that is the number of nodes in the
+ sub-tree. (<i>E.g.</i>, the root has key 0.99, and has 5
+ nodes (including itself) in its sub-tree.) A container based
+ on this data structure can obviously answer efficiently
+ whether 0.3 is in the container object, but it can also
+ answer what is the order of 0.3 among all those in the
+ container object [<a href=
+ "references.html#clrs2001">clrs2001</a>] (see <a href=
+ "assoc_examples.html#tree_like_based">Associative Container
+ Examples::Tree-Like-Based Containers (Trees and
+ Tries)</a>).</p>
+
+ <p>As another example, Figure <a href=
+ "#node_invariants">Metadata for order-statistics and
+ interval intersections</a>-B shows a tree whose each node
+ contains two entries: a half-open geometric line interval,
+ and a number <i>metadata</i> (in bold beneath it) that is
+ the largest endpoint of all intervals in its sub-tree.
+ (<i>E.g.</i>, the root describes the interval <i>[20,
+ 36)</i>, and the largest endpoint in its sub-tree is 99.) A
+ container based on this data structure can obviously answer
+ efficiently whether <i>[3, 41)</i> is in the container
+ object, but it can also answer efficiently whether the
+ container object has intervals that intersect <i>[3,
+ 41)</i> (see <a href=
+ "assoc_examples.html#tree_like_based">Associative Container
+ Examples::Tree-Like-Based Containers (Trees and
+ Tries)</a>). These types of queries are very useful in
+ geometric algorithms and lease-management algorithms.</p>
+
+ <p>It is important to note, however, that as the trees are
+ modified, their internal structure changes. To maintain
+ these invariants, one must supply some policy that is aware
+ of these changes (see <a href=
+ "tree_based_containers.html#invariants">Design::Associative
+ Containers::Tree-Based Containers::Node Invariants</a>);
+ without this, it would be better to use a linked list (in
+ itself very efficient for these purposes).</p>
+
+ <p><a href=
+ "assoc_performance_tests.html#tree_like_based">Associative-Container
+ Performance Tests::Tree-Like-Based Containers</a>
+ quantifies some of these points.</p>
+ </li>
+ </ol>
+
+ <h6 class="c1"><a name="node_invariants" id=
+ "node_invariants"><img src="node_invariants.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Metadata for order-statistics and interval
+ intersections.</h6>
+
+ <h3><a name="assoc_ds_genericity" id="assoc_ds_genericity">More
+ Data Structures and Traits</a></h3>
+
+ <p>The STL contains associative containers based on red-black
+ trees and collision-chaining hash tables. These are obviously
+ very useful, but they are not ideal for all types of
+ settings.</p>
+
+ <p>Figure <a href=
+ "#different_underlying_data_structures">Different underlying
+ data structures</a> shows different underlying data structures
+ (the ones currently supported in <tt>pb_ds</tt>). A shows a
+ collision-chaining hash-table, B shows a probing hash-table, C
+ shows a red-black tree, D shows a splay tree, E shows a tree
+ based on an ordered vector(implicit in the order of the
+ elements), F shows a PATRICIA trie, and G shows a list-based
+ container with update policies.</p>
+
+ <p>Each of these data structures has some performance benefits,
+ in terms of speed, size or both (see <a href=
+ "assoc_performance_tests.html">Associative-Container
+ Performance Tests</a> and <a href=
+ "assoc_performance_tests.html#dss_family_choice">Associative-Container
+ Performance Tests::Observations::Underlying Data-Structure
+ Families</a>). For now, though, note that <i>e.g.</i>,
+ vector-based trees and probing hash tables manipulate memory
+ more efficiently than red-black trees and collision-chaining
+ hash tables, and that list-based associative containers are
+ very useful for constructing "multimaps" (see <a href=
+ "#assoc_mapping_semantics">Alternative to Multiple Equivalent
+ Keys</a>, <a href=
+ "assoc_performance_tests.html#multimaps">Associative Container
+ Performance Tests::Multimaps</a>, and <a href=
+ "assoc_performance_tests.html#msc">Associative Container
+ Performance Tests::Observations::Mapping-Semantics
+ Considerations</a>).</p>
+
+ <h6 class="c1"><a name="different_underlying_data_structures"
+ id="different_underlying_data_structures"><img src=
+ "different_underlying_dss.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Different underlying data structures.</h6>
+
+ <p>Now consider a function manipulating a generic associative
+ container, <i>e.g.</i>,</p>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> Cntnr&gt;
+<b>int</b>
+ some_op_sequence
+ (Cntnr &amp;r_cnt)
+{
+ ...
+}
+</pre>
+
+ <p>Ideally, the underlying data structure of <tt>Cntnr</tt>
+ would not affect what can be done with <tt>r_cnt</tt>.
+ Unfortunately, this is not the case.</p>
+
+ <p>For example, if <tt>Cntnr</tt> is <tt>std::map</tt>, then
+ the function can use <tt>std::for_each(r_cnt.find(foo),
+ r_cnt.find(bar), foobar)</tt> in order to apply <tt>foobar</tt>
+ to all elements between <tt>foo</tt> and <tt>bar</tt>. If
+ <tt>Cntnr</tt> is a hash-based container, then this call's
+ results are undefined.</p>
+
+ <p>Also, if <tt>Cntnr</tt> is tree-based, the type and object
+ of the comparison functor can be accessed. If <tt>Cntnr</tt> is
+ hash based, these queries are nonsensical.</p>
+
+ <p>There are various other differences based on the container's
+ underlying data structure. For one, they can be constructed by,
+ and queried for, different policies. Furthermore:</p>
+
+ <ol>
+ <li>Containers based on C, D, E and F store elements in a
+ meaningful order; the others store elements in a meaningless
+ (and probably time-varying) order. By implication, only
+ containers based on C, D, E and F can support erase
+ operations taking an iterator and returning an iterator to
+ the following element without performance loss (see <a href=
+ "#assoc_ers_methods">Slightly Different Methods::Methods
+ Related to Erase</a>).</li>
+
+ <li>Containers based on C, D, E, and F can be split and
+ joined efficiently, while the others cannot. Containers based
+ on C and D, furthermore, can guarantee that this is
+ exception-free; containers based on E cannot guarantee
+ this.</li>
+
+ <li>Containers based on all but E can guarantee that erasing
+ an element is exception free; containers based on E cannot
+ guarantee this. Containers based on all but B and E can
+ guarantee that modifying an object of their type does not
+ invalidate iterators or references to their elements, while
+ containers based on B and E cannot. Containers based on C, D,
+ and E can furthermore make a stronger guarantee, namely that
+ modifying an object of their type does not affect the order
+ of iterators.</li>
+ </ol>
+
+ <p>A unified tag and traits system (as used for the STL's
+ iterators, for example) can ease generic manipulation of
+ associative containers based on different underlying
+ data structures (see <a href=
+ "tutorial.html#assoc_ds_gen">Tutorial::Associative
+ Containers::Determining Containers' Attributes</a> and <a href=
+ "ds_gen.html#container_traits">Design::Associative
+ Containers::Data-Structure Genericity::Data-Structure Tags and
+ Traits</a>).</p>
+
+ <h3><a name="assoc_diff_it" id="assoc_diff_it">Differentiating
+ between Iterator Types</a></h3>
+
+ <p>Iterators are centric to the STL's design, because of the
+ container/algorithm/iterator decomposition that allows an
+ algorithm to operate on a range through iterators of some
+ sequence (<i>e.g.</i>, one originating from a container).
+ Iterators, then, are useful because they allow going over a
+ <u>sequence</u>. The STL also uses iterators for accessing a
+ <u>specific</u> element - <i>e.g.</i>, when an associative
+ container returns one through <tt>find</tt>. The STL, however,
+ consistently uses the same types of iterators for both
+ purposes: going over a range, and accessing a specific found
+ element. Before the introduction of hash-based containers to
+ the STL, this made sense (with the exception of priority
+ queues, which are discussed in <a href="#pq">Priority
+ Queues</a>).</p>
+
+ <p>Using the STL's associative containers together with
+ non-order-preserving associative containers (and also because
+ of priority-queues container), there is a possible need for
+ different types of iterators for self-organizing containers -
+ the iterator concept seems overloaded to mean two different
+ things (in some cases). The following subsections explain this;
+ <a href="tutorial.html#assoc_find_range">Tutorial::Associative
+ Containers::Point-Type and Range-Type Methods</a> explains an
+ alternative design which does not complicate the use of
+ order-preserving containers, but is better for unordered
+ containers; <a href=
+ "ds_gen.html#find_range">Design::Associative
+ Containers::Data-Structure Genericity::Point-Type and
+ Range-Type Methods</a> explains the design further.</p>
+
+ <h4><a name="assoc_find_it_range_it" id=
+ "assoc_find_it_range_it">Using Point-Type Iterators for
+ Range-Type Operations</a></h4>
+
+ <p>Suppose <tt>cntnr</tt> is some associative container, and
+ say <tt>c</tt> is an object of type <tt>cntnr</tt>. Then what
+ will be the outcome of</p>
+ <pre>
+std::for_each(c.find(1), c.find(5), foo);
+</pre>
+
+ <p>If <tt>cntnr</tt> is a tree-based container object, then an
+ in-order walk will apply <tt>foo</tt> to the relevant elements,
+ <i>e.g.</i>, as in Figure <a href="#range_it_in_hts">Range
+ iteration in different data structures</a> -A. If <tt>c</tt> is
+ a hash-based container, then the order of elements between any
+ two elements is undefined (and probably time-varying); there is
+ no guarantee that the elements traversed will coincide with the
+ <i>logical</i> elements between 1 and 5, <i>e.g.</i>, as in
+ Figure <a href="#range_it_in_hts">Range iteration in different
+ data structures</a>-B.</p>
+
+ <h6 class="c1"><a name="range_it_in_hts" id=
+ "range_it_in_hts"><img src="point_iterators_range_ops_1.png"
+ alt="no image" /></a></h6>
+
+ <h6 class="c1">Range iteration in different
+ data structures.</h6>
+
+ <p>In our opinion, this problem is not caused just because
+ red-black trees are order preserving while collision-chaining
+ hash tables are (generally) not - it is more fundamental. Most
+ of the STL's containers order sequences in a well-defined
+ manner that is determined by their <u>interface</u>: calling
+ <tt>insert</tt> on a tree-based container modifies its sequence
+ in a predictable way, as does calling <tt>push_back</tt> on a
+ list or a vector. Conversely, collision-chaining hash tables,
+ probing hash tables, priority queues, and list-based containers
+ (which are very useful for "multimaps") are self-organizing
+ data structures; the effect of each operation modifies their
+ sequences in a manner that is (practically) determined by their
+ <u>implementation</u>.</p>
+
+ <p>Consequently, applying an algorithm to a sequence obtained
+ from most containers <u>may or may not</u> make sense, but
+ applying it to a sub-sequence of a self-organizing container
+ <u>does not</u>.</p>
+
+ <h4><a name="assoc_range_it_for_find_it" id=
+ "assoc_range_it_for_find_it">The Cost of Enabling Range
+ Capabilities to Point-Type Iterators</a></h4>
+
+ <p>Suppose <tt>c</tt> is some collision-chaining hash-based
+ container object, and one calls <tt>c.find(3)</tt>. Then what
+ composes the returned iterator?</p>
+
+ <p>Figure <a href="#find_its_in_hash_tables">Point-type
+ iterators in hash tables</a>-A shows the simplest (and most
+ efficient) implementation of a collision-chaining hash table.
+ The little box marked <tt>point_iterator</tt> shows an object
+ that contains a pointer to the element's node. Note that this
+ "iterator" has no way to move to the next element (<i>i.e.</i>,
+ it cannot support <tt><b>operator</b>++</tt>). Conversely, the
+ little box marked <tt>iterator</tt> stores both a pointer to
+ the element, as well as some other information (<i>e.g.</i>,
+ the bucket number of the element). the second iterator, then,
+ is "heavier" than the first one- it requires more time and
+ space. If we were to use a different container to
+ cross-reference into this hash-table using these iterators - it
+ would take much more space. As noted in <a href=
+ "#assoc_find_it_range_it">Using Point-Type Iterators for
+ Range-Type Operations</a>, nothing much can be done by
+ incrementing these iterators, so why is this extra information
+ needed?</p>
+
+ <p>Alternatively, one might create a collision-chaining
+ hash-table where the lists might be linked, forming a
+ monolithic total-element list, as in Figure <a href=
+ "#find_its_in_hash_tables">Point-type iterators in hash
+ tables</a>-B (this seems similar to the Dinkumware design
+ [<a href="references.html#dinkumware_stl">dinkumware_stl</a>]).
+ Here the iterators are as light as can be, but the hash-table's
+ operations are more complicated.</p>
+
+ <h6 class="c1"><a name="find_its_in_hash_tables" id=
+ "find_its_in_hash_tables"><img src=
+ "point_iterators_range_ops_2.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Point-type iterators in hash tables.</h6>
+
+ <p>It should be noted that containers based on
+ collision-chaining hash-tables are not the only ones with this
+ type of behavior; many other self-organizing data structures
+ display it as well.</p>
+
+ <h4><a name="assoc_inv_guar" id="assoc_inv_guar">Invalidation
+ Guarantees</a></h4>
+
+ <p>Consider the following snippet:</p>
+ <pre>
+it = c.find(3);
+
+c.erase(5);
+</pre>
+
+ <p>Following the call to <tt>erase</tt>, what is the validity
+ of <tt>it</tt>: can it be de-referenced? can it be
+ incremented?</p>
+
+ <p>The answer depends on the underlying data structure of the
+ container. Figure <a href=
+ "#invalidation_guarantee_erase">Effect of erase in different
+ underlying data structures</a> shows three cases: A1 and A2
+ show a red-black tree; B1 and B2 show a probing hash-table; C1
+ and C2 show a collision-chaining hash table.</p>
+
+ <h6 class="c1"><a name="invalidation_guarantee_erase" id=
+ "invalidation_guarantee_erase"><img src=
+ "invalidation_guarantee_erase.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Effect of erase in different underlying
+ data structures.</h6>
+
+ <ol>
+ <li>Erasing 5 from A1 yields A2. Clearly, an iterator to 3
+ can be de-referenced and incremented. The sequence of
+ iterators changed, but in a way that is well-defined by the
+ <u>interface</u>.</li>
+
+ <li>Erasing 5 from B1 yields B2. Clearly, an iterator to 3 is
+ not valid at all - it cannot be de-referenced or incremented;
+ the order of iterators changed in a way that is (practically)
+ determined by the <u>implementation</u> and not by the
+ <u>interface</u>.</li>
+
+ <li>Erasing 5 from C1 yields C2. Here the situation is more
+ complicated. On the one hand, there is no problem in
+ de-referencing <tt>it</tt>. On the other hand, the order of
+ iterators changed in a way that is (practically) determined
+ by the <u>implementation</u> and not by the
+ <u>interface</u>.</li>
+ </ol>
+
+ <p>So in classic STL, it is not always possible to express
+ whether <tt>it</tt> is valid or not. This is true also for
+ <tt>insert</tt>, <i>e.g.</i>. Again, the iterator concept seems
+ overloaded.</p>
+
+ <h3><a name="assoc_methods" id="assoc_methods">Slightly
+ Different Methods</a></h3>
+
+ <p>[<a href="references.html#meyers02both">meyers02both</a>]
+ points out that a class's methods should comprise only
+ operations which depend on the class's internal structure;
+ other operations are best designed as external functions.
+ Possibly, therefore, the STL's associative containers lack some
+ useful methods, and provide some other methods which would be
+ better left out (<i>e.g.</i>, [<a href=
+ "references.html#sgi_stl">sgi_stl</a>] ).</p>
+
+ <h4><a name="assoc_ers_methods" id="assoc_ers_methods">Methods
+ Related to Erase</a></h4>
+
+ <ol>
+ <li>Order-preserving STL associative containers provide the
+ method
+ <pre>
+iterator
+ erase
+ (iterator it)
+</pre>which takes an iterator, erases the corresponding element,
+and returns an iterator to the following element. Also hash-based
+STL associative containers provide this method. This <u>seemingly
+increases</u> genericity between associative containers, since, <i>
+ e.g.</i>, it is possible to use
+ <pre>
+<b>typename</b> C::iterator it = c.begin();
+<b>typename</b> C::iterator e_it = c.end();
+
+<b>while</b>(it != e_it)
+ it = pred(*it)? c.erase(it) : ++it;
+</pre>in order to erase from a container object <tt>
+ c</tt> all element which match a predicate <tt>pred</tt>.
+ However, in a different sense this actually
+ <u>decreases</u> genericity: an integral implication of
+ this method is that tree-based associative containers'
+ memory use is linear in the total number of elements they
+ store, while hash-based containers' memory use is unbounded
+ in the total number of elements they store. Assume a
+ hash-based container is allowed to decrease its size when
+ an element is erased. Then the elements might be rehashed,
+ which means that there is no "next" element - it is simply
+ undefined. Consequently, it is possible to infer from the
+ fact that STL hash-based containers provide this method
+ that they cannot downsize when elements are erased
+ (<a href="assoc_performance_tests.html#hash_based">Performance
+ Tests::Hash-Based Container Tests</a> quantifies this.) As
+ a consequence, different code is needed to manipulate
+ different containers, assuming that memory should be
+ conserved. <tt>pb_ds</tt>'s non-order preserving
+ associative containers omit this method.
+ </li>
+
+ <li>All of <tt>pb_ds</tt>'s associative containers include a
+ conditional-erase method
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> Pred&gt;
+size_type
+ erase_if
+ (Pred pred)
+</pre>which erases all elements matching a predicate. This is
+probably the only way to ensure linear-time multiple-item erase
+which can actually downsize a container.
+ </li>
+
+ <li>STL associative containers provide methods for
+ multiple-item erase of the form
+ <pre>
+size_type
+ erase
+ (It b,
+ It e)
+</pre>erasing a range of elements given by a pair of iterators. For
+tree-based or trie-based containers, this can implemented more
+efficiently as a (small) sequence of split and join operations. For
+other, unordered, containers, this method isn't much better than an
+external loop. Moreover, if <tt>c</tt> is a hash-based container,
+then, <i>e.g.</i>, <tt>c.erase(c.find(2), c.find(5))</tt> is almost
+certain to do something different than erasing all elements whose
+keys are between 2 and 5, and is likely to produce other undefined
+behavior.
+ </li>
+ </ol>
+
+ <h4><a name="assoc_split_join_methods" id=
+ "assoc_split_join_methods">Methods Related to Split and
+ Join</a></h4>
+
+ <p>It is well-known that tree-based and trie-based container
+ objects can be efficiently split or joined [<a href=
+ "references.html#clrs2001">clrs2001</a>]. Externally splitting
+ or joining trees is super-linear, and, furthermore, can throw
+ exceptions. Split and join methods, consequently, seem good
+ choices for tree-based container methods, especially, since as
+ noted just before, they are efficient replacements for erasing
+ sub-sequences. <a href=
+ "assoc_performance_tests.html#tree_like_based">Performance
+ Tests::Tree-Like-Based Container Tests</a> quantifies this.</p>
+
+ <h4><a name="assoc_insert_methods" id=
+ "assoc_insert_methods">Methods Related to Insert</a></h4>
+
+ <p>STL associative containers provide methods of the form</p>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+size_type
+ insert
+ (It b,
+ It e);
+</pre>for inserting a range of elements given by a pair of
+iterators. At best, this can be implemented as an external loop,
+or, even more efficiently, as a join operation (for the case of
+tree-based or trie-based containers). Moreover, these methods seem
+similar to constructors taking a range given by a pair of
+iterators; the constructors, however, are transactional, whereas
+the insert methods are not; this is possibly confusing.
+
+ <h4><a name="assoc_equiv_comp_methods" id=
+ "assoc_equiv_comp_methods">Functions Related to
+ Comparison</a></h4>
+
+ <p>Associative containers are parametrized by policies
+ allowing to test key equivalence; <i>e.g.</i> a hash-based
+ container can do this through its equivalence functor, and a
+ tree-based container can do this through its comparison
+ functor. In addition, some STL associative containers have
+ global function operators, <i>e.g.</i>,
+ <tt><b>operator</b>==</tt> and <tt><b>operator</b>&lt;=</tt>,
+ that allow comparing entire associative containers.</p>
+
+ <p>In our opinion, these functions are better left out. To
+ begin with, they do not significantly improve over an external
+ loop. More importantly, however, they are possibly misleading -
+ <tt><b>operator</b>==</tt>, for example, usually checks for
+ equivalence, or interchangeability, but the associative
+ container cannot check for values' equivalence, only keys'
+ equivalence; also, are two containers considered equivalent if
+ they store the same values in different order? this is an
+ arbitrary decision.</p>
+
+ <h3><a name="assoc_mapping_semantics" id=
+ "assoc_mapping_semantics">Alternative to Multiple Equivalent
+ Keys</a></h3>
+
+ <p>Maps (or sets) allow mapping (or storing) unique-key values.
+ The STL, however, also supplies associative containers which
+ map (or store) multiple values with equivalent keys:
+ <tt>std::multimap</tt>, <tt>std::multiset</tt>,
+ <tt>std::tr1::unordered_multimap</tt>, and
+ <tt>unordered_multiset</tt>. We first discuss how these might
+ be used, then why we think it is best to avoid them.</p>
+
+ <p>Suppose one builds a simple bank-account application that
+ records for each client (identified by an <tt>std::string</tt>)
+ and account-id (marked by an <tt><b>unsigned long</b></tt>) -
+ the balance in the account (described by a
+ <tt><b>float</b></tt>). Suppose further that ordering this
+ information is not useful, so a hash-based container is
+ preferable to a tree based container. Then one can use</p>
+ <pre>
+std::tr1::unordered_map&lt;std::pair&lt;std::string, <b>unsigned long</b>&gt;, <b>float</b>, ...&gt;
+</pre>which <u>hashes every combination of client and
+account-id</u>. This might work well, except for the fact that it
+is now impossible to efficiently list all of the accounts of a
+specific client (this would practically require iterating over all
+entries). Instead, one can use
+ <pre>
+std::tr1::unordered_multimap&lt;std::pair&lt;std::string, <tt><b>unsigned long</b></tt>&gt;, <b>float</b>, ...&gt;
+</pre>which <u>hashes every client</u>, and <u>decides equivalence
+based on client</u> only. This will ensure that all accounts
+belonging to a specific user are stored consecutively.
+
+ <p>Also, suppose one wants an integers' priority queue
+ (<i>i.e.,</i> a container that supports <tt>push</tt>,
+ <tt>pop</tt>, and <tt>top</tt> operations, the last of which
+ returns the largest <tt><b>int</b></tt>) that also supports
+ operations such as <tt>find</tt> and <tt>lower_bound</tt>. A
+ reasonable solution is to build an adapter over
+ <tt>std::set&lt;<b>int</b>&gt;</tt>. In this adapter,
+ <i>e.g.</i>, <tt>push</tt> will just call the tree-based
+ associative container's <tt>insert</tt> method; <tt>pop</tt>
+ will call its <tt>end</tt> method, and use it to return the
+ preceding element (which must be the largest). Then this might
+ work well, except that the container object cannot hold
+ multiple instances of the same integer (<tt>push(4)</tt>,
+ <i>e.g.</i>, will be a no-op if <tt>4</tt> is already in the
+ container object). If multiple keys are necessary, then one
+ might build the adapter over an
+ <tt>std::multiset&lt;<b>int</b>&gt;</tt>.</p>
+
+ <p class="c1">STL non-unique-mapping containers, then, are
+ useful when (1) a key can be decomposed in to a primary key and
+ a secondary key, (2) a key is needed multiple times, or (3) any
+ combination of (1) and (2).</p>
+
+ <p>Figure <a href="#embedded_lists_1">Non-unique mapping
+ containers in the STL's design</a> shows how the STL's design
+ works internally; in this figure nodes shaded equally represent
+ equivalent-key values. Equivalent keys are stored consecutively
+ using the properties of the underlying data structure: binary
+ search trees (Figure <a href="#embedded_lists_1">Non-unique
+ mapping containers in the STL's design</a>-A) store
+ equivalent-key values consecutively (in the sense of an
+ in-order walk) naturally; collision-chaining hash tables
+ (Figure <a href="#embedded_lists_1">Non-unique mapping
+ containers in the STL's design</a>-B) store equivalent-key
+ values in the same bucket, the bucket can be arranged so that
+ equivalent-key values are consecutive.</p>
+
+ <h6 class="c1"><a name="embedded_lists_1" id=
+ "embedded_lists_1"><img src="embedded_lists_1.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Non-unique mapping containers in the STL's
+ design.</h6>
+
+ <p>Put differently, STL non-unique mapping
+ associative-containers are associative containers that map
+ primary keys to linked lists that are embedded into the
+ container. Figure <a href="#embedded_lists_2">Effect of
+ embedded lists in STL multimaps</a> shows again the two
+ containers from Figure <a href="#embedded_lists_1">Non-unique
+ mapping containers in the STL's design</a>, this time with the
+ embedded linked lists of the grayed nodes marked
+ explicitly.</p>
+
+ <h6 class="c1"><a name="embedded_lists_2" id=
+ "embedded_lists_2"><img src="embedded_lists_2.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Effect of embedded lists in STL multimaps.</h6>
+
+ <p>These embedded linked lists have several disadvantages.</p>
+
+ <ol>
+ <li>The underlying data structure embeds the linked lists
+ according to its own consideration, which means that the
+ search path for a value might include several different
+ equivalent-key values. For example, the search path for the
+ the black node in either of Figures <a href=
+ "#embedded_lists_1">Non-unique mapping containers in the
+ STL's design</a> A or B, includes more than a single gray
+ node.</li>
+
+ <li>The links of the linked lists are the underlying
+ data structures' nodes, which typically are quite structured.
+ <i>E.g.</i>, in the case of tree-based containers (Figure
+ <a href="#embedded_lists_2">Effect of embedded lists in STL
+ multimaps</a>-B), each "link" is actually a node with three
+ pointers (one to a parent and two to children), and a
+ relatively-complicated iteration algorithm. The linked lists,
+ therefore, can take up quite a lot of memory, and iterating
+ over all values equal to a given key (<i>e.g.</i>, through
+ the return value of the STL's <tt>equal_range</tt>) can be
+ expensive.</li>
+
+ <li>The primary key is stored multiply; this uses more
+ memory.</li>
+
+ <li>Finally, the interface of this design excludes several
+ useful underlying data structures. <i>E.g.</i>, of all the
+ unordered self-organizing data structures, practically only
+ collision-chaining hash tables can (efficiently) guarantee
+ that equivalent-key values are stored consecutively.</li>
+ </ol>
+
+ <p>The above reasons hold even when the ratio of secondary keys
+ to primary keys (or average number of identical keys) is small,
+ but when it is large, there are more severe problems:</p>
+
+ <ol>
+ <li>The underlying data structures order the links inside
+ each embedded linked-lists according to their internal
+ considerations, which effectively means that each of the
+ links is unordered. Irrespective of the underlying
+ data structure, searching for a specific value can degrade to
+ linear complexity.</li>
+
+ <li>Similarly to the above point, it is impossible to apply
+ to the secondary keys considerations that apply to primary
+ keys. For example, it is not possible to maintain secondary
+ keys by sorted order.</li>
+
+ <li>While the interface "understands" that all equivalent-key
+ values constitute a distinct list (<i>e.g.</i>, through
+ <tt>equal_range</tt>), the underlying data structure
+ typically does not. This means, <i>e.g.</i>, that operations
+ such as erasing from a tree-based container all values whose
+ keys are equivalent to a a given key can be super-linear in
+ the size of the tree; this is also true also for several
+ other operations that target a specific list.</li>
+ </ol>
+
+ <p>In <tt>pb_ds</tt>, therefore, all associative containers map
+ (or store) unique-key values. One can (1) map primary keys to
+ secondary associative-containers (<i>i.e.</i>, containers of
+ secondary keys) or non-associative containers (2) map identical
+ keys to a size-type representing the number of times they
+ occur, or (3) any combination of (1) and (2). Instead of
+ allowing multiple equivalent-key values, <tt>pb_ds</tt>
+ supplies associative containers based on underlying
+ data structures that are suitable as secondary
+ associative-containers (see <a href=
+ "assoc_performance_tests.html#msc">Associative-Container
+ Performance Tests::Observations::Mapping-Semantics
+ Considerations</a>).</p>
+
+ <p>Figures <a href="#embedded_lists_3">Non-unique mapping
+ containers in <tt>pb_ds</tt></a> A and B show the equivalent
+ structures in <tt>pb_ds</tt>'s design, to those in Figures
+ <a href="#embedded_lists_1">Non-unique mapping containers in
+ the STL's design</a> A and B, respectively. Each shaded box
+ represents some size-type or secondary
+ associative-container.</p>
+
+ <h6 class="c1"><a name="embedded_lists_3" id=
+ "embedded_lists_3"><img src="embedded_lists_3.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Non-unique mapping containers in the
+ <tt>pb_ds</tt>.</h6>
+
+ <p>In the first example above, then, one would use an
+ associative container mapping each user to an associative
+ container which maps each application id to a start time (see
+ <a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_multimap.cc"><tt>basic_multimap.cc</tt></a>);
+ in the second example, one would use an associative container
+ mapping each <tt><b>int</b></tt> to some size-type indicating
+ the number of times it logically occurs (see <a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_multiset.cc"><tt>basic_multiset.cc</tt></a>).</p>
+
+ <p><a href=
+ "assoc_performance_tests.html#multimaps">Associative-Container
+ Performance Tests::Multimaps</a> quantifies some of these
+ points, and <a href=
+ "assoc_performance_tests.html#msc">Associative-Container
+ Performance Tests::Observations::Mapping-Semantics
+ Considerations</a> shows some simple calculations.</p>
+
+ <p><a href="assoc_examples.html#mmaps">Associative-Container
+ Examples::Multimaps</a> shows some simple examples of using
+ "multimaps".</p>
+
+ <p><a href="lu_based_containers.html">Design::Associative
+ Containers::List-Based Containers</a> discusses types of
+ containers especially suited as secondary
+ associative-containers.</p>
+
+ <h2><a name="pq" id="pq">Priority Queues</a></h2>
+
+ <h3><a name="pq_more_ops" id="pq_more_ops">Slightly Different
+ Methods</a></h3>
+
+ <p>Priority queues are containers that allow efficiently
+ inserting values and accessing the maximal value (in the sense
+ of the container's comparison functor); <i>i.e.</i>, their
+ interface supports <tt>push</tt> and <tt>pop</tt>. The STL's
+ priority queues indeed support these methods, but they support
+ little else. For algorithmic and software-engineering purposes,
+ other methods are needed:</p>
+
+ <ol>
+ <li>Many graph algorithms [<a href=
+ "references.html#clrs2001">clrs2001</a>] require increasing a
+ value in a priority queue (again, in the sense of the
+ container's comparison functor), or joining two
+ priority-queue objects.</li>
+
+ <li>It is sometimes necessary to erase an arbitrary value in
+ a priority queue. For example, consider the <tt>select</tt>
+ function for monitoring file descriptors:
+ <pre>
+<b>int</b>
+ select
+ (<b>int</b> nfds,
+ fd_set *readfds,
+ fd_set *writefds,
+ fd_set *errorfds,
+ <b>struct</b> timeval *timeout);
+</pre>then, as the <tt>select</tt> manual page [<a href=
+"references.html#select_man">select_man</a>] states:
+
+ <p><q>The nfds argument specifies the range of file
+ descriptors to be tested. The select() function tests file
+ descriptors in the range of 0 to nfds-1.</q></p>
+
+ <p>It stands to reason, therefore, that we might wish to
+ maintain a minimal value for <tt>nfds</tt>, and priority
+ queues immediately come to mind. Note, though, that when a
+ socket is closed, the minimal file description might
+ change; in the absence of an efficient means to erase an
+ arbitrary value from a priority queue, we might as well
+ avoid its use altogether.</p>
+
+ <p><a href="pq_examples.html#xref">Priority-Queue
+ Examples::Cross-Referencing</a> shows examples for these
+ types of operations.</p>
+ </li>
+
+ <li>STL containers typically support iterators. It is
+ somewhat unusual for <tt>std::priority_queue</tt> to omit
+ them (see, <i>e.g.</i>, [<a href=
+ "references.html#meyers01stl">meyers01stl</a>]). One might
+ ask why do priority queues need to support iterators, since
+ they are self-organizing containers with a different purpose
+ than abstracting sequences. There are several reasons:
+
+ <ol>
+ <li>Iterators (even in self-organizing containers) are
+ useful for many purposes, <i>e.g.</i>, cross-referencing
+ containers, serialization, and debugging code that uses
+ these containers.</li>
+
+ <li>The STL's hash-based containers support iterators,
+ even though they too are self-organizing containers with
+ a different purpose than abstracting sequences.</li>
+
+ <li>In STL-like containers, it is natural to specify the
+ interface of operations for modifying a value or erasing
+ a value (discussed previously) in terms of a iterators.
+ This is discussed further in <a href=
+ "pq_design.html#pq_it">Design::Priority
+ Queues::Iterators</a>. It should be noted that the STL's
+ containers also use iterators for accessing and
+ manipulating a specific value. <i>E.g.</i>, in hash-based
+ containers, one checks the existence of a key by
+ comparing the iterator returned by <tt>find</tt> to the
+ iterator returned by <tt>end</tt>, and not by comparing a
+ pointer returned by <tt>find</tt> to <tt>NULL</tt>.</li>
+ </ol>
+ </li>
+ </ol>
+
+ <p><a href="pq_performance_tests.html">Performance
+ Tests::Priority Queues</a> quantifies some of these points.</p>
+
+ <h3><a name="pq_ds_genericity" id="pq_ds_genericity">More Data
+ Structures and Traits</a></h3>
+
+ <p>There are three main implementations of priority queues: the
+ first employs a binary heap, typically one which uses a
+ sequence; the second uses a tree (or forest of trees), which is
+ typically less structured than an associative container's tree;
+ the third simply uses an associative container. These are
+ shown, respectively, in Figures <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> A1 and A2, B, and C.</p>
+
+ <h6 class="c1"><a name="pq_different_underlying_dss" id=
+ "pq_different_underlying_dss"><img src=
+ "pq_different_underlying_dss.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Underlying Priority-Queue Data-Structures.</h6>
+
+ <p>No single implementation can completely replace any of the
+ others. Some have better <tt>push</tt> and <tt>pop</tt>
+ amortized performance, some have better bounded (worst case)
+ response time than others, some optimize a single method at the
+ expense of others, <i>etc.</i>. In general the "best"
+ implementation is dictated by the problem (see <a href=
+ "pq_performance_tests.html#pq_observations">Performance
+ Tests::Priority Queues::Observations</a>).</p>
+
+ <p>As with associative containers (see <a href=
+ "#assoc_ds_genericity">Associative Containers::Traits for
+ Underlying Data-Structures</a>), the more implementations
+ co-exist, the more necessary a traits mechanism is for handling
+ generic containers safely and efficiently. This is especially
+ important for priority queues, since the invalidation
+ guarantees of one of the most useful data structures - binary
+ heaps - is markedly different than those of most of the
+ others.</p>
+
+ <p><a href="pq_design.html#pq_traits">Design::Priority
+ Queues::Traits</a> discusses this further.</p>
+
+ <h3><a name="pq_binary_heap" id="pq_binary_heap">Binary Heap
+ Implementation</a></h3>
+
+ <p>Binary heaps are one of the most useful underlying
+ data structures for priority queues. They are very efficient in
+ terms of memory (since they don't require per-value structure
+ metadata), and have the best amortized <tt>push</tt> and
+ <tt>pop</tt> performance for primitive types (<i>e.g.</i>,
+ <tt><b>int</b></tt>s).</p>
+
+ <p>The STL's <tt>priority_queue</tt> implements this data
+ structure as an adapter over a sequence, typically
+ <tt>std::vector</tt> or <tt>std::deque</tt>, which correspond
+ to Figures <a href="#pq_different_underlying_dss">Underlying
+ Priority-Queue Data-Structures</a> A1 and A2, respectively.</p>
+
+ <p>This is indeed an elegant example of the adapter concept and
+ the algorithm/container/iterator decomposition (see [<a href=
+ "references.html#nelson96stlpq">nelson96stlpql</a>]). There are
+ possibly reasons, however, why a binary-heap priority queue
+ would be better implemented as a container instead of a
+ sequence adapter:</p>
+
+ <ol>
+ <li><tt>std::priority_queue</tt> cannot erase values from its
+ adapted sequence (irrespective of the sequence type). This
+ means that the memory use of an <tt>std::priority_queue</tt>
+ object is always proportional to the maximal number of values
+ it ever contained, and not to the number of values that it
+ currently contains (see <a href=
+ "priority_queue_text_pop_mem_usage_test.html">Priority Queue
+ Text <tt>pop</tt> Memory Use Test</a>); this implementation
+ of binary heaps acts very differently than other underlying
+ data structures (<i>e.g.</i>, pairing heaps).</li>
+
+ <li>Some combinations of adapted sequences and value types
+ are very inefficient or just don't make sense. If one uses
+ <tt>std::priority_queue&lt;std::vector&lt;std::string&gt;
+ &gt; &gt;</tt>, for example, then not only will each
+ operation perform a logarithmic number of
+ <tt>std::string</tt> assignments, but, furthermore, any
+ operation (including <tt>pop</tt>) can render the container
+ useless due to exceptions. Conversely, if one uses
+ <tt>std::priority_queue&lt;std::deque&lt;<b>int</b>&gt; &gt;
+ &gt;</tt>, then each operation uses incurs a logarithmic
+ number of indirect accesses (through pointers) unnecessarily.
+ It might be better to let the container make a conservative
+ deduction whether to use the structure in Figures <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> A1 or A2.</li>
+
+ <li>There does not seem to be a systematic way to determine
+ what exactly can be done with the priority queue.
+
+ <ol>
+ <li>If <tt>p</tt> is a priority queue adapting an
+ <tt>std::vector</tt>, then it is possible to iterate over
+ all values by using <tt>&amp;p.top()</tt> and
+ <tt>&amp;p.top() + p.size()</tt>, but this will not work
+ if <tt>p</tt> is adapting an <tt>std::deque</tt>; in any
+ case, one cannot use <tt>p.begin()</tt> and
+ <tt>p.end()</tt>. If a different sequence is adapted, it
+ is even more difficult to determine what can be
+ done.</li>
+
+ <li>If <tt>p</tt> is a priority queue adapting an
+ <tt>std::deque</tt>, then the reference return by
+ <tt>p.top()</tt> will remain valid until it is popped,
+ but if <tt>p</tt> adapts an <tt>std::vector</tt>, the
+ next <tt>push</tt> will invalidate it. If a different
+ sequence is adapted, it is even more difficult to
+ determine what can be done.</li>
+ </ol>
+ </li>
+
+ <li>Sequence-based binary heaps can still implement
+ linear-time <tt>erase</tt> and <tt>modify</tt> operations.
+ This means that if one needs, <i>e.g.</i>, to erase a small
+ (say logarithmic) number of values, then one might still
+ choose this underlying data structure. Using
+ <tt>std::priority_queue</tt>, however, this will generally
+ change the order of growth of the entire sequence of
+ operations.</li>
+ </ol>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/move_to_front_lu_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/move_to_front_lu_policy.html
new file mode 100644
index 0000000..3519092
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/move_to_front_lu_policy.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>move_to_front_lu_policy Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>move_to_front_lu_policy</tt> Interface</h1>
+
+ <p>A list-update policy that unconditionally moves elements to
+ the front of the list.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/list_update_policy.hpp"><tt>list_update_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+
+ <p>This is used only for definitions, e.g., the size
+ type.</p>
+ </td>
+
+ <td>
+ <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+ type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">Metadata-Type
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="null_lu_metadata.html"><span class=
+"c2"><tt>null_lu_metadata</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata on which this functor operates.</p>
+
+ <p>In this case, none.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_reference583863863" id=
+"metadata_reference583863863">metadata_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::reference
+</pre>
+ </td>
+
+ <td>
+ <p>Reference to metadata on which this functor
+ operates.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Metadata Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#metadata_type2849297114"><tt>metadata_type</tt></a>
+ <b>operator</b>()
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Creates a metadata object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ <b>operator</b>()
+ (<a href=
+"#metadata_reference583863863"><tt>metadata_reference</tt></a> r_metadata) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Decides whether a metadata object should be moved to
+ the front of the list.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html
new file mode 100644
index 0000000..e3b1a2c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>"Multimap" Text Find Timing Test with Large Average
+ Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Find Timing Test with Large Average
+ Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+ first item of each pair is a string from an arbitrary text
+ [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+ the second is a uniform i.i.d.integer. The container is a
+ "multimap" - it considers the first member of each pair as a
+ primary key, and the second member of each pair as a secondary
+ key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Alternative to Multiple Equivalent Keys</a>). There
+ are 100 distinct primary keys, and the ratio of secondary keys
+ to primary keys ranges to about 20.</p>
+<p>The test measures the average find-time as a function of the
+ number of values inserted. For <tt>pb_ds</tt>'s containers, it
+ finds the secondary key from a container obtained from finding
+ a primary key. For the native multimaps, it searches a range
+ obtained using <tt>std::equal_range</tt> on a primary key.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_find_timing.cc"><tt>multimap_text_find_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 100 3 4 4)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the find-time scalability of different
+ "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Mapping Semantics</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+ <a href="#NTL">NTL</a> show the results for "multimaps" which
+ use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+ "multimaps" which use a hash-based container for primary keys,
+ in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+ <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+ and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_find_timing_test_large_s2p_tree">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_find_timing_test_large_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: Native and primary tree-based multimap types find timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_find_timing_test_large_s2p_tree">
+<div id="NTM_assoc">
+<div id="NTM_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_find_timing_test_large_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: Native and primary tree-based multimap types find timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_find_timing_test_large_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_find_timing_test_large_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types find timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_find_timing_test_large_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_find_timing_test_large_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types find timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_find_timing_test_large_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_find_timing_test_large_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types find timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_find_timing_test_large_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL__Native_and_primary_hash-based_multimap_types_find_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_find_timing_test_large_s2p_hash_local.png" alt="no image" /></a></h6>NHL: Native and primary hash-based multimap types find timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+ Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png
new file mode 100644
index 0000000..03a62f5
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png
new file mode 100644
index 0000000..32a61ca
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png
new file mode 100644
index 0000000..4462d28
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.png
new file mode 100644
index 0000000..89e4644
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png
new file mode 100644
index 0000000..10b3980
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png
new file mode 100644
index 0000000..2032095
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html
new file mode 100644
index 0000000..cec52ff
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>"Multimap" Text Find Timing Test with Small Average
+ Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Find Timing Test with Small Average
+ Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+ first item of each pair is a string from an arbitrary text
+ [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+ the second is a uniform i.i.d.integer. The container is a
+ "multimap" - it considers the first member of each pair as a
+ primary key, and the second member of each pair as a secondary
+ key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Alternative to Multiple Equivalent Keys</a>). There
+ are 400 distinct primary keys, and the ratio of secondary keys
+ to primary keys ranges from 1 to 5.</p>
+<p>The test measures the average find-time as a function of the
+ number of values inserted. For <tt>pb_ds</tt>'s containers, it
+ finds the secondary key from a container obtained from finding
+ a primary key. For the native multimaps, it searches a range
+ obtained using <tt>std::equal_range</tt> on a primary key.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_find_timing.cc"><tt>multimap_text_find_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 400 1 1 6)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the find-time scalability of different
+ "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Mapping Semantics</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+ <a href="#NTL">NTL</a> show the results for "multimaps" which
+ use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+ "multimaps" which use a hash-based container for primary keys,
+ in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+ <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+ and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_find_timing_test_small_s2p_tree">
+<div id="NTG_assoc">
+<div id="NHG_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_find_timing_test_small_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: NHG Native and primary tree-based multimap types find timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_find_timing_test_small_s2p_tree">
+<div id="NTM_assoc">
+<div id="NHM_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_find_timing_test_small_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: NHM Native and primary tree-based multimap types find timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_find_timing_test_small_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_find_timing_test_small_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types find timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_find_timing_test_small_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_find_timing_test_small_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types find timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_find_timing_test_small_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_find_timing_test_small_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types find timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_find_timing_test_small_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL__Native_and_primary_hash-based_multimap_types_find_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_find_timing_test_small_s2p_hash_local.png" alt="no image" /></a></h6>NHL: Native and primary hash-based multimap types find timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+ Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png
new file mode 100644
index 0000000..60e8509
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png
new file mode 100644
index 0000000..a8fa261
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png
new file mode 100644
index 0000000..11aa9e0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png
new file mode 100644
index 0000000..f54369b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png
new file mode 100644
index 0000000..b3d1061
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png
new file mode 100644
index 0000000..035fd93
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html
new file mode 100644
index 0000000..00d4146
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html
@@ -0,0 +1,210 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash-List "Multimap" Text Memory Use Test with Large
+ Average Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Memory Use Test with Large Average
+ Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+ first item of each pair is a string from an arbitrary text
+ [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+ the second is a uniform i.i.d.integer. The container is a
+ "multimap" - it considers the first member of each pair as a
+ primary key, and the second member of each pair as a secondary
+ key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Alternative to Multiple Equivalent Keys</a>). There
+ are 100 distinct primary keys. The test measures the memory use
+ as a function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.cc"><tt>multimap_text_insert_mem_usage_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 100 200 2100 100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the memory scalability of different
+ "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Mapping Semantics</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+ <a href="#NTL">NTL</a> show the results for "multimaps" which
+ use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+ "multimaps" which use a hash-based container for primary keys,
+ in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+ <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+ and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_insert_mem_usage_test_large_s2p_tree">
+<div id="NTG_assoc">
+<div id="NHG_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: NHG Native and primary tree-based multimap types mem usage test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_insert_mem_usage_test_large_s2p_tree">
+<div id="NTM_assoc">
+<div id="NHM_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: NHM Native and primary tree-based multimap types mem usage test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_insert_mem_usage_test_large_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_insert_mem_usage_test_large_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types mem usage test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_insert_mem_usage_test_large_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types mem usage test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_insert_mem_usage_test_large_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types mem usage test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_insert_mem_usage_test_large_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL__Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_insert_mem_usage_test_large_s2p_hash_local.png" alt="no image" /></a></h6>NHL: Native and primary hash-based multimap types mem usage test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+ Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png
new file mode 100644
index 0000000..51a3f8d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png
new file mode 100644
index 0000000..8af7100
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png
new file mode 100644
index 0000000..3a938c0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png
new file mode 100644
index 0000000..a992d8f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png
new file mode 100644
index 0000000..63c0c8d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png
new file mode 100644
index 0000000..26841bd1
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html
new file mode 100644
index 0000000..63ec4a9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash-List "Multimap" Text Memory Use Test with Small
+ Average Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Memory Use Test with Small Average
+ Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+ first item of each pair is a string from an arbitrary text
+ [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+ the second is a uniform i.i.d.integer. The container is a
+ "multimap" - it considers the first member of each pair as a
+ primary key, and the second member of each pair as a secondary
+ key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Alternative to Multiple Equivalent Keys</a>). There
+ are 100 distinct primary keys, and the ratio of secondary keys
+ to primary keys ranges to about 20.</p>
+<p>The test measures the memory use as a function of the number
+ of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.cc"><tt>multimap_text_insert_mem_usage_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 100 3 4 4)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the memory scalability of different
+ "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Mapping Semantics</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+ <a href="#NTL">NTL</a> show the results for "multimaps" which
+ use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+ "multimaps" which use a hash-based container for primary keys,
+ in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+ <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+ and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_insert_mem_usage_test_small_s2p_tree">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: Native and primary tree-based multimap types mem usage test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_insert_mem_usage_test_small_s2p_tree">
+<div id="NTM_assoc">
+<div id="NHM_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: NHM Native and primary tree-based multimap types mem usage test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_insert_mem_usage_test_small_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_insert_mem_usage_test_small_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types mem usage test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_insert_mem_usage_test_small_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types mem usage test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_insert_mem_usage_test_small_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types mem usage test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_insert_mem_usage_test_small_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL__Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_insert_mem_usage_test_small_s2p_hash_local.png" alt="no image" /></a></h6>NHL: Native and primary hash-based multimap types mem usage test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+ Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png
new file mode 100644
index 0000000..d3eba9d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png
new file mode 100644
index 0000000..589dccde
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png
new file mode 100644
index 0000000..1828896
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png
new file mode 100644
index 0000000..9334bc3
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png
new file mode 100644
index 0000000..d7322f2
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png
new file mode 100644
index 0000000..2f20e57
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html
new file mode 100644
index 0000000..770bae9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>"Multimap" Text Insert Timing Test with Large Average
+ Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Insert Timing Test with Large Average
+ Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+ first item of each pair is a string from an arbitrary text
+ [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+ the second is a uniform i.i.d.integer. The container is a
+ "multimap" - it considers the first member of each pair as a
+ primary key, and the second member of each pair as a secondary
+ key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Alternative to Multiple Equivalent Keys</a>). There
+ are 100 distinct primary keys, and the ratio of secondary keys
+ to primary keys ranges to about 20.</p>
+<p>The test measures the memory use as a function of the number
+ of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.cc"><tt>multimap_text_insert_mem_usage_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 400 1 6 6)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the insert-time scalability of different
+ "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Mapping Semantics</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+ <a href="#NTL">NTL</a> show the results for "multimaps" which
+ use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+ "multimaps" which use a hash-based container for primary keys,
+ in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+ <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+ and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_insert_timing_test_large_s2p_tree">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_insert_timing_test_large_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: Native and primary tree-based multimap types insert timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_insert_timing_test_large_s2p_tree">
+<div id="NTM_assoc">
+<div id="NHM_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_insert_timing_test_large_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: NHM Native and primary tree-based multimap types insert timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_insert_timing_test_large_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_insert_timing_test_large_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types insert timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_insert_timing_test_large_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_insert_timing_test_large_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types insert timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_insert_timing_test_large_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_insert_timing_test_large_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types insert timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_insert_timing_test_large_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL__Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_insert_timing_test_large_s2p_hash_local.png" alt="no image" /></a></h6>NHL: Native and primary hash-based multimap types insert timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+ Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png
new file mode 100644
index 0000000..55b0bf4
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png
new file mode 100644
index 0000000..5f89460
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.png
new file mode 100644
index 0000000..02f5d0b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.png
new file mode 100644
index 0000000..83366eb
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png
new file mode 100644
index 0000000..2b496b4
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.png
new file mode 100644
index 0000000..47196bf
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html
new file mode 100644
index 0000000..bf9ff30
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>"Multimap" Text Insert Timing Test with Small Average
+ Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Insert Timing Test with Small Average
+ Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+ first item of each pair is a string from an arbitrary text
+ [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+ the second is a uniform i.i.d.integer. The container is a
+ "multimap" - it considers the first member of each pair as a
+ primary key, and the second member of each pair as a secondary
+ key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Alternative to Multiple Equivalent Keys</a>). There
+ are 400 distinct primary keys, and the ratio of secondary keys
+ to primary keys ranges from 1 to 5.</p>
+<p>The test measures the average insert-time as a function of
+ the number of values inserted. For <tt>pb_ds</tt>'s containers,
+ it inserts a primary key into the primary associative
+ container, then a secondary key into the secondary associative
+ container. For the native multimaps, it obtains a range using
+ <tt>std::equal_range</tt>, and inserts a value only if it was
+ not contained already.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_insert_timing.cc"><tt>multimap_text_insert_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 400 1 1 6)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the insert-time scalability of different
+ "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Alternative to Multiple Equivalent Keys</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+ <a href="#NTL">NTL</a> show the results for "multimaps" which
+ use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+ "multimaps" which use a hash-based container for primary keys,
+ in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+ <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+ and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_insert_timing_test_small_s2p_tree">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_insert_timing_test_small_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: Native and primary tree-based multimap types insert timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_insert_timing_test_small_s2p_tree">
+<div id="NTM_assoc">
+<div id="NHM_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_insert_timing_test_small_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: NHM Native and primary tree-based multimap types insert timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_insert_timing_test_small_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_insert_timing_test_small_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types insert timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_insert_timing_test_small_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_insert_timing_test_small_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types insert timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_insert_timing_test_small_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_insert_timing_test_small_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types insert timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_insert_timing_test_small_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL_Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_insert_timing_test_small_s2p_hash_local.png" alt="no image" /></a></h6>NHL: Native and primary hash-based multimap types insert timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+ Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png
new file mode 100644
index 0000000..3c2d87e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png
new file mode 100644
index 0000000..4af78fa
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png
new file mode 100644
index 0000000..81d5839
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.png
new file mode 100644
index 0000000..368f073
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png
new file mode 100644
index 0000000..40b5b2c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png
new file mode 100644
index 0000000..99f2d69
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/node_invariant_invalidations.png b/libstdc++-v3/docs/html/ext/pb_ds/node_invariant_invalidations.png
new file mode 100644
index 0000000..bbd9184
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/node_invariant_invalidations.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/node_invariants.png b/libstdc++-v3/docs/html/ext/pb_ds/node_invariants.png
new file mode 100644
index 0000000..b375f51
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/node_invariants.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_hash_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/null_hash_fn.html
new file mode 100644
index 0000000..5d95224
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_hash_fn.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>null_hash_fn Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>null_hash_fn</tt> Interface</h1>
+
+ <p>A "null" hash function, indicating that the combining hash
+ function is actually a ranged hash function.</p>
+
+ <p><a href=
+ "concepts.html#concepts_null_policies">Interface::Concepts::Null
+ Policy Classes</a> explains the concept of a null policy. See
+ also <a href=
+ "hash_based_containers.html#hash_policies">Design::Hash-Based
+ Containers::Hash Policies</a>.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_lu_metadata.html b/libstdc++-v3/docs/html/ext/pb_ds/null_lu_metadata.html
new file mode 100644
index 0000000..1cbf9cc
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_lu_metadata.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>null_lu_metadata Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>null_lu_metadata</tt> Interface</h1>
+
+ <p>A null type that means that each link in a list-based
+ container does not actually need metadata.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/list_update_policy.hpp"><tt>list_update_policy.hpp</tt></a></p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_mapped_type.html b/libstdc++-v3/docs/html/ext/pb_ds/null_mapped_type.html
new file mode 100644
index 0000000..5be7359e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_mapped_type.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>null_mapped_type Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>null_mapped_type</tt> Interface</h1>
+
+ <p>A mapped-policy indicating that an associative container is
+ a "set"</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/null_probe_fn.html
new file mode 100644
index 0000000..af9379b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_probe_fn.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>null_probe_fn Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>null_probe_fn</tt> Interface</h1>
+
+ <p>A "null" probe function, indicating that the combining probe
+ function is actually a ranged probe function.</p>
+
+ <p><a href=
+ "concepts.html#concepts_null_policies">Interface::Concepts::Null
+ Policy Classes</a> explains the concept of a null policy.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_tree_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/null_tree_node_update.html
new file mode 100644
index 0000000..98960ed
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_tree_node_update.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>null_tree_node_update Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>null_tree_node_update</tt> Interface</h1>
+
+ <p>A "null" node updater, indicating that no node updates are
+ required.</p>
+
+ <p><a href=
+ "concepts.html#concepts_null_policies">Interface::Concepts::Null
+ Policy Classes</a> explains the concept of a null policy.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tree_policy.hpp"><tt>tree_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Cmp_Fn294335" id="Cmp_Fn294335"><b>class</b> Cmp_Fn</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_trie_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/null_trie_node_update.html
new file mode 100644
index 0000000..c6c0844
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_trie_node_update.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>null_trie_node_update Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>null_trie_node_update</tt> Interface</h1>
+
+ <p>A "null" node updater, indicating that no node updates are
+ required.</p>
+
+ <p><a href=
+ "concepts.html#concepts_null_policies">Interface::Concepts::Null
+ Policy Classes</a> explains the concept of a null policy.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/trie_policy.hpp"><tt>trie_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="E_Access_Traits686553840" id=
+"E_Access_Traits686553840"><b>class</b> E_Access_Traits</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/ov_tree_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/ov_tree_tag.html
new file mode 100644
index 0000000..8da2d50
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/ov_tree_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>ov_tree_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>ov_tree_tag</tt> Interface</h1>
+
+ <p>Ordered-vector tree data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="tree_tag.html"><span class=
+"c2"><tt>tree_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_heap_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/pairing_heap_tag.html
new file mode 100644
index 0000000..756e886
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pairing_heap_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>pairing_heap_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>pairing_heap_tag</tt> Interface</h1>
+
+ <p>Pairing-heap data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="priority_queue_tag.html"><span class=
+"c2"><tt>priority_queue_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png
new file mode 100644
index 0000000..4168787
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png
new file mode 100644
index 0000000..97ca4e9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png
new file mode 100644
index 0000000..42b7079
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png
new file mode 100644
index 0000000..9a7ce6c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png
new file mode 100644
index 0000000..cedcb4c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.png
new file mode 100644
index 0000000..d5488ef
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pat_trie.png b/libstdc++-v3/docs/html/ext/pb_ds/pat_trie.png
new file mode 100644
index 0000000..e7129a1
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pat_trie.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pat_trie_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/pat_trie_tag.html
new file mode 100644
index 0000000..459546d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pat_trie_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>pat_trie_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>pat_trie_tag</tt> Interface</h1>
+
+ <p>PATRICIA trie data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="tree_tag.html"><span class=
+"c2"><tt>tree_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/point_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_ds/point_invalidation_guarantee.html
new file mode 100644
index 0000000..ba2eee6
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/point_invalidation_guarantee.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>point_invalidation_guarantee Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>point_invalidation_guarantee</tt> Interface</h1>
+
+ <p>Signifies an invalidation guarantee that includes all those
+ of its base, and additionally, that any point-type iterator,
+ pointer, or reference to a container object's mapped value type
+ is valid as long as its corresponding entry has not be erased,
+ regardless of modifications to the container object.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="basic_invalidation_guarantee.html"><span class=
+"c2"><tt>basic_invalidation_guarantee</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_cd.png
new file mode 100644
index 0000000..25a69fc
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_cd.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_1.png b/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_1.png
new file mode 100644
index 0000000..c5bc8e5
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_1.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_2.png b/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_2.png
new file mode 100644
index 0000000..c3f94ee
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_2.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_container_traits.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_container_traits.html
new file mode 100644
index 0000000..2ff5ed7
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_container_traits.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>container_traits Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>container_traits</tt> Interface</h1>
+
+ <p>Traits of a priority-queue container based on its underlying
+ data structure.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Cntnr59189" id="Cntnr59189"><b>class</b> Cntnr</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Container type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">Container Attributes</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="container_category1247973216" id=
+"container_category1247973216">container_category</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Underlying data structure.
+</pre>
+ </td>
+
+ <td>
+ <p>Data structure category.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="invalidation_guarantee3793555937" id=
+"invalidation_guarantee3793555937">invalidation_guarantee</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Invalidation guarantee.
+</pre>
+ </td>
+
+ <td>
+ <p>Invalidation-guarantee type.</p>
+
+ <p>This is either <a href=
+ "basic_invalidation_guarantee.html"><span class=
+ "c2"><tt>basic_invalidation_guarantee</tt></span></a>,
+ <a href="point_invalidation_guarantee.html"><span class=
+ "c2"><tt>point_invalidation_guarantee</tt></span></a>, or
+ <a href="range_invalidation_guarantee.html"><span class=
+ "c2"><tt>range_invalidation_guarantee</tt></span></a></p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="split_join_can_throw3200477759" id=
+"split_join_can_throw3200477759">split_join_can_throw</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+True only if split or join operations can throw.
+</pre>
+ </td>
+
+ <td>
+ <p>Split-join throw indicator.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_design.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_design.html
new file mode 100644
index 0000000..f33d963
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_design.html
@@ -0,0 +1,381 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Priority-Queues</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Priority-Queue Design</h1>
+
+ <h2><a name="overview" id="overview">Overview</a></h2>
+
+ <p>The priority-queue container has the following
+ declaration:</p>
+ <pre>
+<b>template</b>&lt;
+ <b>typename</b> Value_Type,
+ <b>typename</b> Cmp_Fn = std::less&lt;Value_Type&gt;,
+ <b>typename</b> Tag = <a href="pairing_heap_tag.html">pairing_heap_tag</a>,
+ <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href="priority_queue.html">priority_queue</a>;
+</pre>
+
+ <p>The parameters have the following meaning:</p>
+
+ <ol>
+ <li><tt>Value_Type</tt> is the value type.</li>
+
+ <li><tt>Cmp_Fn</tt> is a value comparison functor</li>
+
+ <li><tt>Tag</tt> specifies which underlying data structure
+ to use.</li>
+
+ <li><tt>Allocator</tt> is an allocator
+ type.</li>
+ </ol>
+
+ <p>The <tt>Tag</tt> parameter specifies which underlying
+ data structure to use. Instantiating it by <a href=
+ "pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>,
+ <a href=
+ "binary_heap_tag.html"><tt>binary_heap_tag</tt></a>,
+ <a href=
+ "binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>,
+ <a href=
+ "rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>,
+ or <a href=
+ "thin_heap_tag.html"><tt>thin_heap_tag</tt></a>,
+ specifies, respectively, an underlying pairing heap [<a href=
+ "references.html#fredman86pairing">fredman86pairing</a>],
+ binary heap [<a href="references.html#clrs2001">clrs2001</a>],
+ binomial heap [<a href=
+ "references.html#clrs2001">clrs2001</a>], a binomial heap with
+ a redundant binary counter [<a href=
+ "references.html#maverik_lowerbounds">maverik_lowerbounds</a>],
+ or a thin heap [<a href=
+ "references.html#kt99fat_heaps">kt99fat_heas</a>]. These are
+ explained further in <a href="#pq_imp">Implementations</a>.</p>
+
+ <p>As mentioned in <a href=
+ "tutorial.html#pq">Tutorial::Priority Queues</a>,
+ <a href=
+ "priority_queue.html"><tt>pb_ds::priority_queue</tt></a>
+ shares most of the same interface with <tt>std::priority_queue</tt>.
+ <i>E.g.</i> if <tt>q</tt> is a priority queue of type
+ <tt>Q</tt>, then <tt>q.top()</tt> will return the "largest"
+ value in the container (according to <tt><b>typename</b>
+ Q::cmp_fn</tt>). <a href=
+ "priority_queue.html"><tt>pb_ds::priority_queue</tt></a>
+ has a larger (and very slightly different) interface than
+ <tt>std::priority_queue</tt>, however, since typically
+ <tt>push</tt> and <tt>pop</tt> are deemed insufficient for
+ manipulating priority-queues. </p>
+
+ <p>Different settings require different priority-queue
+ implementations which are described in <a href=
+ "#pq_imp">Implementations</a>; <a href="#pq_traits">Traits</a>
+ discusses ways to differentiate between the different traits of
+ different implementations.</p>
+
+ <h2><a name="pq_it" id="pq_it">Iterators</a></h2>
+
+ <p>There are many different underlying-data structures for
+ implementing priority queues. Unfortunately, most such
+ structures are oriented towards making <tt>push</tt> and
+ <tt>top</tt> efficient, and consequently don't allow efficient
+ access of other elements: for instance, they cannot support an efficient
+ <tt>find</tt> method. In the use case where it
+ is important to both access and "do something with" an
+ arbitrary value, one would be out of luck. For example, many graph algorithms require
+ modifying a value (typically increasing it in the sense of the
+ priority queue's comparison functor).</p>
+
+ <p>In order to access and manipulate an arbitrary value in a
+ priority queue, one needs to reference the internals of the
+ priority queue from some form of an associative container -
+ this is unavoidable. Of course, in order to maintain the
+ encapsulation of the priority queue, this needs to be done in a
+ way that minimizes exposure to implementation internals.</p>
+
+ <p>In <tt>pb_ds</tt> the priority queue's <tt>insert</tt>
+ method returns an iterator, which if valid can be used for subsequent <tt>modify</tt> and
+ <tt>erase</tt> operations. This both preserves the priority
+ queue's encapsulation, and allows accessing arbitrary values (since the
+ returned iterators from the <tt>push</tt> operation can be
+ stored in some form of associative container).</p>
+
+ <p>Priority queues' iterators present a problem regarding their
+ invalidation guarantees. One assumes that calling
+ <tt><b>operator</b>++</tt> on an iterator will associate it
+ with the "next" value. Priority-queues are
+ self-organizing: each operation changes what the "next" value
+ means. Consequently, it does not make sense that <tt>push</tt>
+ will return an iterator that can be incremented - this can have
+ no possible use. Also, as in the case of hash-based containers,
+ it is awkward to define if a subsequent <tt>push</tt> operation
+ invalidates a prior returned iterator: it invalidates it in the
+ sense that its "next" value is not related to what it
+ previously considered to be its "next" value. However, it might not
+ invalidate it, in the sense that it can be
+ de-referenced and used for <tt>modify</tt> and <tt>erase</tt>
+ operations.</p>
+
+ <p>Similarly to the case of the other unordered associative
+ containers, <tt>pb_ds</tt> uses a distinction between
+ point-type and range type iterators. A priority queue's <tt>iterator</tt> can always be
+ converted to a <tt>point_iterator</tt>, and a
+ <tt>const_iterator</tt> can always be converted to a
+ <tt>const_point_iterator</tt>.</p>
+
+ <p>The following snippet demonstrates manipulating an arbitrary
+ value:</p>
+ <pre>
+<i>// A priority queue of integers.</i>
+<a href=
+"priority_queue.html">priority_queue</a>&lt;<b>int</b>&gt; p;
+
+<i>// Insert some values into the priority queue.</i>
+<a href=
+"priority_queue.html">priority_queue</a>&lt;<b>int</b>&gt;::point_iterator it = p.push(0);
+
+p.push(1);
+p.push(2);
+
+<i>// Now modify a value.</i>
+p.modify(it, 3);
+
+assert(p.top() == 3);
+</pre>
+
+ <p>(<a href="pq_examples.html#xref">Priority Queue
+ Examples::Cross-Referencing</a> shows a more detailed
+ example.)</p>
+
+ <p>It should be noted that an alternative design could embed an
+ associative container in a priority queue. Could, but most probably should not. To begin with, it should be noted that one
+ could always encapsulate a priority queue and an associative
+ container mapping values to priority queue iterators with no
+ performance loss. One cannot, however, "un-encapsulate" a
+ priority queue embedding an associative container, which might
+ lead to performance loss. Assume, that one needs to
+ associate each value with some data unrelated to priority
+ queues. Then using <tt>pb_ds</tt>'s design, one could use an
+ associative container mapping each value to a pair consisting
+ of this data and a priority queue's iterator. Using the
+ embedded method would need to use two associative
+ containers. Similar problems might arise in cases where a value
+ can reside simultaneously in many priority queues.</p>
+
+ <h2><a name="pq_imp" id="pq_imp">Implementations</a></h2>
+
+ <p>There are three main implementations of priority queues: the
+ first employs a binary heap, typically one which uses a
+ sequence; the second uses a tree (or forest of trees), which is
+ typically less structured than an associative container's tree;
+ the third simply uses an associative container. These are
+ shown, respectively, in Figures <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> A1 and A2, Figure <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> B, and Figures <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> C.</p>
+
+ <h6 class="c1"><a name="pq_different_underlying_dss" id=
+ "pq_different_underlying_dss"><img src=
+ "pq_different_underlying_dss.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Underlying Priority-Queue Data-Structures.</h6>
+
+ <p>Roughly speaking, any value that is both pushed and popped
+ from a priority queue must incur a logarithmic expense (in the
+ amortized sense). Any priority queue implementation that would
+ avoid this, would violate known bounds on comparison-based
+ sorting (see, <i>e.g.</i>, [<a href=
+ "references.html#clrs2001">clrs2001</a>] and <a href=
+ "references.html#brodal96priority">brodal96priority</a>]).</p>
+
+ <p>Most implementations do
+ not differ in the asymptotic amortized complexity of
+ <tt>push</tt> and <tt>pop</tt> operations, but they differ in
+ the constants involved, in the complexity of other operations
+ (<i>e.g.</i>, <tt>modify</tt>), and in the worst-case
+ complexity of single operations. In general, the more
+ "structured" an implementation (<i>i.e.</i>, the more internal
+ invariants it possesses) - the higher its amortized complexity
+ of <tt>push</tt> and <tt>pop</tt> operations.</p>
+
+ <p><tt>pb_ds</tt> implements different algorithms using a
+ single class: <a href="priority_queue.html">priority_queue</a>.
+ Instantiating the <tt>Tag</tt> template parameter, "selects"
+ the implementation:</p>
+
+ <ol>
+ <li>Instantiating <tt>Tag = <a href=
+ "binary_heap_tag.html">binary_heap_tag</a></tt> creates
+ a binary heap of the form in Figures <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> A1 or A2. The former is internally
+ selected by <a href="priority_queue.html">priority_queue</a>
+ if <tt>Value_Type</tt> is instantiated by a primitive type
+ (<i>e.g.</i>, an <tt><b>int</b></tt>); the latter is
+ internally selected for all other types (<i>e.g.</i>,
+ <tt>std::string</tt>). This implementations is relatively
+ unstructured, and so has good <tt>push</tt> and <tt>pop</tt>
+ performance; it is the "best-in-kind" for primitive
+ types, <i>e.g.</i>, <tt><b>int</b></tt>s. Conversely, it has
+ high worst-case performance, and can support only linear-time
+ <tt>modify</tt> and <tt>erase</tt> operations; this is
+ explained further in <a href="#pq_traits">Traits</a>.</li>
+
+ <li>Instantiating <tt>Tag = <a href=
+ "pairing_heap_tag.html">pairing_heap_tag</a></tt>
+ creates a pairing heap of the form in Figure <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> B. This implementations too is relatively
+ unstructured, and so has good <tt>push</tt> and <tt>pop</tt>
+ performance; it is the "best-in-kind" for non-primitive
+ types, <i>e.g.</i>, <tt>std:string</tt>s. It also has very
+ good worst-case <tt>push</tt> and <tt>join</tt> performance
+ (<i>O(1)</i>), but has high worst-case <tt>pop</tt>
+ complexity.</li>
+
+ <li>Instantiating <tt>Tag = <a href=
+ "binomial_heap_tag.html">binomial_heap_tag</a></tt>
+ creates a binomial heap of the form in Figure <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> B. This implementations is more
+ structured than a pairing heap, and so has worse
+ <tt>push</tt> and <tt>pop</tt> performance. Conversely, it
+ has sub-linear worst-case bounds for <tt>pop</tt>,
+ <i>e.g.</i>, and so it might be preferred in cases where
+ responsiveness is important.</li>
+
+ <li>Instantiating <tt>Tag = <a href=
+ "rc_binomial_heap_tag.html">rc_binomial_heap_tag</a></tt>
+ creates a binomial heap of the form in Figure <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> B, accompanied by a redundant counter
+ which governs the trees. This implementations is therefore
+ more structured than a binomial heap, and so has worse
+ <tt>push</tt> and <tt>pop</tt> performance. Conversely, it
+ guarantees <i>O(1)</i> <tt>push</tt> complexity, and so it
+ might be preferred in cases where the responsiveness of a
+ binomial heap is insufficient.</li>
+
+ <li>Instantiating <tt>Tag = <a href=
+ "thin_heap_tag.html">thin_heap_tag</a></tt> creates a
+ thin heap of the form in Figure <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> B. This implementations too is more
+ structured than a pairing heap, and so has worse
+ <tt>push</tt> and <tt>pop</tt> performance. Conversely, it
+ has better worst-case and identical amortized complexities
+ than a Fibonacci heap, and so might be more appropriate for
+ some graph algorithms.</li>
+ </ol>
+
+ <p><a href="pq_performance_tests.html">Priority-Queue
+ Performance Tests</a> shows some results for the above, and
+ discusses these points further.</p>
+
+ <p>Of course, one can use any order-preserving associative
+ container as a priority queue, as in Figure <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> C, possibly by creating an adapter class
+ over the associative container (much as
+ <tt>std::priority_queue</tt> can adapt <tt>std::vector</tt>).
+ This has the advantage that no cross-referencing is necessary
+ at all; the priority queue itself is an associative container.
+ Most associative containers are too structured to compete with
+ priority queues in terms of <tt>push</tt> and <tt>pop</tt>
+ performance.</p>
+
+ <h2><a name="pq_traits" id="pq_traits">Traits</a></h2>
+
+ <p>It would be nice if all priority queues could
+ share exactly the same behavior regardless of implementation. Sadly, this is not possible. Just one for instance is in join operations: joining
+ two binary heaps might throw an exception (not corrupt
+ any of the heaps on which it operates), but joining two pairing
+ heaps is exception free.</p>
+
+ <p>Tags and traits are very useful for manipulating generic
+ types. <a href=
+ "priority_queue.html"><tt>pb_ds::priority_queue</tt></a>
+ publicly defines <tt>container_category</tt> as one of the tags
+ discussed in <a href="#pq_imp">Implementations</a>. Given any
+ container <tt>Cntnr</tt>, the tag of the underlying
+ data structure can be found via <tt><b>typename</b>
+ Cntnr::container_category</tt>; this is one of the types shown in
+ Figure <a href="#pq_tag_cd">Data-structure tag class
+ hierarchy</a>.</p>
+
+ <h6 class="c1"><a name="pq_tag_cd" id=
+ "pq_tag_cd"><img src="priority_queue_tag_cd.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Data-structure tag class hierarchy.</h6>
+
+ <p>Additionally, a traits mechanism can be used to query a
+ container type for its attributes. Given any container
+ <tt>Cntnr</tt>, then <tt><a href=
+ "assoc_container_traits.html">pb_ds::container_traits</a>&lt;Cntnr&gt;</tt>
+ is a traits class identifying the properties of the
+ container.</p>
+
+ <p>To find if a container might throw if two of its objects are
+ joined, one can use <a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::split_join_can_throw</tt>,
+ for example.</p>
+
+ <p>Different priority-queue implementations have different invalidation guarantees. This is
+ especially important, since as explained in <a href=
+ "#pq_it">Iterators</a>, there is no way to access an arbitrary
+ value of priority queues except for iterators. Similarly to
+ associative containers, one can use
+ <a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::invalidation_guarantee</tt>
+ to get the invalidation guarantee type of a priority queue.</p>
+
+ <p>It is easy to understand from Figure <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a>, what <a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::invalidation_guarantee</tt>
+ will be for different implementations. All implementations of
+ type <a href="#pq_different_underlying_dss">Underlying
+ Priority-Queue Data-Structures</a> B have <a href=
+ "point_invalidation_guarantee.html"><tt>point_invalidation_guarantee</tt></a>:
+ the container can freely internally reorganize the nodes -
+ range-type iterators are invalidated, but point-type iterators
+ are always valid. Implementations of type <a href=
+ "#pq_different_underlying_dss">Underlying Priority-Queue
+ Data-Structures</a> A1 and A2 have <a href=
+ "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a>:
+ the container can freely internally reallocate the array - both
+ point-type and range-type iterators might be invalidated.</p>
+
+ <p>This has major implications, and constitutes a good reason to avoid
+ using binary heaps. A binary heap can perform <tt>modify</tt>
+ or <tt>erase</tt> efficiently <u>given a valid point-type
+ iterator</u>. However, inn order to supply it with a valid point-type
+ iterator, one needs to iterate (linearly) over all
+ values, then supply the relevant iterator (recall that a
+ range-type iterator can always be converted to a point-type
+ iterator). This means that if the number of <tt>modify</tt> or
+ <tt>erase</tt> operations is non-negligible (say
+ super-logarithmic in the total sequence of operations) - binary
+ heaps will perform badly.</p>
+ <pre>
+
+</pre>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_different_underlying_dss.png b/libstdc++-v3/docs/html/ext/pb_ds/pq_different_underlying_dss.png
new file mode 100644
index 0000000..9d84791
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_different_underlying_dss.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_examples.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_examples.html
new file mode 100644
index 0000000..ee8e930
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_examples.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Examples</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Priority-Queue Examples</h1>
+
+ <h2><a name="basic_usage" id="basic_usage">Basic Use</a></h2>
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_priority_queue.cc"><tt>basic_priority_queue.cc</tt></a>
+ Basic use of priority queues.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/priority_queue_split_join.cc"><tt>priority_queue_split_join.cc</tt></a>
+ Splitting and joining priority queues.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/priority_queue_erase_if.cc"><tt>priority_queue_erase_if.cc</tt></a>
+ Conditionally erasing values from a container object.</li>
+ </ol>
+
+ <h2><a name="generics" id="generics">Generics</a></h2>
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/priority_queue_container_traits.cc"><tt>priority_queue_container_traits.cc</tt></a>
+ Using <a href="pq_container_traits.html"><tt>container_traits</tt></a>
+ to query about underlying data structure behavior.</li>
+ </ol>
+
+ <h2><a name="xref" id="xref">Cross Referencing</a></h2>
+
+
+ <ol>
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/priority_queue_xref.cc"><tt>priority_queue_xref.cc</tt></a>
+ Cross referencing an associative container and a priority
+ queue.</li>
+
+ <li><a href=
+ "../../../../testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc"><tt>priority_queue_dijkstra.cc</tt></a>
+ Cross referencing a vector and a priority queue using a
+ <u>very</u> simple version of Dijkstra's shortest path
+ algorithm.</li>
+ </ol>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_performance_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_performance_tests.html
new file mode 100644
index 0000000..3a6b269
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_performance_tests.html
@@ -0,0 +1,332 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority-Queue Performance Tests</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority-Queue Performance Tests</h1>
+<h2><a name="settings" id="settings">Settings</a></h2>
+<p>This section describes performance tests and their results.
+ In the following, <a href="#gcc"><u>g++</u></a>, <a href="#msvc"><u>msvc++</u></a>, and <a href="#local"><u>local</u></a> (the build used for generating this
+ documentation) stand for three different builds:</p>
+<div id="gcc_settings_div">
+<div class="c1">
+<h3><a name="gcc" id="gcc"><u>g++</u></a></h3>
+<ul>
+<li>CPU speed - cpu MHz : 2660.644</li>
+<li>Memory - MemTotal: 484412 kB</li>
+<li>Platform -
+ Linux-2.6.12-9-386-i686-with-debian-testing-unstable</li>
+<li>Compiler - g++ (GCC) 4.0.2 20050808 (prerelease)
+ (Ubuntu 4.0.1-4ubuntu9) Copyright (C) 2005 Free Software
+ Foundation, Inc. This is free software; see the source
+ for copying conditions. There is NO warranty; not even
+ for MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE.</li>
+</ul>
+</div>
+<div class="c2"></div>
+</div>
+<div id="msvc_settings_div">
+<div class="c1">
+<h3><a name="msvc" id="msvc"><u>msvc++</u></a></h3>
+<ul>
+<li>CPU speed - cpu MHz : 2660.554</li>
+<li>Memory - MemTotal: 484412 kB</li>
+<li>Platform - Windows XP Pro</li>
+<li>Compiler - Microsoft (R) 32-bit C/C++ Optimizing
+ Compiler Version 13.10.3077 for 80x86 Copyright (C)
+ Microsoft Corporation 1984-2002. All rights
+ reserved.</li>
+</ul>
+</div>
+<div class="c2"></div>
+</div>
+<div id="local_settings_div"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h3><a name = "local"><u>local</u></a></h3><ul>
+<li>CPU speed - cpu MHz : 2250.000</li>
+<li>Memory - MemTotal: 2076248 kB</li>
+<li>Platform - Linux-2.6.16-1.2133_FC5-i686-with-redhat-5-Bordeaux</li>
+<li>Compiler - g++ (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1)
+Copyright (C) 2006 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+</li>
+</ul>
+</div><div style = "width: 100%; height: 20px"></div></div>
+<h2><a name="pq_tests" id="pq_tests">Tests</a></h2>
+<ol>
+<li><a href="priority_queue_text_push_timing_test.html">Priority Queue
+ Text <tt>push</tt> Timing Test</a></li>
+<li><a href="priority_queue_text_push_pop_timing_test.html">Priority
+ Queue Text <tt>push</tt> and <tt>pop</tt> Timing
+ Test</a></li>
+<li><a href="priority_queue_random_int_push_timing_test.html">Priority
+ Queue Random Integer <tt>push</tt> Timing Test</a></li>
+<li><a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+ Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+ Test</a></li>
+<li><a href="priority_queue_text_pop_mem_usage_test.html">Priority Queue
+ Text <tt>pop</tt> Memory Use Test</a></li>
+<li><a href="priority_queue_text_join_timing_test.html">Priority Queue
+ Text <tt>join</tt> Timing Test</a></li>
+<li><a href="priority_queue_text_modify_up_timing_test.html">Priority
+ Queue Text <tt>modify</tt> Timing Test - I</a></li>
+<li><a href="priority_queue_text_modify_down_timing_test.html">Priority
+ Queue Text <tt>modify</tt> Timing Test - II</a></li>
+</ol>
+<h2><a name="pq_observations" id="pq_observations">Observations</a></h2>
+<h3><a name="pq_observations_cplx" id="pq_observations_cplx">Underlying Data Structures
+ Complexity</a></h3>
+<p>The following table shows the complexities of the different
+ underlying data structures in terms of orders of growth. It is
+ interesting to note that this table implies something about the
+ constants of the operations as well (see <a href="#pq_observations_amortized_push_pop">Amortized <tt>push</tt>
+ and <tt>pop</tt> operations</a>).</p>
+<table class="c1" width="100%" border="1" summary="pq complexities">
+<tr>
+<td align="left"></td>
+<td align="left"><tt>push</tt></td>
+<td align="left"><tt>pop</tt></td>
+<td align="left"><tt>modify</tt></td>
+<td align="left"><tt>erase</tt></td>
+<td align="left"><tt>join</tt></td>
+</tr>
+<tr>
+<td align="left">
+<p><tt>std::priority_queue</tt></p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n)) Worst</p>
+</td>
+<td align="left">
+<p><i>Theta;(n log(n))</i> Worst</p>
+<p><sub><a href="#std_mod1">[std note 1]</a></sub></p>
+</td>
+<td align="left">
+<p class="c3">&Theta;(n log(n))</p>
+<p><sub><a href="#std_mod2">[std note 2]</a></sub></p>
+</td>
+<td align="left">
+<p class="c3">&Theta;(n log(n))</p>
+<p><sub><a href="#std_mod1">[std note 1]</a></sub></p>
+</td>
+</tr>
+<tr>
+<td align="left">
+<p><a href="priority_queue.html"><tt>priority_queue</tt></a></p>
+<p>with <tt>Tag</tt> =</p>
+<p><a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a></p>
+</td>
+<td align="left">
+<p class="c1">O(1)</p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p class="c1">O(1)</p>
+</td>
+</tr>
+<tr>
+<td align="left">
+<p><a href="priority_queue.html"><tt>priority_queue</tt></a></p>
+<p>with <tt>Tag</tt> =</p>
+<p><a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a></p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(n)</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(n)</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(n)</p>
+</td>
+</tr>
+<tr>
+<td align="left">
+<p><a href="priority_queue.html"><tt>priority_queue</tt></a></p>
+<p>with <tt>Tag</tt> =</p>
+<p><a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a></p>
+</td>
+<td align="left">
+<p><i>&Theta;(log(n))</i> worst</p>
+<p><i>O(1)</i> amortized</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+</tr>
+<tr>
+<td align="left">
+<p><a href="priority_queue.html"><tt>priority_queue</tt></a></p>
+<p>with <tt>Tag</tt> =</p>
+<p><a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a></p>
+</td>
+<td align="left">
+<p class="c1">O(1)</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+</tr>
+<tr>
+<td align="left">
+<p><a href="priority_queue.html"><tt>priority_queue</tt></a></p>
+<p>with <tt>Tag</tt> =</p>
+<p><a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a></p>
+</td>
+<td align="left">
+<p class="c1">O(1)</p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p><i>&Theta;(log(n))</i> worst</p>
+<p><i>O(1)</i> amortized,</p>or
+
+ <p><i>&Theta;(log(n))</i> amortized</p>
+<p><sub><a href="#thin_heap_note">[thin_heap_note]</a></sub></p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(n)</p>
+</td>
+</tr>
+</table>
+<p><sub><a name="std_mod1" id="std_mod1">[std note 1]</a> This
+ is not a property of the algorithm, but rather due to the fact
+ that the STL's priority queue implementation does not support
+ iterators (and consequently the ability to access a specific
+ value inside it). If the priority queue is adapting an
+ <tt>std::vector</tt>, then it is still possible to reduce this
+ to <i>&Theta;(n)</i> by adapting over the STL's adapter and
+ using the fact that <tt>top</tt> returns a reference to the
+ first value; if, however, it is adapting an
+ <tt>std::deque</tt>, then this is impossible.</sub></p>
+<p><sub><a name="std_mod2" id="std_mod2">[std note 2]</a> As
+ with <a href="#std_mod1">[std note 1]</a>, this is not a
+ property of the algorithm, but rather the STL's implementation.
+ Again, if the priority queue is adapting an
+ <tt>std::vector</tt> then it is possible to reduce this to
+ <i>&Theta;(n)</i>, but with a very high constant (one must call
+ <tt>std::make_heap</tt> which is an expensive linear
+ operation); if the priority queue is adapting an
+ <tt>std::dequeu</tt>, then this is impossible.</sub></p>
+<p><sub><a name="thin_heap_note" id="thin_heap_note">[thin_heap_note]</a> A thin heap has
+ <i>&amp;Theta(log(n))</i> worst case <tt>modify</tt> time
+ always, but the amortized time depends on the nature of the
+ operation: I) if the operation increases the key (in the sense
+ of the priority queue's comparison functor), then the amortized
+ time is <i>O(1)</i>, but if II) it decreases it, then the
+ amortized time is the same as the worst case time. Note that
+ for most algorithms, I) is important and II) is not.</sub></p>
+<h3><a name="pq_observations_amortized_push_pop" id="pq_observations_amortized_push_pop">Amortized <tt>push</tt>
+ and <tt>pop</tt> operations</a></h3>
+<p>In many cases, a priority queue is needed primarily for
+ sequences of <tt>push</tt> and <tt>pop</tt> operations. All of
+ the underlying data structures have the same amortized
+ logarithmic complexity, but they differ in terms of
+ constants.</p>
+<p>The table above shows that the different data structures are
+ "constrained" in some respects. In general, if a data structure
+ has lower worst-case complexity than another, then it will
+ perform slower in the amortized sense. Thus, for example a
+ redundant-counter binomial heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+ <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>)
+ has lower worst-case <tt>push</tt> performance than a binomial
+ heap (<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>),
+ and so its amortized <tt>push</tt> performance is slower in
+ terms of constants.</p>
+<p>As the table shows, the "least constrained" underlying
+ data structures are binary heaps and pairing heaps.
+ Consequently, it is not surprising that they perform best in
+ terms of amortized constants.</p>
+<ol>
+<li>Pairing heaps seem to perform best for non-primitive
+ types (<i>e.g.</i>, <tt>std::string</tt>s), as shown by
+ <a href="priority_queue_text_push_timing_test.html">Priority
+ Queue Text <tt>push</tt> Timing Test</a> and <a href="priority_queue_text_push_pop_timing_test.html">Priority
+ Queue Text <tt>push</tt> and <tt>pop</tt> Timing
+ Test</a></li>
+<li>binary heaps seem to perform best for primitive types
+ (<i>e.g.</i>, <tt><b>int</b></tt>s), as shown by <a href="priority_queue_random_int_push_timing_test.html">Priority
+ Queue Random Integer <tt>push</tt> Timing Test</a> and
+ <a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+ Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+ Test</a>.</li>
+</ol>
+<h3><a name="pq_observations_graph" id="pq_observations_graph">Graph Algorithms</a></h3>
+<p>In some graph algorithms, a decrease-key operation is
+ required [<a href="references.html#clrs2001">clrs2001</a>];
+ this operation is identical to <tt>modify</tt> if a value is
+ increased (in the sense of the priority queue's comparison
+ functor). The table above and <a href="priority_queue_text_modify_up_timing_test.html">Priority Queue
+ Text <tt>modify</tt> Timing Test - I</a> show that a thin heap
+ (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+ <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>)
+ outperforms a pairing heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+ <tt>Tag</tt> =<tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>),
+ but the rest of the tests show otherwise.</p>
+<p>This makes it difficult to decide which implementation to
+ use in this case. Dijkstra's shortest-path algorithm, for
+ example, requires <i>&Theta;(n)</i> <tt>push</tt> and
+ <tt>pop</tt> operations (in the number of vertices), but
+ <i>O(n<sup>2</sup>)</i> <tt>modify</tt> operations, which can
+ be in practice <i>&Theta;(n)</i> as well. It is difficult to
+ find an <i>a-priori</i> characterization of graphs in which the
+ <u>actual</u> number of <tt>modify</tt> operations will dwarf
+ the number of <tt>push</tt> and <tt>pop</tt> operations.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_regression_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_regression_tests.html
new file mode 100644
index 0000000..1e894ca
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_regression_tests.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Priority-Queue Regression Tests</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Priority-Queue Regression Tests</h1>
+
+ <h2><a name="assoc_desc" id="assoc_desc">Description</a></h2>
+
+ <p>The library contains a single comprehensive regression test.
+ For a given container type in <tt>pb_ds</tt>, the test creates
+ an object of the container type and an object of the
+ corresponding STL type (<i>i.e.</i>,
+ <tt>std::priority_queue</tt>). It then performs a random
+ sequence of methods with random arguments (<i>e.g.</i>, pushes,
+ pops, and so forth) on both objects. At each operation, the
+ test checks the return value of the method, and optionally both
+ compares <tt>pb_ds</tt>'s object with the STL's object as well
+ as performing other consistency checks on <tt>pb_ds</tt>'s
+ object (<i>e.g.</i>, that the size returned by the
+ <tt>size</tt> method corresponds to the distance between its
+ <tt>begin</tt> and end iterators).</p>
+
+ <p>Additionally, the test integrally checks exception safety
+ and resource leaks. This is done as follows. A special
+ allocator type, written for the purpose of the test, both
+ randomly throws an exceptions when allocations are performed,
+ and tracks allocations and de-allocations. The exceptions thrown
+ at allocations simulate memory-allocation failures; the
+ tracking mechanism checks for memory-related bugs (<i>e.g.</i>,
+ resource leaks and multiple de-allocations). Both
+ <tt>pb_ds</tt>'s containers and the containers' value-types are
+ configured to use this allocator.</p>
+
+ <h2><a name="pq_tests" id="pq_tests">Tests</a></h2>
+
+ <p><a href=
+ "../../../../testsuite/ext/pb_ds/regression/priority_queue_rand.cc"><tt>priority_queue_rand.cc</tt></a>
+ checks all priority queue types.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_tests.html
new file mode 100644
index 0000000..de8cb44
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_tests.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Priority-Queue Tests</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Priority-Queue Tests</h1>
+
+ <p><a href="pq_regression_tests.html">Priority-Queue Regression
+ Tests</a> describes the regression tests; <a href=
+ "pq_performance_tests.html">Priority-Queue Performance
+ Tests</a> describes the performance tests.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/prerequisites.html b/libstdc++-v3/docs/html/ext/pb_ds/prerequisites.html
new file mode 100644
index 0000000..7c88884
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/prerequisites.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Prerequisites</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Usage Prerequisites</h1>
+
+ <p><tt>pb_ds</tt> has been successfully tested with the
+ following compilers:</p>
+
+ <ol>
+ <li>g++ 3.3.1, 3.4.4, 4.0, 4.1, and what will be 4.2</li>
+
+ <li>Intel icpc 8.1 and 9</li>
+
+ <li>Visual C++ .Net 2005</li>
+ </ol>
+
+ <p>The library contains only header files, and does not require
+ any other libraries except the STL. All classes are defined in
+ <tt><b>namespace</b> pb_ds</tt>. The library internally uses
+ macros beginning with <tt>PB_DS</tt> (<i>e.g.</i>, for header
+ guards), but <tt>#<b>undef</b></tt>s anything it
+ <tt>#<b>define</b></tt>s (except for header guards). Compiling
+ the library in an environment where macros beginning in
+ <tt>PB_DS</tt> are defined, may yield unpredictable results in
+ compilation, execution, or both.</p>
+
+ <p> Further dependencies are necessary to create the visual output
+ for the performance tests. To create these graphs, two additional
+ packages will be needed: <b>pychart</b> and <b>Beautiful
+ Soup</b>. Both are freely available.
+ </p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue.html
new file mode 100644
index 0000000..169953f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue.html
@@ -0,0 +1,995 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>priority_queue Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>priority_queue</tt> Interface</h1>
+
+ <p>Basic priority queue.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/priority_queue.hpp"><tt>priority_queue.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Value_Type216514186" id=
+"Value_Type216514186"><b>typename</b> Value_Type</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Value type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Cmp_Fn294335" id="Cmp_Fn294335"><b>class</b> Cmp_Fn </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor.</p>
+ </td>
+
+ <td>
+ <pre>
+std::less&lt;<a href=
+"#Value_Type216514186"><tt>Value_Type</tt></a>&gt;
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Data-structure tag.</p>
+ </td>
+
+ <td><a href="pairing_heap_tag.html"><span class=
+ "c2"><tt>pairing_heap_tag</tt></span></a></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>
+ <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Container
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::size_type
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="difference_type868028452" id=
+"difference_type868028452">difference_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::difference_type
+</pre>
+ </td>
+
+ <td>
+ <p>Difference type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">Categories</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="container_category1247973216" id=
+"container_category1247973216">container_category</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Tag278938"><tt>Tag</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>The underlying mapped-structure tag of the
+ container.</p>
+
+ <p>This is one of:</p>
+
+ <ol>
+ <li><a href="binary_heap_tag.html"><span class=
+ "c2"><tt>binary_heap_tag</tt></span></a></li>
+
+ <li><a href="binomial_heap_tag.html"><span class=
+ "c2"><tt>binomial_heap_tag</tt></span></a></li>
+
+ <li><a href="rc_binomial_heap_tag.html"><span class=
+ "c2"><tt>rc_binomial_heap_tag</tt></span></a></li>
+
+ <li><a href="pairing_heap_tag.html"><span class=
+ "c2"><tt>pairing_heap_tag</tt></span></a></li>
+
+ <li><a href="thin_heap_tag.html"><span class=
+ "c2"><tt>thin_heap_tag</tt></span></a></li>
+ </ol>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="cmp_fn394495" id="cmp_fn394495">cmp_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Cmp_Fn294335"><tt>Cmp_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+ type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link6" id="link6">Value-Type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="value_type279018186" id=
+"value_type279018186">value_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Value_Type216514186"><tt>Value_Type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Value type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="reference54418471" id="reference54418471">reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::reference
+</pre>
+ </td>
+
+ <td>
+ <p>Value reference type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::const_reference
+</pre>
+ </td>
+
+ <td>
+ <p>Const value <a href=
+ "#reference54418471"><tt>reference</tt></a> type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="pointer2179769" id="pointer2179769">pointer</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::pointer
+</pre>
+ </td>
+
+ <td>
+ <p>Value pointer type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_pointer878814947" id=
+"const_pointer878814947">const_pointer</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::const_pointer
+</pre>
+ </td>
+
+ <td>
+ <p>Const Value <a href=
+ "#pointer2179769"><tt>pointer</tt></a> type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Iterator Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_point_iterator2364676009" id=
+"const_point_iterator2364676009">const_point_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Const point-type iterator.
+</pre>
+ </td>
+
+ <td>
+ <p>Const point-type iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="point_iterator2789896775" id=
+"point_iterator2789896775">point_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Point-type iterator.
+</pre>
+ </td>
+
+ <td>
+ <p>Point-type iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Const range-type iterator.
+</pre>
+ </td>
+
+ <td>
+ <p>Const range-type iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Range-type iterator.
+</pre>
+ </td>
+
+ <td>
+ <p>Range-type iterator.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link8" id="link8">Public Methods</a></h2>
+
+ <h3><a name="link9" id="link9">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ priority_queue
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ priority_queue
+ (<b>const</b> <a href=
+"#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;r_cmp_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_cmp_fn</tt></span> will be copied by the
+ <a href="#Cmp_Fn294335"><tt>Cmp_Fn</tt></a> object of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ priority_queue
+ (It first_it,
+ It last_it)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of <a href=
+ "#value_type279018186"><tt>value_type</tt></a>s. The
+ <a href="#value_type279018186"><tt>value_type</tt></a>s
+ between <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ priority_queue
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;r_cmp_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of <a href=
+ "#value_type279018186"><tt>value_type</tt></a>s and some
+ policy objects The <a href=
+ "#value_type279018186"><tt>value_type</tt></a>s between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object. <span class=
+ "c1"><tt>r_cmp_fn</tt></span> will be copied by the
+ <a href="#cmp_fn394495"><tt>cmp_fn</tt></a> object of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ priority_queue
+ (<b>const</b> <span class=
+"c2"><tt>priority_queue</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~priority_queue
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<span class="c2"><tt>priority_queue</tt></span> &amp;
+ <b>operator</b>=
+ (<b>const</b> <span class=
+"c2"><tt>priority_queue</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Assignment operator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class="c2"><tt>priority_queue</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link10" id="link10">Information Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ size
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the number of distinct <a href=
+ "#value_type279018186"><tt>value_type</tt></a> objects
+ the container object is storing.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ max_size
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns an upper bound on the number of distinct
+ <a href="#value_type279018186"><tt>value_type</tt></a>
+ objects this container can store.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ empty
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns whether the container object is not storing
+ any <a href=
+ "#value_type279018186"><tt>value_type</tt></a>
+ objects.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link11" id="link11">Insert Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"#point_iterator2789896775"><tt>point_iterator</tt></a>
+ push
+ (<a href=
+"#const_reference495461441"><tt>const_reference</tt></a> r_val)
+</pre>
+ </td>
+
+ <td>
+ <p>Inserts a <a href=
+ "#value_type279018186"><tt>value_type</tt></a> object.
+ returns a <a href=
+ "#point_iterator2789896775"><tt>point_iterator</tt></a>
+ object associated with the new pushed <span class=
+ "c1"><tt>r_val</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link12" id="link12">Find Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"#const_reference495461441"><tt>const_reference</tt></a>
+ top
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#const_reference495461441"><tt>const_reference</tt></a>
+ of the largest <a href=
+ "#value_type279018186"><tt>value_type</tt></a> in the
+ container object, i.e., a <a href=
+ "#value_type279018186"><tt>value_type</tt></a> v_max for
+ which any other <a href=
+ "#value_type279018186"><tt>value_type</tt></a> v in the
+ container object will satisfy !<a href=
+ "#cmp_fn394495"><tt>cmp_fn</tt></a>()(v_max, v).</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link13" id="link13">Modify Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ modify
+ (<a href=
+"#point_iterator2789896775"><tt>point_iterator</tt></a> it,
+ <a href=
+"#const_reference495461441"><tt>const_reference</tt></a> r_new_val)
+</pre>
+ </td>
+
+ <td>
+ <p>Modifies the <a href=
+ "#value_type279018186"><tt>value_type</tt></a> associated
+ with the <a href=
+ "#point_iterator2789896775"><tt>point_iterator</tt></a>
+ <span class="c1"><tt>it</tt></span> into <span class=
+ "c1"><tt>r_new_val</tt></span>.</p>
+
+ <p>To use this method, <a href=
+ "#value_type279018186"><tt>value_type</tt></a> must be
+ assignable.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link14" id="link14">Erase Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ pop
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Pops the largest <a href=
+ "#value_type279018186"><tt>value_type</tt></a>.</p>
+
+ <p>If the container object is empty, results are
+ undefined.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ erase
+ (<a href=
+"#point_iterator2789896775"><tt>point_iterator</tt></a> it)
+</pre>
+ </td>
+
+ <td>
+ <p>Erases the <a href=
+ "#value_type279018186"><tt>value_type</tt></a> associated
+ with the <a href=
+ "#point_iterator2789896775"><tt>point_iterator</tt></a>
+ <span class="c1"><tt>it</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> Pred&gt;
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ erase_if
+ (Pred prd)
+</pre>
+ </td>
+
+ <td>
+ <p>Erases any <a href=
+ "#value_type279018186"><tt>value_type</tt></a> satisfying
+ the predicate <span class="c1"><tt>prd</tt></span>;
+ returns the number of <a href=
+ "#value_type279018186"><tt>value_type</tt></a>s
+ erased.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ clear
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Clears the container object.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link15" id="link15">Split and join
+ Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ join
+ (<span class="c2"><tt>priority_queue</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Joins two container objects. When this function
+ returns, <span class="c1"><tt>other</tt></span> will be
+ empty.</p>
+
+ <p>When calling this method, <span class=
+ "c1"><tt>other</tt></span>'s policies must be
+ equivalent to this object's policies.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> Pred&gt;
+<b>inline</b> <b>void</b>
+ split
+ (Pred prd,
+ <span class="c2"><tt>priority_queue</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Splits into two container objects. When this function
+ returns, <span class="c1"><tt>other</tt></span> will be
+ contain only values v for which <span class=
+ "c1"><tt>prd</tt></span>(v) is <tt><b>true</b></tt>.</p>
+
+ <p>When calling this method, <span class=
+ "c1"><tt>other</tt></span>'s policies must be
+ equivalent to this object's policies.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link16" id="link16">Iteration Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+ begin
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Returns an <a href=
+ "#iterator10418194"><tt>iterator</tt></a> corresponding
+ to the first <a href=
+ "#value_type279018186"><tt>value_type</tt></a> in the
+ container.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+ begin
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a>
+ corresponding to the first <a href=
+ "#value_type279018186"><tt>value_type</tt></a> in the
+ container.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+ end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Returns an <a href=
+ "#iterator10418194"><tt>iterator</tt></a> corresponding
+ to the just-after-last <a href=
+ "#value_type279018186"><tt>value_type</tt></a> in the
+ container.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+ end
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a>
+ corresponding to the just-after-last <a href=
+ "#value_type279018186"><tt>value_type</tt></a> in the
+ container.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html
new file mode 100644
index 0000000..e9aec9c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Random Int Push Pop Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Random Integer <tt>push</tt> and
+ <tt>pop</tt> Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with i.i.d. integer
+ keys into a container using <tt>push</tt> , then removes them
+ using <tt>pop</tt> . It measures the average time for
+ <tt>push</tt> and <tt>pop</tt> as a function of the number of
+ values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc">
+<tt>priority_queue_random_int_push_pop_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+ Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+ <a href="#NPL">NPL</a> shows the results for the native
+ priority queues and <tt>pb_ds</tt> 's priority queues in
+ <a href="pq_performance_tests.html#gcc"><u>g++</u></a>,
+ <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_random_int_push_pop_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt___tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_random_int_push_pop_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>push</tt> <tt>pop</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_random_int_push_pop_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt___tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_random_int_push_pop_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>push</tt> <tt>pop</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_random_int_push_pop_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt___tt_pop_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_random_int_push_pop_timing_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>push</tt> <tt>pop</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>Binary heaps are the most suited for sequences of
+ <tt>push</tt> and <tt>pop</tt> operations of primitive types
+ (<i>e.g.</i> <tt><b>int</b></tt>s). This is explained in
+ <a href="priority_queue_random_int_push_timing_test.html">Priority
+ Queue Random Int <tt>push</tt> Timing Test</a> . (See <a href="priority_queue_text_push_pop_timing_test.html">Priority Queue
+ Text <tt>push</tt> Timing Test</a> for the case of primitive
+ types.)</p>
+<p>At first glance it seems that the STL's vector-based
+ priority queue is approximately on par with <tt>pb_ds</tt>'s
+ corresponding priority queue. There are two differences
+ however:</p>
+<ol>
+<li>The STL's priority queue does not downsize the underlying
+ vector (or deque) as the priority queue becomes smaller
+ (see <a href="priority_queue_text_pop_mem_usage_test.html">Priority Queue
+ Text <tt>pop</tt> Memory Use Test</a>). It is therefore
+ gaining some speed at the expense of space.</li>
+<li>From <a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+ Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+ Test</a>, it seems that the STL's priority queue is slower in
+ terms of <tt>pus</tt> operations. Since the number of
+ <tt>pop</tt> operations is at most that of <tt>push</tt>
+ operations, the test here is the "best" for the STL's
+ priority queue.</li>
+</ol>
+<p><a href="pq_performance_tests.html#pq_observations">Priority-Queue
+ Performance Tests::Observations</a> discusses this further and
+ summarizes.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png
new file mode 100644
index 0000000..68f5e2b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png
new file mode 100644
index 0000000..51f8211
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.png
new file mode 100644
index 0000000..4fc191c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html
new file mode 100644
index 0000000..6532302
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Random Int Push Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Random Integer <tt>push</tt> Timing
+ Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with i.i.d integer keys
+ into a container using <tt>push</tt> . It measures the average
+ time for <tt>push</tt> as a function of the number of
+ values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc"><tt>
+ priority_queue_random_intpush_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+ Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+ <a href="#NPL">NPL</a> show the results for the native priority
+ queues and <tt>pb_ds</tt> 's priority queues in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NBPG">NBPG</a>, <a href="#NBPM">NBPM</a>, and <a href="#NBPL">NBPL</a> shows the
+ results for the binary-heap based native priority queues and
+ <tt>pb_ds</tt> 's priority queues in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_random_int_push_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_random_int_push_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_random_int_push_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_random_int_push_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_random_int_push_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_random_int_push_timing_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBPG_res_div">
+<div id="NBPG_gcc">
+<div id="NBPG_binary_priority_queue_random_int_push_timing_test">
+<div id="NBPG_pq">
+<div id="NBPG_Native_and__tt_pb_ds_455tt__binary_priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBPG" id="NBPG"><img src="binary_priority_queue_random_int_push_timing_test_gcc.png" alt="no image" /></a></h6>NBPG: Native and <tt>pb ds</tt> binary priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBPM_res_div">
+<div id="NBPM_msvc">
+<div id="NBPM_binary_priority_queue_random_int_push_timing_test">
+<div id="NBPM_pq">
+<div id="NBPM_Native_and__tt_pb_ds_455tt__binary_priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBPM" id="NBPM"><img src="binary_priority_queue_random_int_push_timing_test_msvc.png" alt="no image" /></a></h6>NBPM: Native and <tt>pb ds</tt> binary priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBPL_res_div">
+<div id="NBPL_local">
+<div id="NBPL_binary_priority_queue_random_int_push_timing_test">
+<div id="NBPL_pq">
+<div id="NBPL_Native_and__tt_pb_ds_455tt__binary_priority_queue__tt_push_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBPL" id= "NBPL"><img src="binary_priority_queue_random_int_push_timing_test_local.png" alt="no image" /></a></h6>NBPL: Native and <tt>pb ds</tt> binary priority queue <tt>push</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>Binary heaps are the most suited for sequences of
+ <tt>push</tt> and <tt>pop</tt> operations of primitive types
+ (<i>e.g.</i> <tt><b>int</b></tt>s). They are less constrained
+ than any other type, and since it is very efficient to store
+ such types in arrays, they outperform even pairing heaps. (See
+ <a href="priority_queue_text_push_timing_test.html">Priority
+ Queue Text <tt>push</tt> Timing Test</a> for the case of
+ non-primitive types.)</p>
+<p><a href="pq_performance_tests.html#pq_observations">Priority-Queue
+ Performance Tests::Observations</a> discusses this further and
+ summarizes.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png
new file mode 100644
index 0000000..ee8c9b7
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png
new file mode 100644
index 0000000..dead185
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png
new file mode 100644
index 0000000..0a1a8ea
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag.html
new file mode 100644
index 0000000..4bad6ee
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>priority_queue_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>priority_queue_tag</tt> Interface</h1>
+
+ <p>Basic priority-queue data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="container_tag.html"><span class=
+"c2"><tt>container_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.png
new file mode 100644
index 0000000..ed8d875
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.svg b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.svg
new file mode 100644
index 0000000..be007ae
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.svg
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="11in"
+ height="8.5in"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.43"
+ version="1.0"
+ sodipodi:docbase="/mnt/share/src/policy_based_data_structures/pb_ds_images"
+ sodipodi:docname="pq_tag_diagram_2.svg"
+ inkscape:export-filename="/mnt/share/src/policy_based_data_structures/pb_ds_images/pq_tag_diagram_2.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mstart"
+ style="overflow:visible">
+ <path
+ id="path3311"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Sstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Sstart"
+ style="overflow:visible">
+ <path
+ id="path3319"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(0.3,0,0,0.3,-1.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Sstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Sstart"
+ style="overflow:visible">
+ <path
+ id="path3337"
+ d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(0.2,0.2)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Send"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Send"
+ style="overflow:visible">
+ <path
+ id="path3316"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(-0.3,0,0,-0.3,1.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend"
+ style="overflow:visible">
+ <path
+ id="path3322"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(-0.6,0,0,-0.6,3,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path3346"
+ d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(-0.8,-0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lstart"
+ style="overflow:visible">
+ <path
+ id="path3331"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(1.1,0,0,1.1,-5.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lend"
+ style="overflow:visible">
+ <path
+ id="path3328"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="matrix(-1.1,0,0,-1.1,5.5,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2"
+ inkscape:cx="608.69002"
+ inkscape:cy="490.05621"
+ inkscape:document-units="in"
+ inkscape:current-layer="layer1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1278"
+ inkscape:window-height="973"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ gridtolerance="0.125in"
+ guidetolerance="0.125in">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="629"
+ id="guide1307" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="449"
+ id="guide1309" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="269"
+ id="guide1311" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="496"
+ id="guide1313" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="383"
+ id="guide1315" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="241"
+ id="guide1317" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="680"
+ id="guide1319" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="749"
+ id="guide1321" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="124"
+ id="guide1345" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="901"
+ id="guide1347" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="539"
+ id="guide3390" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="359"
+ id="guide3392" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="280.5"
+ id="guide3324" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="195"
+ id="guide3326" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="427"
+ id="guide3328" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="795"
+ id="guide3340" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="179"
+ id="guide1395" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Benjamin Kosnik</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ y="382.17499"
+ x="241.73018"
+ height="23.200001"
+ width="141.64481"
+ id="rect3420"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3418"
+ width="141.64481"
+ height="23.200001"
+ x="52.730194"
+ y="382.17499" />
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="122.35258"
+ y="395.91092"
+ id="text3394"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1383"
+ x="122.35258"
+ y="395.91092">pairing_heap_tag</tspan></text>
+ <text
+ sodipodi:linespacing="100%"
+ id="text3400"
+ y="395.91092"
+ x="310.55255"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1381"
+ x="310.55255"
+ y="395.91092">bionomial_heap_tag</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3380"
+ width="141.64481"
+ height="23.200001"
+ x="425.57764"
+ y="292.56177" />
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="495.20001"
+ y="307.09772"
+ id="text1323"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1363"
+ x="495.20001"
+ y="307.09772">priority_queue_tag</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.16226137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 124.54034,382.1132 L 124.54034,360.6132 L 311.75594,359.6132 L 311.75594,382.1132"
+ id="path2244" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3422"
+ width="141.64481"
+ height="23.200001"
+ x="425.73022"
+ y="382.17499" />
+ <text
+ sodipodi:linespacing="100%"
+ id="text3406"
+ y="395.91092"
+ x="495.3526"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1377"
+ x="495.3526"
+ y="395.91092">rc_binomial_heap_tag</tspan></text>
+ <rect
+ y="382.17499"
+ x="607.93024"
+ height="23.200001"
+ width="141.64481"
+ id="rect3424"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="679.15259"
+ y="395.91092"
+ id="text3412"
+ sodipodi:linespacing="100%"><tspan
+ sodipodi:role="line"
+ id="tspan1379"
+ x="679.15259"
+ y="395.91092">binary_heap_tag</tspan></text>
+ <path
+ id="path3347"
+ d="M 495.79886,382.13056 L 495.79886,321.40547"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2281"
+ width="141.64481"
+ height="23.200001"
+ x="795.625"
+ y="382.17499" />
+ <text
+ sodipodi:linespacing="100%"
+ id="text2283"
+ y="395.91092"
+ x="866.84735"
+ style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan1359"
+ x="866.84735"
+ y="395.91092">thin_heap_tag</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 311.5,360 L 680,360"
+ id="path2309" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path2244"
+ id="use2311"
+ transform="matrix(-1,0,0,1,992.3371,0)"
+ width="990"
+ height="765" />
+ </g>
+</svg>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html
new file mode 100644
index 0000000..4710ea9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Join Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>join</tt> Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+ two containers, then merges the containers. It uses
+ <tt>join</tt> for <tt>pb_ds</tt>'s priority queues; for the
+ STL's priority queues, it successively pops values from one
+ container and pushes them into the other. The test measures the
+ average time as a function of the number of values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc"><tt>priority_queue_text_join_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+ Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+ <a href="#NPL">NPL</a> show the results for the native priority
+ queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc</u></a>, and <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_join_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_join_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_join_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_join_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_join_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_join_timing_test_local.png" alt="no image" /></a></h6>NPL: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this test the node-based heaps perform <tt>join</tt> in
+ either logarithmic or constant time. The binary heap requires
+ linear time, since the well-known heapify algorithm [<a href="references.html#clrs2001">clrs2001</a>] is linear.</p>
+<p>It would be possible to apply the heapify algorithm to the
+ STL containers, if they would support iteration (which they
+ don't). Barring iterators, it is still somehow possible to
+ perform linear-time merge on a <tt>std::vector</tt>-based STL
+ priority queue, using <tt>top()</tt> and <tt>size()</tt> (since
+ they are enough to expose the underlying array), but this is
+ impossible for a <tt>std::deque</tt>-based STL priority queue.
+ Without heapify, the cost is super-linear.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png
new file mode 100644
index 0000000..a48bb35
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png
new file mode 100644
index 0000000..1701b4d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png
new file mode 100644
index 0000000..0575b99
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html
new file mode 100644
index 0000000..6935957
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html
@@ -0,0 +1,204 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Modify (Down) Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>modify</tt> Timing Test - II</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+ into a container then modifies each one "down" (<i>i.e.,</i> it
+ makes it smaller). It uses <tt>modify</tt> for <tt>pb_ds</tt>'s
+ priority queues; for the STL's priority queues, it pops values
+ from a container until it reaches the value that should be
+ modified, then pushes values back in. It measures the average
+ time for <tt>modify</tt> as a function of the number of
+ values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.cc"><tt>priority_queue_text_modify_down_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100 f)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The main purpose of this test is to contrast <a href="priority_queue_text_modify_up_timing_test.html">Priority Queue
+ Text <tt>modify</tt> Timing Test - I</a>.</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+ <a href="#NPL">NPL</a> show the results for the native priority
+ queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NRTG">NRTG</a>, <a href="#NRTM">NRTM</a>, and <a href="#NRTL">NRTL</a> show the results
+ for the pairing heap and thin heaps in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively,</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_modify_down_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_modify_down_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_modify_down_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_modify_down_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_modify_down_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_modify_down_timing_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTG_res_div">
+<div id="NRTG_gcc">
+<div id="NRTG_priority_queue_text_modify_down_timing_test_pairing_thin">
+<div id="NRTG_pq">
+<div id="NRTG_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTG" id="NRTG"><img src="priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png" alt="no image" /></a></h6>NRTG: Pairing and thin priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTM_res_div">
+<div id="NRTM_msvc">
+<div id="NRTM_priority_queue_text_modify_down_timing_test_pairing_thin">
+<div id="NRTM_pq">
+<div id="NRTM_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTM" id="NRTM"><img src="priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png" alt="no image" /></a></h6>NRTM: Pairing and thin priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTL_res_div">
+<div id="NRTL_local">
+<div id="NRTL_priority_queue_text_modify_down_timing_test_pairing_thin">
+<div id="NRTL_pq">
+<div id="NRTL_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTL" id= "NRTL"><img src="priority_queue_text_modify_down_timing_test_pairing_thin_local.png" alt="no image" /></a></h6>NRTL: Pairing and thin priority queue <tt>modify</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>Most points in these results are similar to <a href="priority_queue_text_modify_up_timing_test.html">Priority Queue
+ Text <tt>modify</tt> Timing Test - I</a>.</p>
+<p>It is interesting to note, however, that as opposed to that
+ test, a thin heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+ <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>) is
+ outperformed by a pairing heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+ <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>).
+ In this case, both heaps essentially perform an <tt>erase</tt>
+ operation followed by a <tt>push</tt> operation. As the other
+ tests show, a pairing heap is usually far more efficient than a
+ thin heap, so this is not surprising.</p>
+<p>Most algorithms that involve priority queues increase values
+ (in the sense of the priority queue's comparison functor), and
+ so <a href="priority_queue_text_modify_up_timing_test.html">Priority Queue
+ Text <tt>modify</tt> Timing Test - I</a> is more interesting
+ than this test.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png
new file mode 100644
index 0000000..74cbc65
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png
new file mode 100644
index 0000000..2fa9c79
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.png
new file mode 100644
index 0000000..20b6637
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png
new file mode 100644
index 0000000..ca90183
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png
new file mode 100644
index 0000000..977d167
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png
new file mode 100644
index 0000000..bf68bf9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html
new file mode 100644
index 0000000..3db4639
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html
@@ -0,0 +1,222 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Modify (Up) Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>modify</tt> Timing Test - I</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+ into a container then modifies each one "up" (<i>i.e.,</i> it
+ makes it larger). It uses <tt>modify</tt> for <tt>pb_ds</tt>'s
+ priority queues; for the STL's priority queues, it pops values
+ from a container until it reaches the value that should be
+ modified, then pushes values back in. It measures the average
+ time for <tt>modify</tt> as a function of the number of
+ values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.cc"><tt>priority_queue_text_modify_up_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100 t)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+ Queues::Implementations</a>) for graph algorithms settings.
+ Note that making an arbitrary value larger (in the sense of the
+ priority queue's comparison functor) corresponds to
+ decrease-key in standard graph algorithms [<a href="references.html#clrs2001">clrs2001</a>].</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+ <a href="#NPL">NPL</a> show the results for the native priority
+ queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NRTG">NRTG</a>, <a href="#NRTM">NRTM</a>, and <a href="#NRTL">NRTL</a> show the results
+ for the pairing heap and thin heaps in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively,</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_modify_up_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_modify_up_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_modify_up_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_modify_up_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_modify_up_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_modify_up_timing_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTG_res_div">
+<div id="NRTG_gcc">
+<div id="NRTG_priority_queue_text_modify_up_timing_test_pairing_thin">
+<div id="NRTG_pq">
+<div id="NRTG_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTG" id="NRTG"><img src="priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png" alt="no image" /></a></h6>NRTG: Pairing and thin priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTM_res_div">
+<div id="NRTM_msvc">
+<div id="NRTM_priority_queue_text_modify_up_timing_test_pairing_thin">
+<div id="NRTM_pq">
+<div id="NRTM_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTM" id="NRTM"><img src="priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png" alt="no image" /></a></h6>NRTM: Pairing and thin priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTL_res_div">
+<div id="NRTL_local">
+<div id="NRTL_priority_queue_text_modify_up_timing_test_pairing_thin">
+<div id="NRTL_pq">
+<div id="NRTL_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTL" id= "NRTL"><img src="priority_queue_text_modify_up_timing_test_pairing_thin_local.png" alt="no image" /></a></h6>NRTL: Pairing and thin priority queue <tt>modify</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>As noted above, increasing an arbitrary value (in the sense
+ of the priority queue's comparison functor) is very common in
+ graph-related algorithms. In this case, a thin heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+ <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>)
+ outperforms a pairing heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+ <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>).
+ Conversely, <a href="priority_queue_text_push_timing_test.html">Priority Queue Text
+ <tt>push</tt> Timing Test</a>, <a href="priority_queue_text_push_pop_timing_test.html">Priority Queue
+ Text <tt>push</tt> and <tt>pop</tt> Timing Test</a>, <a href="priority_queue_random_int_push_timing_test.html">Priority
+ Queue Random Integer <tt>push</tt> Timing Test</a>, and
+ <a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+ Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+ Test</a> show that the situation is reversed for other
+ operations. It is not clear when to prefer one of these two
+ different types.</p>
+<p>In this test <tt>pb_ds</tt>'s binary heaps effectively
+ perform modify in linear time. As explained in <a href="pq_design.html#pq_traits">Priority Queue Design::Traits</a>,
+ given a valid point-type iterator, a binary heap can perform
+ <tt>modify</tt> logarithmically. The problem is that binary
+ heaps invalidate their find iterators with each modifying
+ operation, and so the only way to obtain a valid point-type
+ iterator is to iterate using a range-type iterator until
+ finding the appropriate value, then use the range-type iterator
+ for the <tt>modify</tt> operation.</p>
+<p>The explanation for the STL's priority queues' performance
+ is similar to that in <a href="priority_queue_text_join_timing_test.html">Priority Queue Text
+ <tt>join</tt> Timing Test</a>.</p>
+<p><a href="pq_performance_tests.html#pq_observations">Priority-Queue
+ Performance Tests::Observations</a> discusses this further and
+ summarizes.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png
new file mode 100644
index 0000000..d9dedc2
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png
new file mode 100644
index 0000000..31575b4
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png
new file mode 100644
index 0000000..4005547
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png
new file mode 100644
index 0000000..1aa5aba
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png
new file mode 100644
index 0000000..b878dde
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png
new file mode 100644
index 0000000..7405943
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html
new file mode 100644
index 0000000..8b5388e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Pop Memory Use Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>pop</tt> Memory Use Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+ a container, then pops them until only one is left in the
+ container. It measures the memory use as a function of the
+ number of values pushed to the container.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc"><tt>priority_queue_text_pop_mem_usage_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+ Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+ <a href="#NPL">NPL</a> show the results for the native priority
+ queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_pop_mem_usage_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_pop_455tt__memory-use_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_pop_mem_usage_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>pop</tt> memory-use test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_pop_mem_usage_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_pop_455tt__memory-use_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_pop_mem_usage_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>pop</tt> memory-use test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_pop_mem_usage_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_pop_455tt__memory-use_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_pop_mem_usage_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>pop</tt> memory-use test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>The priority queue implementations (excluding the STL's) use
+ memory proportionally to the number of values they hold:
+ node-based implementations (<i>e.g.</i>, a pairing heap) do so
+ naturally; <tt>pb_ds</tt>'s binary heap de-allocates memory when
+ a certain lower threshold is exceeded.</p>
+<p>Note from <a href="priority_queue_text_push_pop_timing_test.html">Priority Queue
+ Text <tt>push</tt> and <tt>pop</tt> Timing Test</a> and
+ <a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+ Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+ Test</a> that this does not impede performance compared to the
+ STL's priority queues.</p>
+<p>(See <a href="hash_random_int_erase_mem_usage_test.html">Hash-Based Erase
+ Memory Use Test</a> for a similar phenomenon regarding priority
+ queues.)</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png
new file mode 100644
index 0000000..2c1918d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png
new file mode 100644
index 0000000..c1413fc
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.png
new file mode 100644
index 0000000..9717f49
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html
new file mode 100644
index 0000000..02fe321
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Push Pop Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>push</tt> and <tt>pop</tt> Timing
+ Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+ a container using <tt>push</tt> , then removes them using
+ <tt>pop</tt> . It measures the average time for <tt>push</tt>
+ as a function of the number of values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc"><tt>
+ priority_queue_text_push_pop_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+ Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+ <a href="#NPL">NPL</a> show the results for the native priority
+ queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NBRG">NBRG</a>, <a href="#NBRM">NBRM</a>, and <a href="#NBRL">NBRL</a> show the results
+ for the native priority queues and <tt>pb_ds</tt>'s pairing
+ queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_push_pop_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_push_pop_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_push_pop_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_push_pop_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_push_pop_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_push_pop_timing_test_local.png" alt="no image" /></a></h6>NPL: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRG_res_div">
+<div id="NBRG_gcc">
+<div id="NBRG_pairing_priority_queue_text_push_pop_timing_test">
+<div id="NBRG_pq">
+<div id="NBRG_Native_tree_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRG" id="NBRG"><img src="pairing_priority_queue_text_push_pop_timing_test_gcc.png" alt="no image" /></a></h6>NBRG: Native tree and <tt>pb ds</tt> pairing priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRM_res_div">
+<div id="NBRM_msvc">
+<div id="NBRM_pairing_priority_queue_text_push_pop_timing_test">
+<div id="NBRM_pq">
+<div id="NBRM_Native_tree_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRM" id="NBRM"><img src="pairing_priority_queue_text_push_pop_timing_test_msvc.png" alt="no image" /></a></h6>NBRM: Native tree and <tt>pb ds</tt> pairing priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRL_res_div">
+<div id="NBRL_local">
+<div id="NBRL_pairing_priority_queue_text_push_pop_timing_test">
+<div id="NBRL_pq">
+<div id="NBRL_Native_tree_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRL" id= "NBRL"><img src="pairing_priority_queue_text_push_pop_timing_test_local.png" alt="no image" /></a></h6>NBRL: Native tree and <tt>pb ds</tt> pairing priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>These results are very similar to <a href="priority_queue_text_push_timing_test.html">Priority Queue Text
+ <tt>push</tt> Timing Test</a>. As stated there, pairing heaps
+ (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+ <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>)
+ are most suited for <tt>push</tt> and <tt>pop</tt> sequences of
+ non-primitive types such as strings. Observing these two tests,
+ one can note that a pairing heap outperforms the others in
+ terms of <tt>push</tt> operations, but equals binary heaps
+ (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+ <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>) if
+ the number of <tt>push</tt> and <tt>pop</tt> operations is
+ equal. As the number of <tt>pop</tt> operations is at most
+ equal to the number of <tt>push</tt> operations, pairing heaps
+ are better in this case. See <a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+ Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+ Test</a> for a case which is different.</p>
+<p><a href="pq_performance_tests.html#pq_observations">Priority-Queue
+ Performance Tests::Observations</a> discusses this further and
+ summarizes.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png
new file mode 100644
index 0000000..d4886ae
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png
new file mode 100644
index 0000000..a7c5f89
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png
new file mode 100644
index 0000000..a572040
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html
new file mode 100644
index 0000000..67ae4b9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html
@@ -0,0 +1,219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Push Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>push</tt> Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+ a container using <tt>push</tt> . It measures the average time
+ for <tt>push</tt> as a function of the number of values
+ pushed.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc"><tt>priority_queue_text_push_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+ Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+ <a href="#NPL">NPL</a> show the results for the native priority
+ queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively; Figures <a href="#NBRG">NBRG</a>, <a href="#NBRM">NBRM</a>, and <a href="#NBRL">NBRL</a> shows the
+ results for the binary-heap based native priority queues and
+ <tt>pb_ds</tt>'s pairing-heap priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="pq_performance_tests.html#local"><u>local</u></a>,
+ respectively</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_push_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_push_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_push_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_push_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_push_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_push_timing_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRG_res_div">
+<div id="NBRG_gcc">
+<div id="NBRG_pairing_priority_queue_text_push_timing_test">
+<div id="NBRG_pq">
+<div id="NBRG_Native_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRG" id="NBRG"><img src="pairing_priority_queue_text_push_timing_test_gcc.png" alt="no image" /></a></h6>NBRG: Native and <tt>pb ds</tt> pairing priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRM_res_div">
+<div id="NBRM_msvc">
+<div id="NBRM_pairing_priority_queue_text_push_timing_test">
+<div id="NBRM_pq">
+<div id="NBRM_Native_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRM" id="NBRM"><img src="pairing_priority_queue_text_push_timing_test_msvc.png" alt="no image" /></a></h6>NBRM: Native and <tt>pb ds</tt> pairing priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRL_res_div">
+<div id="NBRL_local">
+<div id="NBRL_pairing_priority_queue_text_push_timing_test">
+<div id="NBRL_pq">
+<div id="NBRL_Native_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRL" id= "NBRL"><img src="pairing_priority_queue_text_push_timing_test_local.png" alt="no image" /></a></h6>NBRL: Native and <tt>pb ds</tt> pairing priority queue <tt>push</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>Pairing heaps (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+ <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>)
+ are the most suited for sequences of <tt>push</tt> and
+ <tt>pop</tt> operations of non-primitive types (<i>e.g.</i>
+<tt>std::string</tt>s). (see also <a href="priority_queue_text_push_pop_timing_test.html">Priority Queue
+ Text <tt>push</tt> and <tt>pop</tt> Timing Test</a>.) They are
+ less constrained than binomial heaps, <i>e.g.</i>, and since
+ they are node-based, they outperform binary heaps. (See
+ <a href="priority_queue_random_int_push_timing_test.html">Priority
+ Queue Random Integer <tt>push</tt> Timing Test</a> for the case
+ of primitive types.)</p>
+<p>The STL's priority queues do not seem to perform well in
+ this case: the <tt>std::vector</tt> implementation needs to
+ perform a logarithmic sequence of string operations for each
+ operation, and the deque implementation is possibly hampered by
+ its need to manipulate a relatively-complex type (deques
+ support a <i>O(1)</i> <tt>push_front</tt>, even though it is
+ not used by <tt>std::priority_queue</tt>.)</p>
+<p><a href="pq_performance_tests.html#pq_observations">Priority-Queue
+ Performance Tests::Observations</a> discusses this further and
+ summarizes.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png
new file mode 100644
index 0000000..8895f50
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png
new file mode 100644
index 0000000..da7297b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png
new file mode 100644
index 0000000..ff39ca3
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/quadratic_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/quadratic_probe_fn.html
new file mode 100644
index 0000000..f3209d3
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/quadratic_probe_fn.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>quadratic_probe_fn Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>quadratic_probe_fn</tt> Interface</h1>
+
+ <p>A probe sequence policy using square increments.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+
+ <td>size_t</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+ <h3><a name="link5" id="link5">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class=
+"c2"><tt>quadratic_probe_fn</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link6" id="link6">Protected Methods</a></h2>
+
+ <h3><a name="link7" id="link7">Offset Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ <b>operator</b>()
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <span class="c1"><tt>i</tt></span>-th
+ offset from the hash value.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png
new file mode 100644
index 0000000..6196270
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png
new file mode 100644
index 0000000..8310520
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png
new file mode 100644
index 0000000..2206cef
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/range_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_ds/range_invalidation_guarantee.html
new file mode 100644
index 0000000..e59a257
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/range_invalidation_guarantee.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>range_invalidation_guarantee Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>range_invalidation_guarantee</tt> Interface</h1>
+
+ <p>Signifies an invalidation guarantee that includes all those
+ of its base, and additionally, that any range-type iterator
+ (including the returns of begin() and end()) is in the correct
+ relative positions to other range-type iterators as long as its
+ corresponding entry has not be erased, regardless of
+ modifications to the container object.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="point_invalidation_guarantee.html"><span class=
+"c2"><tt>point_invalidation_guarantee</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/rationale_null_node_updator.png b/libstdc++-v3/docs/html/ext/pb_ds/rationale_null_node_updator.png
new file mode 100644
index 0000000..4387489
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/rationale_null_node_updator.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/rb_tree_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/rb_tree_tag.html
new file mode 100644
index 0000000..600235d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/rb_tree_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>rb_tree_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>rb_tree_tag</tt> Interface</h1>
+
+ <p>Red-black tree data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="tree_tag.html"><span class=
+"c2"><tt>tree_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/rc_binomial_heap_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/rc_binomial_heap_tag.html
new file mode 100644
index 0000000..46106f4
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/rc_binomial_heap_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>rc_binomial_heap_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>rc_binomial_heap_tag</tt> Interface</h1>
+
+ <p>Redundant-counter binomial-heap data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="priority_queue_tag.html"><span class=
+"c2"><tt>priority_queue_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/references.html b/libstdc++-v3/docs/html/ext/pb_ds/references.html
new file mode 100644
index 0000000..b96827b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/references.html
@@ -0,0 +1,258 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>References</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>References</h1>
+
+ <ol>
+ <li>[<a name="abrahams97exception" id=
+ "abrahams97exception">abrahams97exception</a>] Dave Abrahams,
+ STL Exception Handling Contract, <a href=
+ "http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf">
+ http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf</a></li>
+
+ <li>[<a name="alexandrescu01modern" id=
+ "alexandrescu01modern">alexandrescu01modern</a>] Andrei
+ Alexandrescu, <i>Modern C++ Design: Generic Programming and
+ Design Patterns Applied</i>, Addison-Wesley Publishing
+ Company, 2001</li>
+
+ <li>[<a name="andrew04mtf" id="andrew04mtf">andrew04mtf</a>]
+ K. Andrew and D. Gleich, "MTF, Bit, and COMB: A Guide to
+ Deterministic and Randomized Algorithms for the List Update
+ Problem"</li>
+
+ <li>[<a name="austern00noset" id=
+ "austern00noset">austern00noset</a>] Matthew Austern, "Why
+ You shouldn't use <tt>set</tt> - and What You Should Use
+ Instead", C++ Report, April, 2000</li>
+
+ <li>[<a name="austern01htprop" id=
+ "austern01htprop">austern01htprop</a>] Matthew Austern, "A
+ Proposal to Add Hashtables to the Standard Library", <a href=
+ "http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2001/n1326l.html">
+ http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2001/n1326l.html</a></li>
+
+ <li>[<a name="austern98segmented" id=
+ "austern98segmented">austern98segmented</a>] Matthew Austern,
+ "Segmented iterators and hierarchical algorithms", Generic
+ Programming, April 1998, pp. 80-90</li>
+
+ <li>[<a name="boost_timer" id="boost_timer">boost_timer</a>],
+ "Boost timer library", <a href=
+ "http://www.boost.org/">http://www.boost.org</a> by Beman
+ Dawes</li>
+
+ <li>[<a name="boost_pool" id="boost_pool">boost_pool</a>],
+ "Boost pool library", <a href=
+ "http://www.boost.org/">http://www.boost.org</a> by Stephen
+ Cleary</li>
+
+ <li>[<a name="boost_type_traits" id=
+ "boost_type_traits">boost_type_traits</a>], "Boost
+ <tt>type_traits</tt> library", <a href=
+ "http://www.boost.org/">http://www.boost.org</a> by John
+ Maddock, Steve Cleary, <i>et. al.</i></li>
+
+ <li>[<a name="brodal96priority" id=
+ "brodal96priority">brodal96priority</a>] Gerth Stolting
+ Brodal, <a href=
+ "http://portal.acm.org/citation.cfm?id=313883">Worst-case
+ efficient priority queues</a></li>
+
+ <li>[<a name="bulka99efficient" id=
+ "bulka99efficient">bulka99efficient</a>] D. Bulka, and D.
+ Mayhew, "Efficient C++ Programming Techniques.",
+ Addison-Wesley Publishing Company, Addison-Wesley, 1997</li>
+
+ <li>[<a name="clrs2001" id="clrs2001">clrs2001</a>] T. H.
+ Cormen, C. E., Leiserson, R. L. Rivest, C. and Stein,
+ "Introduction to Algorithms, 2nd ed.", MIT Press, 2001</li>
+
+ <li>[<a name="dinkumware_stl" id=
+ "dinkumware_stl">dinkumware_stl</a>], "Dinkumware C++ Library
+ Reference", <a href=
+ "http://www.dinkumware.com/htm_cpl/index.html">http://www.dinkumware.com/htm_cpl/index.html</a></li>
+
+ <li>[<a name="dubhashi98neg" id=
+ "dubhashi98neg">dubhashi98neg</a>] D. Dubashi, and D. Ranjan,
+ "Balls and bins: A study in negative dependence.", Random
+ Structures and Algorithms 13, 2 (1998), 99-124</li>
+
+ <li>[<a name="fagin79extendible" id=
+ "fagin79extendible">fagin79extendible</a>] R. Fagin, J.
+ Nievergelt, N. Pippenger, and H. R. Strong, "Extendible
+ hashing - a fast access method for dynamic files", ACM Trans.
+ Database Syst. 4, 3 (1979), 315-344</li>
+
+ <li>[<a name="filliatre2000ptset" id=
+ "filliatre2000ptset">filliatre2000ptset</a>], J. C.
+ Filliatre, "Ptset: Sets of integers implemented as Patricia
+ trees", <a href=
+ "http://www.lri.fr/~filliatr/ftp/ocaml/misc/ptset.ml">http://www.lri.fr/~filliatr/ftp/ocaml/misc/ptset.ml</a></li>
+
+ <li>[<a name="fredman86pairing" id=
+ "fredman86pairing">fredman86pairing</a>], M. L. Fredman, R
+ Sedgewick, D. D. Sleator, R. E. Tarjan, <a href=
+ "http://www.cs.cmu.edu/~sleator/papers/pairing-heaps.pdf">The
+ pairing heap: a new form of self-adjusting heap</a></li>
+
+ <li>[<a name="gamma95designpatterns" id=
+ "gamma95designpatterns">gamma95designpatterns</a>] E. Gamma,
+ R. Helm, R. Johnson, and J. Vlissides, "Design Patterns -
+ Elements of Reusable Object-Oriented Software",
+ Addison-Wesley Publishing Company, Addison-Wesley, 1995</li>
+
+ <li>[<a name="garg86order" id="garg86order">garg86order</a>]
+ A. K. Garg and C. C. Gotlieb, "Order-preserving key
+ transformations", Trans. Database Syst. 11, 2 (1986),
+ 213-234</li>
+
+ <li>[<a name="hyslop02making" id=
+ "hyslop02making">hyslop02making</a>] J. Hyslop, and H.
+ Sutter, "Making a real hash of things", C++ Report, May
+ 2002</li>
+
+ <li>[<a name="jossutis01stl" id=
+ "jossutis01stl">jossutis01stl</a>] N. M. Jossutis, "The C++
+ Standard Library - A Tutorial and Reference", Addison-Wesley
+ Publishing Company, Addison-Wesley, 2001</li>
+
+ <li>[<a name="kt99fat_heaps" id=
+ "kt99fat_heaps">kt99fat_heas</a>] Haim Kaplan and Robert E.
+ Tarjan, <a href=
+ "http://www.cs.princeton.edu/research/techreps/TR-597-99">New
+ Heap Data Structures</a></li>
+
+ <li>[<a name="kleft00sets" id="kleft00sets">kleft00sets</a>]
+ Klaus Kleft and Angelika Langer, "Are Set Iterators Mutable
+ or Immutable?", C/C++ Users Jornal, October 2000</li>
+
+ <li>[<a name="knuth98sorting" id=
+ "knuth98sorting">knuth98sorting</a>] D. E. Knuth, "The Art of
+ Computer Programming - Sorting and Searching", Addison-Wesley
+ Publishing Company, Addison-Wesley, 1998</li>
+
+ <li>[<a name="liskov98data" id=
+ "liskov98data">liskov98data</a>] B. Liskov, "Data abstraction
+ and hierarchy", SIGPLAN Notices 23, 5 (May 1998)</li>
+
+ <li>[<a name="litwin80lh" id="litwin80lh">litwin80lh</a>] W.
+ Litwin, "Linear hashing: A new tool for file and table
+ addressing", Proceedings of International Conference on Very
+ Large Data Bases (June 1980), pp. 212-223</li>
+
+ <li>[<a name="maverik_lowerbounds" id=
+ "maverik_lowerbounds">maverik_lowerbounds</a>] Maverik Woo,
+ <a href=
+ "http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps/">
+ Deamortization - Part 2: Binomial Heaps</a></li>
+
+ <li>[<a name="metrowerks_stl" id=
+ "metrowerks_stl">metrowerks_stl</a>], "Metrowerks CodeWarrior
+ Pro 7 MSL C++ Reference Manual",</li>
+
+ <li>[<a name="meyers96more" id=
+ "meyers96more">meyers96more</a>] S. Meyers, "More Effective
+ C++: 35 New Ways to Improve Your Programs and Designs - 2nd
+ ed.", Addison-Wesley Publishing Company, Addison-Wesley,
+ 1996</li>
+
+ <li>[<a name="meyers00nonmember" id=
+ "meyers00nonmember">meyers00nonmember</a>] S. Meyers, "How
+ Non-Member Functions Improve Encapsulation", C/C++ Users
+ Journal, 2000</li>
+
+ <li>[<a name="meyers01stl" id="meyers01stl">meyers01stl</a>]
+ S. Meyers, "Effective STL: 50 Specific Ways to Improve Your
+ Use of the Standard Template Library", Addison-Wesley
+ Publishing Company, Addison-Wesley, 2001</li>
+
+ <li>[<a name="meyers02both" id=
+ "meyers02both">meyers02both</a>] S. Meyers, "Class Template,
+ Member Template - or Both?", C/C++ Users Journal, 2003</li>
+
+ <li>[<a name="motwani95random" id=
+ "motwani95random">motwani95random</a>] R. Motwani, and P.
+ Raghavan, "Randomized Algorithms", Cambridge University
+ Press</li>
+
+ <li>[<a name="mscom" id="mscom">mscom</a>] <a href=
+ "http://www.microsoft.com/com">COM: Component Model Object
+ Technologies</a></li>
+
+ <li>[<a name="musser95rationale" id=
+ "musser95rationale">musser95rationale</a>], David R. Musser,
+ "Rationale for Adding Hash Tables to the C++ Standard
+ Template Library"</li>
+
+ <li>[<a name="musser96stltutorial" id=
+ "musser96stltutorial">musser96stltutorial</a>] D. R. Musser
+ and A. Saini, "STL Tutorial and Reference Guide",
+ Addison-Wesley Publishing Company, Addison-Wesley, 1996</li>
+
+ <li>[<a name="nelson96stlpq" id=
+ "nelson96stlpq">nelson96stlpql</a>] Mark Nelson, <a href=
+ "http://www.dogma.net/markn/articles/pq_stl/priority.htm">Priority
+ Queues and the STL</a>, Dr. Dobbs Journal, January, 1996</li>
+
+ <li>[<a name="okasaki98mereable" id=
+ "okasaki98mereable">okasaki98mereable</a>] C. Okasaki and A.
+ Gill, "Fast mergeable integer maps", In Workshop on ML, pages
+ 77--86, September 1998. 95</li>
+
+ <li>[<a name="sgi_stl" id="sgi_stl">sgi_stl</a>] SGI,
+ "Standard Template Library Programmer's Guide", <a href=
+ "http://www.sgi.com/tech/stl">http://www.sgi.com/tech/stl</a></li>
+
+ <li>[<a name="select_man" id="select_man">select_man</a>]
+ <a href=
+ "http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+select"><tt>select</tt>
+ man page.</a></li>
+
+ <li>[<a name="sleator84amortized" id=
+ "sleator84amortized">sleator84amortized</a>] D. D. Sleator
+ and R. E. Tarjan, "Amortized Efficiency of List Update
+ Problems", ACM Symposium on Theory of Computing, 1984</li>
+
+ <li>[<a name="sleator85self" id=
+ "sleator85self">sleator85self</a>] D. D. Sleator and R. E.
+ Tarjan, "Self-Adjusting Binary Search Trees", ACM Symposium
+ on Theory of Computing, 1985</li>
+
+ <li>[<a name="stepanov94standard" id=
+ "stepanov94standard">stepanov94standard</a>] A. A. Stepanov
+ and M. Lee", "The Standard Template Library"</li>
+
+ <li>[<a name="stroustrup97cpp" id=
+ "stroustrup97cpp">stroustrup97cpp</a>] Bjarne Stroustrup,
+ <i>The C++ Programming Langugage -3rd ed.</i>, Addison-Wesley
+ Publishing Company,Reading, MA, USA, 1997</li>
+
+ <li>[<a name="vandevoorde2002cpptemplates" id=
+ "vandevoorde2002cpptemplates">vandevoorde2002cpptemplates</a>]
+ D. Vandevoorde, and N. M. Josuttis, "C++ Templates: The
+ Complete Guide", Addison-Wesley Publishing Company,
+ Addison-Wesley, 2002</li>
+
+ <li>[<a name="wickland96thirty" id=
+ "wickland96thirty">wickland96thirty</a>] C. A. Wickland,
+ "Thirty Years Among the Dead", National Psychological
+ Institute, Los Angeles, 1996,<a href=
+ "http://myweb.wvnet.edu/~gsa00121/books/amongdead30.zip">http://myweb.wvnet.edu/gsa00121/books/amongdead30.zip</a></li>
+ </ol>
+ <hr />
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/resize_error.html b/libstdc++-v3/docs/html/ext/pb_ds/resize_error.html
new file mode 100644
index 0000000..cb05b50
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/resize_error.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+<title>resize_error Interface</title>
+<meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+</head>
+
+<body>
+<div id="page">
+<h1><tt>resize_error</tt> Interface</h1>
+
+<p>A container cannot be resized.</p>
+
+<p>Exception thrown when a size policy cannot supply an
+ adequate size for an external resize.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/exception.hpp"><tt>exception.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ <a href="exceptions.html"><span class=
+ "c2"><tt>resize_error</tt></span></a>
+ </pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </body>
+ </html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/resize_policy_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/resize_policy_cd.png
new file mode 100644
index 0000000..338e33c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/resize_policy_cd.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/restoring_node_invariants.png b/libstdc++-v3/docs/html/ext/pb_ds/restoring_node_invariants.png
new file mode 100644
index 0000000..33ba84b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/restoring_node_invariants.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_probe_fn.html
new file mode 100644
index 0000000..3d18650
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_probe_fn.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_probe_fn Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_probe_fn</tt> Interface</h1>
+
+ <p>A sample probe policy.</p>
+
+ <p>This class serves to show the interface a probe functor
+ needs to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp"><tt>sample_probe_fn.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+ <h3><a name="link4" id="link4">Constructors, destructor, and
+ related.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_probe_fn
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+
+ <p>Must be default constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_probe_fn
+ (<b>const</b> sample_probe_fn &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+
+ <p>Must be copy constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ swap
+ (sample_probe_fn &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+
+ <p>Must be swappable (if there is such a word).</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Offset methods.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ <b>operator</b>()
+ (const_key_reference r_key,
+ <a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <span class="c1"><tt>i</tt></span>-th
+ offset from the hash value of some key <span class=
+ "c1"><tt>r_key</tt></span>.</p>
+
+ <p><tt>size_type</tt> is the size type on which the
+ functor operates.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_range_hashing.html
new file mode 100644
index 0000000..5b1a900
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_range_hashing.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_range_hashing Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_range_hashing</tt> Interface</h1>
+
+ <p>A sample range-hashing functor.</p>
+
+ <p>This class serves to show the interface a range-hashing
+ functor needs to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp"><tt>sample_range_hashing.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+ <h3><a name="link4" id="link4">Constructors, destructor, and
+ related.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_range_hashing
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+
+ <p>Must be default constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_range_hashing
+ (<b>const</b> sample_range_hashing &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+
+ <p>Must be copy constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ swap
+ (sample_range_hashing &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+
+ <p>Must be swappable (if there is such a word).</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Notification methods.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the policy object that the container's size
+ has changed to <span class="c1"><tt>size</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Operators.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ <b>operator</b>()
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> hash) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Transforms the hash value <span class=
+ "c1"><tt>hash</tt></span> into a ranged-hash value.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_hash_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_hash_fn.html
new file mode 100644
index 0000000..f8e47ab
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_hash_fn.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_ranged_hash_fn Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_ranged_hash_fn</tt> Interface</h1>
+
+ <p>A sample ranged-hash functor.</p>
+
+ <p>This class serves to show the interface a ranged-hash
+ functor needs to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp"><tt>sample_ranged_hash_fn.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+ <h3><a name="link4" id="link4">Constructors, destructor, and
+ related.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_ranged_hash_fn
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+
+ <p>Must be default constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_ranged_hash_fn
+ (<b>const</b> sample_ranged_hash_fn &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+
+ <p>Must be copy constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ swap
+ (sample_ranged_hash_fn &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+
+ <p>Must be swappable (if there is such a word).</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Notification methods.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the policy object that the container's size
+ has changed to <span class="c1"><tt>size</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Operators.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ <b>operator</b>()
+ (const_key_reference r_key) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Transforms <span class="c1"><tt>r_key</tt></span> into
+ a position within the table.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_probe_fn.html
new file mode 100644
index 0000000..b0e744c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_probe_fn.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_ranged_probe_fn Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_ranged_probe_fn</tt> Interface</h1>
+
+ <p>A sample ranged-probe functor.</p>
+
+ <p>This class serves to show the interface a ranged-probe
+ functor needs to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp"><tt>sample_ranged_probe_fn.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+ <h3><a name="link4" id="link4">Constructors, destructor, and
+ related.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_ranged_probe_fn
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+
+ <p>Must be default constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_ranged_probe_fn
+ (<b>const</b> sample_ranged_probe_fn &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+
+ <p>Must be copy constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ swap
+ (sample_ranged_probe_fn &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+
+ <p>Must be swappable (if there is such a word).</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Notification methods.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the policy object that the container's size
+ has changed to <span class="c1"><tt>size</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Operators.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ <b>operator</b>()
+ (const_key_reference r_key,
+ size_t hash,
+ <a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Transforms the <tt><b>const</b></tt> key reference
+ <span class="c1"><tt>r_key</tt></span> <span class=
+ "c1"><tt>into the </tt></span><span class=
+ "c1"><tt>i-th </tt></span>position within the table. This
+ method <span class="c1"><tt>i</tt></span>s called for
+ each collision within the probe sequence.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_policy.html
new file mode 100644
index 0000000..7807ace
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_policy.html
@@ -0,0 +1,413 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_resize_policy Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_resize_policy</tt> Interface</h1>
+
+ <p>A sample resize policy.</p>
+
+ <p>This class serves to show the interface a resize policy
+ needs to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp"><tt>sample_resize_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+ <h3><a name="link4" id="link4">Constructors, destructor, and
+ related.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_resize_policy
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+
+ <p>Must be default constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_range_hashing
+ (<b>const</b> sample_resize_policy &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+
+ <p>Must be copy constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ swap
+ (sample_resize_policy &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+
+ <p>Must be swappable (if there is such a word).</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Insert search
+ notifications.</a></h3>
+
+ <p>Notifications called during an insert operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Find search
+ notifications.</a></h3>
+
+ <p>Notifications called during a find operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link8" id="link8">Erase search
+ notifications.</a></h3>
+
+ <p>Notifications called during an insert operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link9" id="link9">Content change
+ notifications.</a></h3>
+
+ <p>Notifications called when the content of the table changes
+ in a way that can affect the resize policy.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_inserted
+ (<a href="#size_type55424436"><tt>size_type</tt></a> num_e)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies an element was inserted.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erased
+ (<a href="#size_type55424436"><tt>size_type</tt></a> num_e)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies an element was erased.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_cleared
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was cleared.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link10" id="link10">Size change
+ notifications.</a></h3>
+
+ <p>Notifications called when the table changes size.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was resized to <span class=
+ "c1"><tt>new_size</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link11" id="link11">Queries.</a></h3>
+
+ <p>Called to query whether/how to resize.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ is_resize_needed
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Queries whether a resize is needed.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+ get_new_size
+ (<a href="#size_type55424436"><tt>size_type</tt></a> size,
+ <a href=
+"#size_type55424436"><tt>size_type</tt></a> num_used_e) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Queries what the new <span class=
+ "c1"><tt>size</tt></span> should be.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_trigger.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_trigger.html
new file mode 100644
index 0000000..d7042bc
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_trigger.html
@@ -0,0 +1,462 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_resize_trigger Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_resize_trigger</tt> Interface</h1>
+
+ <p>A sample resize trigger policy.</p>
+
+ <p>This class serves to show the interface a trigger policy
+ needs to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp"><tt>
+ sample_resize_trigger.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+ <h3><a name="link4" id="link4">Constructors, destructor, and
+ related.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_resize_trigger
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+
+ <p>Must be default constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_range_hashing
+ (<b>const</b> sample_resize_trigger &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+
+ <p>Must be copy constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ swap
+ (sample_resize_trigger &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+
+ <p>Must be swappable (if there is such a word).</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Insert search
+ notifications.</a></h3>
+
+ <p>Notifications called during an insert operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_insert_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Find search
+ notifications.</a></h3>
+
+ <p>Notifications called during a find operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_find_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link8" id="link8">Erase search
+ notifications.</a></h3>
+
+ <p>Notifications called during an insert operation.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_start
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search started.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_collision
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search encountered a collision.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erase_search_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies a search ended.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link9" id="link9">Content change
+ notifications.</a></h3>
+
+ <p>Notifications called when the content of the table changes
+ in a way that can affect the resize policy.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_inserted
+ (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies an element was inserted. the total number of
+ entries in the table is <span class=
+ "c1"><tt>num_entries</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ notify_erased
+ (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies an element was erased.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_cleared
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was cleared.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link10" id="link10">Size change
+ notifications.</a></h3>
+
+ <p>Notifications called when the table changes size.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was resized as a result of this
+ object's signifying that a resize is needed.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ notify_externally_resized
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Notifies the table was resized externally.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link11" id="link11">Queries.</a></h3>
+
+ <p>Called to query whether/how to resize.</p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ is_resize_needed
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Queries whether a resize is needed.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ is_grow_needed
+ (<a href="#size_type55424436"><tt>size_type</tt></a> size,
+ <a href=
+"#size_type55424436"><tt>size_type</tt></a> num_entries) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Queries whether a grow is needed.</p>
+
+ <p>This method is called only if this object indicated
+ resize is needed. The actual <span class=
+ "c1"><tt>size</tt></span> of the table is <span class=
+ "c1"><tt>size</tt></span>, and the number of entries in
+ it is <span class="c1"><tt>num_entries</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link12" id="link12">Private Methods</a></h2>
+
+ <h3><a name="link13" id="link13">Overrides.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <b>void</b>
+ do_resize
+ (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+ </td>
+
+ <td>
+ <p>Resizes to <span class=
+ "c1"><tt>new_size</tt></span>.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_size_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_size_policy.html
new file mode 100644
index 0000000..e7f58e7
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_size_policy.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_size_policy Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_size_policy</tt> Interface</h1>
+
+ <p>A sample size policy.</p>
+
+ <p>This class serves to show the interface a size policy needs
+ to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp"><tt>sample_size_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+ <h3><a name="link4" id="link4">Constructors, destructor, and
+ related.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_size_policy
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+
+ <p>Must be default constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_range_hashing
+ (<b>const</b> sample_size_policy &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+
+ <p>Must be copy constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ swap
+ (sample_size_policy &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+
+ <p>Must be swappable (if there is such a word).</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Size methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ get_nearest_larger_size
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Given a size <span class="c1"><tt>size</tt></span>,
+ returns a size that is larger.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ get_nearest_smaller_size
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Given a size <span class="c1"><tt>size</tt></span>,
+ returns a size that is smaller.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_tree_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_tree_node_update.html
new file mode 100644
index 0000000..2cfab0a
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_tree_node_update.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_tree_node_update Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_tree_node_update</tt> Interface</h1>
+
+ <p>A sample node updater.</p>
+
+ <p>This class serves to show the interface a node update
+ functor needs to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp"><tt>
+ sample_tree_node_update.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Cmp_Fn294335" id="Cmp_Fn294335"><b>class</b> Cmp_Fn</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">Metadata definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata type.</p>
+
+ <p>This can be any type; size_t is merely an example.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link4" id="link4">Protected Methods</a></h2>
+
+ <h3><a name="link5" id="link5">Conclassors, declassor, and
+ related.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_tree_node_update
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+
+ <p>Must be default constructable.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link6" id="link6">Operators.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ <b>operator</b>()
+ (node_iterator node_it,
+ const_node_iterator end_nd_it) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Updates the rank of a node through a <span class=
+ "c1"><tt>node_iterator</tt></span> <span class=
+ "c1"><tt>node_it</tt></span>; <span class=
+ "c1"><tt>end_nd_it</tt></span> is the end node
+ iterator.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_e_access_traits.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_e_access_traits.html
new file mode 100644
index 0000000..b663e50
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_e_access_traits.html
@@ -0,0 +1,231 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_trie_e_access_traits Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_trie_e_access_traits</tt> Interface</h1>
+
+ <p>A sample trie element-access traits.</p>
+
+ <p>This class serves to show the interface an element- access
+ traits class needs to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp">
+ <tt>sample_trie_e_access_traits.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+std::string, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+const string &amp;, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Const key reference type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link3" id="link3">Element definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+string::const_iterator, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Element <tt><b>const</b></tt> iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="e_type393186" id="e_type393186">e_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+char, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Element type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="max_size10483336" id="max_size10483336">max_size</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+4, e.g.
+</pre>
+ </td>
+
+ <td>
+ <p>Number of distinct elements.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+ <h3><a name="link5" id="link5">Access methods.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>static</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+ begin
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a> to
+ the first element of <span class=
+ "c1"><tt>r_key</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>static</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+ end
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a> to
+ the after-last element of <span class=
+ "c1"><tt>r_key</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>static</b> <a href=
+"#size_type55424436"><tt>size_type</tt></a>
+ e_pos
+ (<a href="#e_type393186"><tt>e_type</tt></a> e)
+</pre>
+ </td>
+
+ <td>
+ <p>Maps an <span class="c1"><tt>element</tt></span> to a
+ position.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_node_update.html
new file mode 100644
index 0000000..beab37c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_node_update.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_trie_node_update Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_trie_node_update</tt> Interface</h1>
+
+ <p>A sample node updater.</p>
+
+ <p>This class serves to show the interface a node update
+ functor needs to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp"><tt>
+ sample_trie_node_update.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="E_Access_Traits686553840" id=
+"E_Access_Traits686553840"><b>class</b> E_Access_Traits</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">Metadata definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+size_t
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata type.</p>
+
+ <p>This can be any type; size_t is merely an example.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link4" id="link4">Protected Methods</a></h2>
+
+ <h3><a name="link5" id="link5">Conclassors, declassor, and
+ related.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_trie_node_update
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+
+ <p>Must be default constructable.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link6" id="link6">Operators.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ <b>operator</b>()
+ (node_iterator node_it,
+ const_node_iterator end_nd_it) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Updates the rank of a node through a <span class=
+ "c1"><tt>node_iterator</tt></span> <span class=
+ "c1"><tt>node_it</tt></span>; <span class=
+ "c1"><tt>end_nd_it</tt></span> is the end node
+ iterator.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_update_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_update_policy.html
new file mode 100644
index 0000000..f671bcd
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_update_policy.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>sample_update_policy Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>sample_update_policy</tt> Interface</h1>
+
+ <p>A sample list-update policy.</p>
+
+ <p>This class serves to show the interface a list update
+ functor needs to support.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp"><tt>sample_update_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Public Methods</a></h2>
+
+ <h3><a name="link2" id="link2">Constructors, destructor, and
+ related.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_update_policy
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+
+ <p>Must be default constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ sample_update_policy
+ (<b>const</b> sample_update_policy &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+
+ <p>Must be copy constructable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ swap
+ (sample_update_policy &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+
+ <p>Must be swappable (if there is such a word).</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Protected Types and
+ Constants</a></h2>
+
+ <h3><a name="link4" id="link4">Metadata definitions.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+Some metadata type.
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata on which this functor operates.</p>
+
+ <p>The <tt><b>class</b></tt> must declare the metadata
+ type on which it operates; the list-update based
+ containers will append to each node an object of this
+ type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Metadata operations.</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#metadata_type2849297114"><tt>metadata_type</tt></a>
+ <b>operator</b>()
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Creates a metadata object.</p>
+
+ <p>A list-update based container object will call this
+ method to create a metadata type when a node is
+ created.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>bool</b>
+ <b>operator</b>()
+ (metadata_reference r_data) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Decides whether a metadata object should be moved to
+ the front of the list. A list-update based containers
+ object will call this method to decide whether to move a
+ node to the front of the list. The method should return
+ <tt><b>true</b></tt> if the node should be moved to the
+ front of the list.</p>
+
+ <p><tt>metadata_reference</tt> is a reference to a
+ <a href=
+ "#metadata_type2849297114"><tt>metadata_type</tt></a>.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/simple_list.png b/libstdc++-v3/docs/html/ext/pb_ds/simple_list.png
new file mode 100644
index 0000000..9a05d3f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/simple_list.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/splay_tree_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/splay_tree_tag.html
new file mode 100644
index 0000000..98c56ce
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/splay_tree_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>splay_tree_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>splay_tree_tag</tt> Interface</h1>
+
+ <p>Splay tree data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="tree_tag.html"><span class=
+"c2"><tt>tree_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/string_trie_e_access_traits.html b/libstdc++-v3/docs/html/ext/pb_ds/string_trie_e_access_traits.html
new file mode 100644
index 0000000..19dbedb
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/string_trie_e_access_traits.html
@@ -0,0 +1,400 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>string_trie_e_access_traits Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>string_trie_e_access_traits</tt> Interface</h1>
+
+ <p>Element access traits for string types.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/trie_policy.hpp"><tt>trie_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="String349403" id="String349403"><b>class</b> String </a>
+</pre>
+ </td>
+
+ <td>
+ <p>String type.</p>
+ </td>
+
+ <td><tt>std::string</tt></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Min_E_Val40354618" id=
+"Min_E_Val40354618"><b>typename</b> </a><a href=
+"#String349403"><tt>String</tt></a>::value_type Min_E_Val
+</pre>
+ </td>
+
+ <td>
+ <p>Minimal element.</p>
+ </td>
+
+ <td><tt>SCHAR_MIN</tt></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Max_E_Val39885868" id=
+"Max_E_Val39885868"><b>typename</b> </a><a href=
+"#String349403"><tt>String</tt></a>::value_type Max_E_Val
+</pre>
+ </td>
+
+ <td>
+ <p>Maximal element.</p>
+ </td>
+
+ <td><tt>SCHAR_MAX</tt></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Reverse1686776" id=
+"Reverse1686776"><b>bool</b> Reverse </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Indicates whether reverse iteration should be
+ used.</p>
+ </td>
+
+ <td><tt><b>false</b></tt></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>
+ <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::size_type
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">Key-Type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#String349403"><tt>String</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#key_type10393186"><tt>key_type</tt></a>&gt;::other::const_reference
+</pre>
+ </td>
+
+ <td>
+ <p>Const key reference type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Element-Type
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="reverse2186776" id="reverse2186776">reverse</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Reverse1686776"><tt>Reverse</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Reverse1686776"><tt>Reverse</tt></a>
+ iteration indicator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> pb_ds::detail::conditional_type&lt;
+ <a href="#Reverse1686776"><tt>Reverse</tt></a>,
+ <b>typename</b> <a href=
+"#String349403"><tt>String</tt></a>::const_reverse_iterator,
+ <b>typename</b> <a href=
+"#String349403"><tt>String</tt></a>::const_iterator&gt;::type
+</pre>
+ </td>
+
+ <td>
+ <p>Element <tt><b>const</b></tt> iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="e_type393186" id="e_type393186">e_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> std::iterator_traits&lt;<a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>&gt;::value_type
+</pre>
+ </td>
+
+ <td>
+ <p>Element type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="min_e_val52875418" id="min_e_val52875418">min_e_val</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Min_E_Val40354618"><tt>Min_E_Val</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Minimal element.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="max_e_val52406668" id="max_e_val52406668">max_e_val</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Max_E_Val39885868"><tt>Max_E_Val</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Maximal element.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="max_size10483336" id="max_size10483336">max_size</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#max_e_val52406668"><tt>max_e_val</tt></a> - <a href=
+"#min_e_val52875418"><tt>min_e_val</tt></a> + 1
+</pre>
+ </td>
+
+ <td>
+ <p>Number of distinct elements.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link6" id="link6">Public Methods</a></h2>
+
+ <h3><a name="link7" id="link7">Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>static</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+ begin
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a> to
+ the first element of <span class=
+ "c1"><tt>r_key</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>static</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+ end
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a> to
+ the after-last element of <span class=
+ "c1"><tt>r_key</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>static</b> <a href=
+"#size_type55424436"><tt>size_type</tt></a>
+ e_pos
+ (<a href="#e_type393186"><tt>e_type</tt></a> e)
+</pre>
+ </td>
+
+ <td>
+ <p>Maps an <span class="c1"><tt>e</tt></span>element to a
+ position.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tests.html b/libstdc++-v3/docs/html/ext/pb_ds/tests.html
new file mode 100644
index 0000000..ab5d54b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tests.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Tests</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Tests</h1>
+
+ <p><a href="assoc_tests.html">Associative-Container Tests</a>
+ describes tests for associative containers; <a href=
+ "pq_tests.html">Priority-Queue Tests</a> describes tests for
+ priority queues.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_gcc.png
new file mode 100644
index 0000000..59247ec
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_local.png
new file mode 100644
index 0000000..d85980f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_msvc.png
new file mode 100644
index 0000000..2271645
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.png
new file mode 100644
index 0000000..8b6c4f0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_local.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_local.png
new file mode 100644
index 0000000..b7fdc47
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.png
new file mode 100644
index 0000000..dc82a4e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/thin_heap_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/thin_heap_tag.html
new file mode 100644
index 0000000..a8e9d4d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/thin_heap_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>thin_heap_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>thin_heap_tag</tt> Interface</h1>
+
+ <p>Thin heap data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="priority_queue_tag.html"><span class=
+"c2"><tt>priority_queue_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree.html b/libstdc++-v3/docs/html/ext/pb_ds/tree.html
new file mode 100644
index 0000000..d836bda
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree.html
@@ -0,0 +1,516 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>tree Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>tree</tt> Interface</h1>
+
+ <p>A concrete basic tree-based associative container.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Cmp_Fn294335" id="Cmp_Fn294335"><b>class</b> Cmp_Fn </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor.</p>
+ </td>
+
+ <td>
+ <pre>
+std::less&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped-structure tag.</p>
+ </td>
+
+ <td><a href="rb_tree_tag.html"><span class=
+ "c2"><tt>rb_tree_tag</tt></span></a></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Node_Update841554648" id=
+"Node_Update841554648"><b>template</b>&lt;
+ <b>typename</b> Const_Node_Iterator,
+ <b>typename</b> Node_Iterator,
+ <b>class</b> Cmp_Fn_,
+ <b>typename</b> Allocator_&gt;
+<b>class</b> Node_Update </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node updater type.</p>
+
+ <p><a href=
+ "tree_based_containers.html#invariants">Design::Tree-Based
+ Containers::Node Invariants</a> explains this
+ concept.</p>
+ </td>
+
+ <td><a href="null_tree_node_update.html"><span class=
+ "c2"><tt>null_tree_node_update</tt></span></a></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>
+ <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="basic_tree.html"><span class=
+"c2"><tt>basic_tree</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link3" id="link3">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link4" id="link4">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="cmp_fn394495" id="cmp_fn394495">cmp_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Cmp_Fn294335"><tt>Cmp_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Iterator Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_node_iterator4205924553" id=
+"const_node_iterator4205924553">const_node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"tree_const_node_iterator.html"><span class=
+"c2"><tt>const_node_iterator</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="node_iterator3431975247" id=
+"node_iterator3431975247">node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="tree_node_iterator.html"><span class=
+"c2"><tt>node_iterator</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link6" id="link6">Public Methods</a></h2>
+
+ <h3><a name="link7" id="link7">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ tree
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ tree
+ (<b>const</b> <a href=
+"#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;r_cmp_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_cmp_fn</tt></span> will be copied by the
+ <a href="#Cmp_Fn294335"><tt>Cmp_Fn</tt></a> object of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ tree
+ (It first_it,
+ It last_it)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of
+ value_types. The value_types between <span class=
+ "c1"><tt>first_it</tt></span> and <span class=
+ "c1"><tt>last_it</tt></span> will be inserted into the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ tree
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;r_cmp_fn)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object. <span class=
+ "c1"><tt>r_cmp_fn</tt></span> will be copied by the
+ <a href="#cmp_fn394495"><tt>cmp_fn</tt></a> object of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ tree
+ (<b>const</b> <span class=
+"c2"><tt>tree</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~tree
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<span class="c2"><tt>tree</tt></span> &amp;
+ <b>operator</b>=
+ (<b>const</b> <span class=
+"c2"><tt>tree</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Assignment operator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class=
+"c2"><tt>tree</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link8" id="link8">Policy Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;
+ get_cmp_fn
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#cmp_fn394495"><tt>cmp_fn</tt></a> object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>const</b> <a href="#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;
+ get_cmp_fn
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access to the <a href=
+ "#cmp_fn394495"><tt>cmp_fn</tt></a> object.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link9" id="link9">Node-Iteration Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#node_iterator3431975247"><tt>node_iterator</tt></a>
+ node_begin
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ corresponding to the node at the root of the tree.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ node_begin
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ corresponding to the node at the root of the tree.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#node_iterator3431975247"><tt>node_iterator</tt></a>
+ node_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ corresponding to a node just after a leaf of the
+ tree.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ node_end
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ corresponding to a node just after a leaf of the
+ tree.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_based_containers.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_based_containers.html
new file mode 100644
index 0000000..7a1b554
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_based_containers.html
@@ -0,0 +1,358 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Tree-Based Containers</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Tree Design</h1>
+
+ <h2><a name="overview" id="overview">Overview</a></h2>
+
+ <p>The tree-based container has the following declaration:</p>
+ <pre>
+<b>template</b>&lt;
+ <b>typename</b> Key,
+ <b>typename</b> Mapped,
+ <b>typename</b> Cmp_Fn = std::less&lt;Key&gt;,
+ <b>typename</b> Tag = <a href="rb_tree_tag.html">rb_tree_tag</a>,
+ <b>template</b>&lt;
+ <b>typename</b> Const_Node_Iterator,
+ <b>typename</b> Node_Iterator,
+ <b>typename</b> Cmp_Fn_,
+ <b>typename</b> Allocator_&gt;
+ <b>class</b> Node_Update = <a href=
+"null_tree_node_update.html">null_tree_node_update</a>,
+ <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href=
+"tree.html">tree</a>;
+</pre>
+
+ <p>The parameters have the following meaning:</p>
+
+ <ol>
+ <li><tt>Key</tt> is the key type.</li>
+
+ <li><tt>Mapped</tt> is the mapped-policy.</li>
+
+ <li><tt>Cmp_Fn</tt> is a key comparison functor</li>
+
+ <li><tt>Tag</tt> specifies which underlying data structure
+ to use.</li>
+
+ <li><tt>Node_Update</tt> is a policy for updating node
+ invariants. This is described in <a href="#invariants">Node
+ Invariants</a>.</li>
+
+ <li><tt>Allocator</tt> is an allocator
+ type.</li>
+ </ol>
+
+ <p>The <tt>Tag</tt> parameter specifies which underlying
+ data structure to use. Instantiating it by <a href=
+ "rb_tree_tag.html"><tt>rb_tree_tag</tt></a>, <a href=
+ "splay_tree_tag.html"><tt>splay_tree_tag</tt></a>, or
+ <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>,
+ specifies an underlying red-black tree, splay tree, or
+ ordered-vector tree, respectively; any other tag is illegal.
+ Note that containers based on the former two contain more types
+ and methods than the latter (<i>e.g.</i>,
+ <tt>reverse_iterator</tt> and <tt>rbegin</tt>), and different
+ exception and invalidation guarantees.</p>
+
+ <h2><a name="invariants" id="invariants">Node
+ Invariants</a></h2>
+
+ <p>Consider the two trees in Figures <a href=
+ "#node_invariants">Some node invariants</a> A and B. The first
+ is a tree of floats; the second is a tree of pairs, each
+ signifying a geometric line interval. Each element in a tree is refered to as a node of the tree. Of course, each of
+ these trees can support the usual queries: the first can easily
+ search for <tt>0.4</tt>; the second can easily search for
+ <tt>std::make_pair(10, 41)</tt>.</p>
+
+ <p>Each of these trees can efficiently support other queries.
+ The first can efficiently determine that the 2rd key in the
+ tree is <tt>0.3</tt>; the second can efficiently determine
+ whether any of its intervals overlaps
+ <tt>std::make_pair(29,42)</tt> (useful in geometric
+ applications or distributed file systems with leases, for
+ example). (See <a href=
+ "../../../../testsuite/ext/pb_ds/example/tree_order_statistics.cc"><tt>tree_order_statistics.cc</tt></a>
+ and <a href=
+ "../../../../testsuite/ext/pb_ds/example/tree_intervals.cc"><tt>tree_intervals.cc</tt></a>
+ for examples.) It should be noted that an <tt>std::set</tt> can
+ only solve these types of problems with linear complexity.</p>
+
+ <p>In order to do so, each tree stores some <i>metadata</i> in
+ each node, and maintains node invariants <a href=
+ "references.html#clrs2001">clrs2001</a>]. The first stores in
+ each node the size of the sub-tree rooted at the node; the
+ second stores at each node the maximal endpoint of the
+ intervals at the sub-tree rooted at the node.</p>
+
+ <h6 class="c1"><a name="node_invariants" id=
+ "node_invariants"><img src="node_invariants.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Some node invariants.</h6>
+
+ <p>Supporting such trees is difficult for a number of
+ reasons:</p>
+
+ <ol>
+ <li>There must be a way to specify what a node's metadata
+ should be (if any).</li>
+
+ <li>Various operations can invalidate node invariants.
+ <i>E.g.</i>, Figure <a href=
+ "#node_invariant_invalidations">Invalidation of node
+ invariants</a> shows how a right rotation, performed on A,
+ results in B, with nodes <i>x</i> and <i>y</i> having
+ corrupted invariants (the grayed nodes in C); Figure <a href=
+ "#node_invariant_invalidations">Invalidation of node
+ invariants</a> shows how an insert, performed on D, results
+ in E, with nodes <i>x</i> and <i>y</i> having corrupted
+ invariants (the grayed nodes in F). It is not feasible to
+ know outside the tree the effect of an operation on the nodes
+ of the tree.</li>
+
+ <li>The search paths of standard associative containers are
+ defined by comparisons between keys, and not through
+ metadata.</li>
+
+ <li>It is not feasible to know in advance which methods trees
+ can support. Besides the usual <tt>find</tt> method, the
+ first tree can support a <tt>find_by_order</tt> method, while
+ the second can support an <tt>overlaps</tt> method.</li>
+ </ol>
+
+ <h6 class="c1"><a name="node_invariant_invalidations" id=
+ "node_invariant_invalidations"><img src=
+ "node_invariant_invalidations.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Invalidation of node invariants.</h6>
+
+ <p>These problems are solved by a combination of two means:
+ node iterators, and template-template node updater
+ parameters.</p>
+
+ <h3><a name="node_it" id="node_it">Node Iterators</a></h3>
+
+ <p>Each tree-based container defines two additional iterator
+ types, <a href=
+ "tree_const_node_iterator.html"><tt>const_node_iterator</tt></a>
+ and <a href=
+ "tree_node_iterator.html"><tt>node_iterator</tt></a>.
+ These iterators allow descending from a node to one of its
+ children. Node iterator allow search paths different than those
+ determined by the comparison functor. <a href=
+ "tree.html">tree</a>
+ supports the methods:</p>
+ <pre>
+ <a href="tree_const_node_iterator.html"><tt>const_node_iterator</tt></a>
+ node_begin() <b>const</b>;
+
+ <a href="tree_node_iterator.html"><tt>node_iterator</tt></a>
+ node_begin();
+
+ <a href="tree_const_node_iterator.html"><tt>const_node_iterator</tt></a>
+ node_end() <b>const</b>;
+
+ <a href="tree_node_iterator.html"><tt>node_iterator</tt></a>
+ node_end();
+</pre>
+
+ <p>The first pairs return node iterators corresponding to the
+ root node of the tree; the latter pair returns node iterators
+ corresponding to a just-after-leaf node.</p>
+
+ <h3><a name="node_up" id="node_up">Node Updater
+ (Template-Template) Parameters</a></h3>
+
+ <p>The tree-based containers are parametrized by a
+ <tt>Node_Update</tt> template-template parameter. A tree-based
+ container instantiates <tt>Node_Update</tt> to some
+ <tt>node_update</tt> class, and publicly
+ subclasses <tt>node_update</tt>. Figure
+ <a href="#tree_node_update_cd">A tree and its update
+ policy</a> shows this scheme, as well as some predefined
+ policies (which are explained below).</p>
+
+ <h6 class="c1"><a name="tree_node_update_cd" id=
+ "tree_node_update_cd"><img src=
+ "tree_node_update_policy_cd.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">A tree and its update policy.</h6>
+
+ <p><tt>node_update</tt> (an instantiation of
+ <tt>Node_Update</tt>) must define <tt>metadata_type</tt> as
+ the type of metadata it requires. For order statistics,
+ <i>e.g.</i>, <tt>metadata_type</tt> might be <tt>size_t</tt>.
+ The tree defines within each node a <tt>metadata_type</tt>
+ object.</p>
+
+ <p><tt>node_update</tt> must also define the following method
+ for restoring node invariants:</p>
+ <pre>
+ void
+ operator()(<a href=
+"tree_node_iterator.html"><tt>node_iterator</tt></a> nd_it, <a href=
+"tree_const_node_iterator.html"><tt>const_node_iterator</tt></a> end_nd_it)
+</pre>
+
+ <p>In this method, <tt>nd_it</tt> is a <a href=
+ "tree_node_iterator.html"><tt>node_iterator</tt></a>
+ corresponding to a node whose A) all descendants have valid
+ invariants, and B) its own invariants might be violated;
+ <tt>end_nd_it</tt> is a <a href=
+ "tree_const_node_iterator.html"><tt>const_node_iterator</tt></a>
+ corresponding to a just-after-leaf node. This method should
+ correct the node invariants of the node pointed to by
+ <tt>nd_it</tt>. For example, say node <i>x</i> in Figure
+ <a href="#restoring_node_invariants">Restoring node
+ invariants</a>-A has an invalid invariant, but its' children,
+ <i>y</i> and <i>z</i> have valid invariants. After the
+ invocation, all three nodes should have valid invariants, as in
+ Figure <a href="#restoring_node_invariants">Restoring node
+ invariants</a>-B.</p>
+
+ <h6 class="c1"><a name="restoring_node_invariants" id=
+ "restoring_node_invariants"><img src=
+ "restoring_node_invariants.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Invalidation of node invariants.</h6>
+
+ <p>When a tree operation might invalidate some node invariant,
+ it invokes this method in its <tt>node_update</tt> base to
+ restore the invariant. For example, Figure <a href=
+ "#update_seq_diagram">Insert update sequence diagram</a> shows
+ an <tt>insert</tt> operation (point A); the tree performs some
+ operations, and calls the update functor three times (points B,
+ C, and D). (It is well known that any <tt>insert</tt>,
+ <tt>erase</tt>, <tt>split</tt> or <tt>join</tt>, can restore
+ all node invariants by a small number of node invariant updates
+ [<a href="references.html#clrs2001">clrs2001</a>].)</p>
+
+ <h6 class="c1"><a name="update_seq_diagram" id=
+ "update_seq_diagram"><img src="update_seq_diagram.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Insert update sequence diagram.</h6>
+
+ <p>To complete the description of the scheme, three questions
+ need to be answered:</p>
+
+ <ol>
+ <li>How can a tree which supports order statistics define a
+ method such as <tt>find_by_order</tt>?</li>
+
+ <li>How can the node updater base access methods of the
+ tree?</li>
+
+ <li>How can the following cyclic dependency be resolved?
+ <tt>node_update</tt> is a base class of the tree, yet it
+ uses node iterators defined in the tree (its child).</li>
+ </ol>
+
+ <p>The first two questions are answered by the fact that
+ <tt>node_update</tt> (an instantiation of
+ <tt>Node_Update</tt>) is a <tt><b>public</b></tt> base class
+ of the tree. Consequently:</p>
+
+ <ol>
+ <li>Any public methods of <tt>node_update</tt> are
+ automatically methods of the tree [<a href=
+ "references.html#alexandrescu01modern">alexandrescu01modern</a>].
+ Thus an order-statistics node updater, <a href=
+ "tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+ defines the <tt>find_by_order</tt> method; any tree
+ instantiated by this policy consequently supports this method
+ as well.</li>
+
+ <li>In C++, if a base class declares a method as
+ <tt><b>virtual</b></tt>, it is <tt><b>virtual</b></tt> in its
+ subclasses. If <tt>node_update</tt> needs to access one of
+ the tree's methods, say the member function <tt>end</tt>, it simply
+ declares that method as <tt><b>virtual</b></tt>
+ abstract.</li>
+ </ol>
+
+ <p>The cyclic dependency is solved through template-template
+ parameters. <tt>Node_Update</tt> is parametrized by the tree's node iterators, its comparison
+ functor, and its allocator type. Thus,
+ instantiations of <tt>Node_Update</tt> have all information required.</p>
+
+ <p class="c1"><tt>pb_ds</tt> assumes that constructing a metadata object and modifying it
+ are exception free. Suppose that during some method, say
+ <tt>insert</tt>, a metadata-related operation
+ (<i>e.g.</i>, changing the value of a metadata) throws an
+ exception. Ack! Rolling back the method is unusually complex.</p>
+
+ <p>In <a href=
+ "concepts.html#concepts_null_policies">Interface::Concepts::Null
+ Policy Classes</a> a distinction was made between <i>redundant
+ policies</i> and <i>null policies</i>. Node invariants show a
+ case where null policies are required.</p>
+
+ <p>Assume a regular tree is required, one which need not
+ support order statistics or interval overlap queries.
+ Seemingly, in this case a redundant policy - a policy which
+ doesn't affect nodes' contents would suffice. This, would lead
+ to the following drawbacks:</p>
+
+ <ol>
+ <li>Each node would carry a useless metadata object, wasting
+ space.</li>
+
+ <li>The tree cannot know if its <tt>Node_Update</tt> policy
+ actually modifies a node's metadata (this is halting
+ reducible). In Figure <a href=
+ "#rationale_null_node_update">Useless update path</a> ,
+ assume the shaded node is inserted. The tree would have to
+ traverse the useless path shown to the root, applying
+ redundant updates all the way.</li>
+ </ol>
+
+ <h6 class="c1"><a name="rationale_null_node_update" id=
+ "rationale_null_node_update"><img src=
+ "rationale_null_node_update.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">Useless update path.</h6>
+
+ <p>A null policy class, <a href=
+ "null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+ solves both these problems. The tree detects that node
+ invariants are irrelevant, and defines all accordingly.</p>
+
+ <h2><a name="add_methods" id="add_methods">Additional
+ Methods</a></h2>
+
+ <p>Tree-based containers support split and join methods.
+ It is possible to split a tree so that it passes
+ all nodes with keys larger than a given key to a different
+ tree. These methods have the following advantages over the
+ alternative of externally inserting to the destination
+ tree and erasing from the source tree:</p>
+
+ <ol>
+ <li>These methods are efficient - red-black trees are split
+ and joined in poly-logarithmic complexity; ordered-vector
+ trees are split and joined at linear complexity. The
+ alternatives have super-linear complexity.</li>
+
+ <li>Aside from orders of growth, these operations perform
+ few allocations and de-allocations. For red-black trees, allocations are not performed,
+ and the methods are exception-free. </li>
+ </ol>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_node_iterator.html
new file mode 100644
index 0000000..ba09b5b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_node_iterator.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>tree::node_iterator Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt><span class=
+ "c2"><tt>tree</tt></span>::node_iterator</tt>
+ Interface</h1>
+
+ <p>Node iterator.</p>
+
+ <p>This is an <quote>iterator to an iterator </quote> - it
+ iterates over nodes, and de-referencing it returns one of the
+ tree's iterators</p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"tree.html#const_node_iterator4205924553"><span class="c2"><tt>tree</tt></span>::const_node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Methods</a></h2>
+
+ <h3><a name="link3" id="link3">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b>
+ node_iterator
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"container_base.html#iterator10418194"><span class=
+"c2"><tt>container_base</tt></span>::iterator</a>
+ <b>operator</b>*
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Access.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Movement Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <span class="c2"><tt>node_iterator</tt></span>
+ get_l_child
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the node iterator associated with the left
+ node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <span class="c2"><tt>node_iterator</tt></span>
+ get_r_child
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the node iterator associated with the right
+ node.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_node_updator_policy_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_node_updator_policy_cd.png
new file mode 100644
index 0000000..5cae578
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_node_updator_policy_cd.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_node_update.html
new file mode 100644
index 0000000..449966b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_node_update.html
@@ -0,0 +1,678 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>tree_order_statistics_node_update Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>tree_order_statistics_node_update</tt> Interface</h1>
+
+ <p>Functor updating ranks of entrees.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tree_policy.hpp"><tt>tree_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Cmp_Fn294335" id="Cmp_Fn294335"><b>class</b> Cmp_Fn</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="cmp_fn394495" id="cmp_fn394495">cmp_fn</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Cmp_Fn294335"><tt>Cmp_Fn</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+ type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+ type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::size_type
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Key-type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+The instantiating container's key type.
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+The instantiating container's const key reference type.
+</pre>
+ </td>
+
+ <td>
+ <p>Const key reference.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link6" id="link6">Metadata-Type
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Iterator Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_node_iterator4205924553" id=
+"const_node_iterator4205924553">const_node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"#Const_Node_Iterator1933878761"><tt>Const_Node_Iterator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="node_iterator3431975247" id=
+"node_iterator3431975247">node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Node_Iterator4206909839"><tt>Node_Iterator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>::value_type
+</pre>
+ </td>
+
+ <td>
+ <p>Const iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>::value_type
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link8" id="link8">Public Methods</a></h2>
+
+ <h3><a name="link9" id="link9">Find-Type Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+ find_by_order
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> order) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Finds an entry by order. Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a> to
+ the entry with the order <span class=
+ "c1"><tt>order</tt></span>, or a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a> to
+ the container object's end if <span class=
+ "c1"><tt>order</tt></span> is at least the size of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+ find_by_order
+ (<a href="#size_type55424436"><tt>size_type</tt></a> order)
+</pre>
+ </td>
+
+ <td>
+ <p>Finds an entry by order. Returns an <a href=
+ "#iterator10418194"><tt>iterator</tt></a> to the entry
+ with the order <span class="c1"><tt>order</tt></span>, or
+ an <a href="#iterator10418194"><tt>iterator</tt></a> to
+ the container object's end if <span class=
+ "c1"><tt>order</tt></span> is at least the size of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ order_of_key
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the order of a key within a sequence. For
+ example, if <span class="c1"><tt>r_key</tt></span> is the
+ smallest key, this method will return 0; if <span class=
+ "c1"><tt>r_key</tt></span> is a key between the smallest
+ and next key, this method will return 1; if <span class=
+ "c1"><tt>r_key</tt></span> is a key larger than the
+ largest key, this method will return the size of r_c.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link10" id="link10">Protected Types and
+ Constants</a></h2>
+
+ <h3><a name="link11" id="link11">Value-type
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+The instantiating container's const reference type.
+</pre>
+ </td>
+
+ <td>
+ <p>Const reference to the container's value-type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_pointer878814947" id=
+"const_pointer878814947">const_pointer</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+The instantiating container's const pointer type.
+</pre>
+ </td>
+
+ <td>
+ <p>Const pointer to the container's value-type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_metadata_reference1108857465" id=
+"const_metadata_reference1108857465">const_metadata_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::<a href="#const_reference495461441"><tt>const_reference</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const metadata reference.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_reference583863863" id=
+"metadata_reference583863863">metadata_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::reference
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata reference.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link12" id="link12">Protected Methods</a></h2>
+
+ <h3><a name="link13" id="link13">Operators</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ <b>operator</b>()
+ (<a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a> node_it,
+ <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> end_nd_it) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Updates the rank of a node through a <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ <span class="c1"><tt>node_it</tt></span>; <span class=
+ "c1"><tt>end_nd_it</tt></span> is the end node <a href=
+ "#iterator10418194"><tt>iterator</tt></a>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link14" id="link14">Constructors, destructor, and
+ related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~tree_order_statistics_node_update
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link15" id="link15">Private Methods</a></h2>
+
+ <h3><a name="link16" id="link16">Overrides</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ node_begin
+ () <b>const</b> = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ associated with the tree's root node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+ node_begin
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ associated with the tree's root node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ node_end
+ () <b>const</b> = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ associated with a just-after leaf node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+ node_end
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ associated with a just-after leaf node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href="#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;
+ get_cmp_fn
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the <a href=
+ "#cmp_fn394495"><tt>cmp_fn</tt></a> object.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test.html
new file mode 100644
index 0000000..0d75790
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Order Statistics Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree Order-Statistics Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test creates a container, inserts random integers into
+ the the container, and then checks the order-statistics of the
+ container's values. (If the container is one of <tt>pb_ds</tt>
+ 's trees, it does this with the <tt>order_of_key</tt> method of
+ <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+ ; otherwise, it uses the <tt>find</tt> method and
+ <tt>std::distance</tt> .) It measures the average time for such
+ queries as a function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc"><tt>tree_order_statistics_timing_test</tt></a>
+ 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the performance difference of policies based
+ on node-invariant as opposed to a external functions. (see
+ <a href="tree_based_containers.html#invariants">Design::Associative
+ Containers::Tree-Based Containers::Node Invariants</a> .)</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+ <a href="#NTL">NTL</a> show the results for the native and
+ tree-based containers in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_tree_order_statistics_timing_test">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_tree-based_container_order-statistics_queries"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="tree_order_statistics_timing_test_gcc.png" alt="no image" /></a></h6>NTG: Native and tree-based container order-statistics queries - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_set-
+<tt>std::set</tt></li>
+<li>
+splay_tree_ost_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+</li>
+<li>
+rb_tree_ost_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_tree_order_statistics_timing_test">
+<div id="NTM_assoc">
+<div id="NTM_Native_and_tree-based_container_order-statistics_queries"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="tree_order_statistics_timing_test_msvc.png" alt="no image" /></a></h6>NTM: Native and tree-based container order-statistics queries - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_set-
+<tt>std::set</tt></li>
+<li>
+splay_tree_ost_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+</li>
+<li>
+rb_tree_ost_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_tree_order_statistics_timing_test">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_tree-based_container_order-statistics_queries"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="tree_order_statistics_timing_test_local.png" alt="no image" /></a></h6>NTL: Native and tree-based container order-statistics queries - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this test, the native red-black tree can support
+ order-statistics queries only externally, by performing a
+ <tt>find</tt> (alternatively, <tt>lower_bound</tt> or
+ <tt>upper_bound</tt> ) and then using <tt>std::distance</tt> .
+ This is clearly linear, and it is not that surprising that the
+ cost is high.</p>
+<p><tt>pb_ds</tt> 's tree-based containers use in this test the
+ <tt>order_of_key</tt> method of <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>.
+ This method has only linear complexity in the length of the
+ root-node path. Unfortunately, the average path of a splay tree
+ (<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a> ) can
+ be higher than logarithmic; the longest path of a red-black
+ tree (<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a> ) is
+ logarithmic in the number of elements. Consequently, the splay
+ tree has worse performance than the red-black tree.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png
new file mode 100644
index 0000000..bdb00d0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_local.png
new file mode 100644
index 0000000..2b92174
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png
new file mode 100644
index 0000000..76dcbee
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html
new file mode 100644
index 0000000..9317cfc
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Text Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree-Based and Trie-Based Text <tt>find</tt> Find Timing
+ Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([<a href="references.html#wickland96thirty">wickland96thirty</a>]) into
+ a container, then performs a series of finds using
+ <tt>find</tt>. It measures the average time for <tt>find</tt>
+ as a function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/text_find_timing.cc"><tt>text_find_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures.</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTTG">NTTG</a>, <a href="#NTTM">NTTM</a>,
+ and <a href="#NTTG">NTTL</a> show the results for the native,
+ tree-based, and trie-based types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#local"><u>local</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTTG_res_div">
+<div id="NTTG_gcc">
+<div id="NTTG_random_int_find_find_timing_test_tree">
+<div id="NTTG_assoc">
+<div id="NTTG_Native_456_tree-based_456_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTG" id="NTTG"><img src="random_int_find_find_timing_test_tree_gcc.png" alt="no image" /></a></h6>NTTG: Native, tree-based, random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+<div id="NTTM_res_div">
+<div id="NTTM_msvc">
+<div id="NTTM_random_int_find_find_timing_test_tree">
+<div id="NTTM_assoc">
+<div id="NTTM_Native_456_tree-based_456_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTM" id="NTTM"><img src="random_int_find_find_timing_test_tree_msvc.png" alt="no image" /></a></h6>NTTM: Native, tree-based, random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+<div id="NTTL_res_div">
+<div id="NTTL_local">
+<div id="NTTL_random_int_find_find_timing_test_tree">
+<div id="NTTL_assoc">
+<div id="NTTL_Native_456_tree-based_456_random_int_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTL" id= "NTTL"><img src="random_int_find_find_timing_test_tree_local.png" alt="no image" /></a></h6>NTTL: Native, tree-based, random int find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>For this setting, a splay tree (<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>)
+ does not do well. This is possibly due to two
+ reasons:</p>
+<ol>
+<li>A splay tree is not guaranteed to be balanced
+ [<a href="references.html#motwani95random">motwani95random</a>].
+ If a splay tree contains <i>n</i> nodes, its
+ average root-leaf path can be <i>m &gt;&gt;
+ log(n)</i>.</li>
+<li>Assume a specific root-leaf search path has
+ length <i>m</i>, and the search-target node has
+ distance <i>m'</i> from the root. A red-black
+ tree will require <i>m + 1</i> comparisons to
+ find the required node; a splay tree will require
+ <i>2 m'</i> comparisons. A splay tree,
+ consequently, can perform many more comparisons
+ than a red-black tree.</li>
+</ol>
+<p>An ordered-vector tree (<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>),
+ a red-black tree (<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>rb_tree_tag</tt></a>),
+ and the native red-black tree all share
+ approximately the same performance.</p>
+<p>An ordered-vector tree is slightly slower than
+ red-black trees, since it requires, in order to
+ find a key, more math operations than they do.
+ Conversely, an ordered-vector tree requires far
+ lower space than the others. ([<a href="references.html#austern00noset">austern00noset</a>],
+ however, seems to have an implementation that is
+ also faster than a red-black tree).</p>
+<p>A PATRICIA trie (<a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag =</tt> <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>)
+ has good look-up performance, due to its large
+ fan-out in this case. In this setting, a PATRICIA
+ trie has lookup performance comparable to a hash
+ table (see <a href="hash_text_find_find_timing_test.html">Hash-Based
+ Text <tt>find</tt> Find Timing Test</a>), but it is
+ order preserving. This is not that surprising,
+ since a large fan-out PATRICIA trie works like a
+ hash table with collisions resolved by a sub-trie.
+ A large fan-out PATRICIA trie does not do well on
+ modifications (see <a href="tree_text_insert_timing_test.html">Tree-Based and
+ Trie-Based Text Insert Timing Test</a>). It is
+ possibly beneficial to semi-static settings,
+ therefore.</p>
+<p><a href="assoc_performance_tests.html#tree_like_based_types">
+ Observations::Tree-Like-Based Container Types</a>
+ summarizes some observations on tree-based and
+ trie-based containers.</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test.html
new file mode 100644
index 0000000..11db03d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Split Join Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree Split-Join Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test a container, inserts into a number of values,
+ splits the container at the median, and joins the two
+ containers. (If the containers are one of <tt>pb_ds</tt> 's
+ trees, it splits and joins with the <tt>split</tt> and
+ <tt>join</tt> method; otherwise, it uses the <tt>erase</tt> and
+ <tt>insert</tt> methods.) It measures the time for splitting
+ and joining the containers as a function of the number of
+ values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/tree_split_join_timing.cc"><tt>tree_split_join_timing_test</tt></a>
+ 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the performance difference of <tt>join</tt>
+ as opposed to a sequence of <tt>insert</tt> operations; by
+ implication, this test checks the most efficient way to erase a
+ sub-sequence from a tree-like-based container, since this can
+ always be performed by a small sequence of splits and joins
+ (see <a href="motivation.html#assoc_split_join_methods">Motivation::Associative
+ Containers::Slightly Different Methods::Methods Related to
+ Split and Join</a> and <a href="tree_based_containers.html#add_methods">Design::Associative
+ Containers::Tree-Based Containers::Additional Methods</a>
+ .)</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+ <a href="#NTL">NTL</a> show the results for the native and
+ tree-based containers in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_tree_split_join_timing_test">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_tree-based_container_splits_and_joins"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="tree_split_join_timing_test_gcc.png" alt="no image" /></a></h6>NTG: Native and tree-based container splits and joins - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_set-
+<tt>std::set</tt></li>
+<li>
+splay_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_tree_split_join_timing_test">
+<div id="NTM_assoc">
+<div id="NTM_Native_and_tree-based_container_splits_and_joins"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="tree_split_join_timing_test_msvc.png" alt="no image" /></a></h6>NTM: Native and tree-based container splits and joins - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_set-
+<tt>std::set</tt></li>
+<li>
+splay_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_tree_split_join_timing_test">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_tree-based_container_splits_and_joins"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="tree_split_join_timing_test_local.png" alt="no image" /></a></h6>NTL: Native and tree-based container splits and joins - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this test, the native red-black trees must be split and
+ joined externally, through a sequence of <tt>erase</tt> and
+ <tt>insert</tt> operations. This is clearly super-linear, and
+ it is not that surprising that the cost is high.</p>
+<p><tt>pb_ds</tt> 's tree-based containers use in this test the
+ <tt>split</tt> and <tt>join</tt> methods, which have lower
+ complexity: the <tt>join</tt> method of a splay tree ( <a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a> ) is
+ quadratic in the length of the longest root-leaf path, and
+ linear in the total number of elements; the <tt>join</tt>
+ method of a red-black tree ( <a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a> ) or an
+ ordered-vector tree ( <a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a> ) is linear
+ in the number of elements.</p>
+<p>Asides from orders of growth, <tt>pb_ds</tt> 's trees access
+ their allocator very little in these operations, and some of
+ them do not access it at all. This leads to lower constants in
+ their complexity, and, for some containers, to exception-free
+ splits and joins (which can be determined via <a href="assoc_container_traits.html"><tt>container_traits</tt></a>).</p>
+<p>It is important to note that <tt>split</tt> and
+ <tt>join</tt> are not esoteric methods - they are the most
+ efficient means of erasing a contiguous range of values from a
+ tree based container.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_gcc.png
new file mode 100644
index 0000000..88867ec
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_local.png
new file mode 100644
index 0000000..131d24a
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_msvc.png
new file mode 100644
index 0000000..37ed1b2
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_tag.html
new file mode 100644
index 0000000..e4b2060
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>tree_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>tree_tag</tt> Interface</h1>
+
+ <p>Basic tree data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="basic_tree_tag.html"><span class=
+"c2"><tt>basic_tree_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_find_find_timing_test.html
new file mode 100644
index 0000000..283bdf09
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_find_find_timing_test.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Text Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree-Based and Trie-Based Text <tt>find</tt> Find Timing
+ Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([<a href="references.html#wickland96thirty">wickland96thirty</a>]) into
+ a container, then performs a series of finds using
+ <tt>find</tt>. It measures the average time for <tt>find</tt>
+ as a function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/text_find_timing.cc"><tt>text_find_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures.</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTTG">NTTG</a>, <a href="#NTTM">NTTM</a>,
+ and <a href="#NTTG">NTTL</a> show the results for the native,
+ tree-based, and trie-based types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#local"><u>local</u></a>, and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTTG_res_div">
+<div id="NTTG_gcc">
+<div id="NTTG_text_find_timing_test_tree_like">
+<div id="NTTG_assoc">
+<div id="NTTG_Native_456_tree-based_456_and_trie-based_456_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTG" id="NTTG"><img src="text_find_timing_test_tree_like_gcc.png" alt="no image" /></a></h6>NTTG: Native, tree-based, and trie-based, text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+pat_trie_map-
+<a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag</tt> = <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTTM_res_div">
+<div id="NTTM_msvc">
+<div id="NTTM_text_find_timing_test_tree_like">
+<div id="NTTM_assoc">
+<div id="NTTM_Native_456_tree-based_456_and_trie-based_456_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTM" id="NTTM"><img src="text_find_timing_test_tree_like_msvc.png" alt="no image" /></a></h6>NTTM: Native, tree-based, and trie-based, text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+pat_trie_map-
+<a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag</tt> = <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTTL_res_div">
+<div id="NTTL_local">
+<div id="NTTL_text_find_timing_test_tree_like">
+<div id="NTTL_assoc">
+<div id="NTTL_Native_456_tree-based_456_and_trie-based_456_text_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTL" id= "NTTL"><img src="text_find_timing_test_tree_like_local.png" alt="no image" /></a></h6>NTTL: Native, tree-based, and trie-based, text find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>For this setting, a splay tree (<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>) does
+ not do well. This is possibly due to two reasons:</p>
+<ol>
+<li>A splay tree is not guaranteed to be balanced [<a href="references.html#motwani95random">motwani95random</a>]. If a
+ splay tree contains <i>n</i> nodes, its average root-leaf
+ path can be <i>m &gt;&gt; log(n)</i>.</li>
+<li>Assume a specific root-leaf search path has length
+ <i>m</i>, and the search-target node has distance <i>m'</i>
+ from the root. A red-black tree will require <i>m + 1</i>
+ comparisons to find the required node; a splay tree will
+ require <i>2 m'</i> comparisons. A splay tree, consequently,
+ can perform many more comparisons than a red-black tree.</li>
+</ol>
+<p>An ordered-vector tree (<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>), a red-black
+ tree (<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>rb_tree_tag</tt></a>), and the
+ native red-black tree all share approximately the same
+ performance.</p>
+<p>An ordered-vector tree is slightly slower than red-black
+ trees, since it requires, in order to find a key, more math
+ operations than they do. Conversely, an ordered-vector tree
+ requires far lower space than the others. ([<a href="references.html#austern00noset">austern00noset</a>], however,
+ seems to have an implementation that is also faster than a
+ red-black tree).</p>
+<p>A PATRICIA trie (<a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag =</tt> <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>) has good
+ look-up performance, due to its large fan-out in this case. In
+ this setting, a PATRICIA trie has look-up performance comparable
+ to a hash table (see <a href="hash_text_find_find_timing_test.html">Hash-Based Text
+ <tt>find</tt> Find Timing Test</a>), but it is order
+ preserving. This is not that surprising, since a large-fan-out
+ PATRICIA trie works like a hash table with collisions resolved
+ by a sub-trie. A large-fan-out PATRICIA trie does not do well on
+ modifications (see <a href="tree_text_insert_timing_test.html">Tree-Based and Trie-Based
+ Text Insert Timing Test</a>). It is possibly beneficial to
+ semi-static settings, therefore.</p>
+<p><a href="assoc_performance_tests.html#tree_like_based_types">Observations::Tree-Like-Based
+ Container Types</a> summarizes some observations on tree-based
+ and trie-based containers.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test.html
new file mode 100644
index 0000000..6f0e26c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test.html
@@ -0,0 +1,226 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Text Insert Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree-Based and Trie-Based Text Insert Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+ a container using <tt>insert</tt> . It measures the average
+ time for <tt>insert</tt> as a function of the number of values
+ inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc"><tt>tree_text_insert_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures.</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NNTG">NNTG</a>, <a href="#NVTG">NVTG</a>,
+ and <a href="#NPTG">NPTG</a> show the results for the native
+ tree and <tt>pb_ds</tt>'s node-based trees, the native tree and
+ <tt>pb_ds</tt>'s vector-based trees, and the native tree
+ and<tt>pb_ds</tt>'s PATRICIA-trie, respectively, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>; Figures
+ <a href="#NNTM">NNTM</a>, <a href="#NVTM">NVTM</a>, and
+ <a href="#NPTM">NPTM</a> show the same in <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>; Figures
+ <a href="#NNTL">NNTL</a>, <a href="#NVTL">NVTL</a>, and
+ <a href="#NPTL">NPTL</a> show the same in <a href="assoc_performance_tests.html#local"><u>local</u></a>.</p>
+<div id="NNTG_res_div">
+<div id="NNTG_gcc">
+<div id="NNTG_tree_text_insert_timing_test_node_tree">
+<div id="NNTG_assoc">
+<div id="NNTG_Native_tree_and_node-based_trees_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NNTG" id="NNTG"><img src="tree_text_insert_timing_test_node_tree_gcc.png" alt="no image" /></a></h6>NNTG: Native tree and node-based trees text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NVTG_res_div">
+<div id="NVTG_gcc">
+<div id="NVTG_tree_text_insert_timing_test_vector_tree">
+<div id="NVTG_assoc">
+<div id="NVTG_Native_tree_and_vector-based_tree_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NVTG" id="NVTG"><img src="tree_text_insert_timing_test_vector_tree_gcc.png" alt="no image" /></a></h6>NVTG: Native tree and vector-based tree text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPTG_res_div">
+<div id="NPTG_gcc">
+<div id="NPTG_tree_text_insert_timing_test_pat_trie">
+<div id="NPTG_assoc">
+<div id="NPTG_Native_tree_and_PATRICIA_trie_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPTG" id="NPTG"><img src="tree_text_insert_timing_test_pat_trie_gcc.png" alt="no image" /></a></h6>NPTG: Native tree and PATRICIA trie text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+pat_trie_map-
+<a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag</tt> = <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NNTM_res_div">
+<div id="NNTM_msvc">
+<div id="NNTM_tree_text_insert_timing_test_node_tree">
+<div id="NNTM_assoc">
+<div id="NNTM_Native_tree_and_node-based_trees_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NNTM" id="NNTM"><img src="tree_text_insert_timing_test_node_tree_msvc.png" alt="no image" /></a></h6>NNTM: Native tree and node-based trees text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NVTM_res_div">
+<div id="NVTM_msvc">
+<div id="NVTM_tree_text_insert_timing_test_vector_tree">
+<div id="NVTM_assoc">
+<div id="NVTM_Native_tree_and_vector-based_tree_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NVTM" id="NVTM"><img src="tree_text_insert_timing_test_vector_tree_msvc.png" alt="no image" /></a></h6>NVTM: Native tree and vector-based tree text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPTM_res_div">
+<div id="NPTM_msvc">
+<div id="NPTM_tree_text_insert_timing_test_pat_trie">
+<div id="NPTM_assoc">
+<div id="NPTM_Native_tree_and_PATRICIA_trie_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPTM" id="NPTM"><img src="tree_text_insert_timing_test_pat_trie_msvc.png" alt="no image" /></a></h6>NPTM: Native tree and PATRICIA trie text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+pat_trie_map-
+<a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag</tt> = <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NNTL_res_div">
+<div id="NNTL_local">
+<div id="NNTL_tree_text_insert_timing_test_node_tree">
+<div id="NNTL_assoc">
+<div id="NNTL_Native_tree_and_node-based_trees_text_insert_timing_test_using__tt_insert_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NNTL" id= "NNTL"><img src="tree_text_insert_timing_test_node_tree_local.png" alt="no image" /></a></h6>NNTL: Native tree and node-based trees text insert timing test using <tt>insert</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NVTL_res_div">
+<div id="NVTL_local">
+<div id="NVTL_tree_text_insert_timing_test_vector_tree">
+<div id="NVTL_assoc">
+<div id="NVTL_Native_tree_and_vector-based_tree_text_insert_timing_test_using__tt_insert_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NVTL" id= "NVTL"><img src="tree_text_insert_timing_test_vector_tree_local.png" alt="no image" /></a></h6>NVTL: Native tree and vector-based tree text insert timing test using <tt>insert</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPTL_res_div">
+<div id="NPTL_local">
+<div id="NPTL_tree_text_insert_timing_test_pat_trie">
+<div id="NPTL_assoc">
+<div id="NPTL_Native_tree_and_PATRICIA_trie_text_insert_timing_test_using__tt_insert_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPTL" id= "NPTL"><img src="tree_text_insert_timing_test_pat_trie_local.png" alt="no image" /></a></h6>NPTL: Native tree and PATRICIA trie text insert timing test using <tt>insert</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>Observing Figure <a href="#NNTG">NNTG</a> , for this
+ setting, a splay tree, ( <a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a> ) does
+ not do well. This was covered in <a href="tree_text_find_find_timing_test.html">Tree-Based and
+ Trie-Based Text <tt>find</tt> Find Timing Test</a> . The two
+ red-black trees perform better.</p>
+<p>Observing Figure <a href="#NVTG">NVTG</a>, an ordered-vector
+ tree ( <a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>) performs
+ abysmally. Inserting into this type of tree has linear
+ complexity [ <a href="references.html#austern00noset">austern00noset</a>].</p>
+<p>Observing Figure <a href="#NPTG">NPTG</a> , A PATRICIA trie
+ ( <a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag =</tt> <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a> ) has
+ abysmal performance, as well. This is not that surprising,
+ since a large-fan-out PATRICIA trie works like a hash table with
+ collisions resolved by a sub-trie. Each time a collision is
+ encountered, a new "hash-table" is built A large fan-out
+ PATRICIA trie, however, doe does well in look-ups (see <a href="tree_text_find_find_timing_test.html">Tree-Based and
+ Trie-Based Text <tt>find</tt> Find Timing Test</a> ). It is
+ possibly beneficial to semi-static settings, therefore.</p>
+<p><a href="assoc_performance_tests.html#tree_like_based_types">Observations::Tree-Like-Based
+ Container Types</a> summarizes some observations on tree-based
+ and trie-based containers.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png
new file mode 100644
index 0000000..22d8f6f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png
new file mode 100644
index 0000000..bb10008
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png
new file mode 100644
index 0000000..18b2198
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.png
new file mode 100644
index 0000000..5fe063e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png
new file mode 100644
index 0000000..228de14
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png
new file mode 100644
index 0000000..9f13db0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.png
new file mode 100644
index 0000000..dd85dcd
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png
new file mode 100644
index 0000000..cecb8a1
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png
new file mode 100644
index 0000000..8c07313
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html
new file mode 100644
index 0000000..48d0112
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Text Locality of Reference Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree-Based Locality-of-Reference Text <tt>find</tt> Find
+ Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+ arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+ a container, then performs a series of finds using
+ <tt>find</tt> . It is different than <a href="tree_text_find_find_timing_test.html">Tree-Based and
+ Trie-Based Text <tt>find</tt> Find Timing Test</a> in the
+ sequence of finds it performs: this test performs multiple
+ <tt>find</tt> s on the same key before moving on to the next
+ key. It measures the average time for <tt>find</tt> as a
+ function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc"><tt>tree_text_lor_find_timing_test</tt></a>
+ thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+ data structures in a locality-of-reference setting.</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+ <a href="#NTL">NTL</a> show the results for the native and
+ <tt>pb_ds</tt> tree-based types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a> and
+ <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+ respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_tree_text_lor_find_timing_test">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_tree-based_locality-of-reference_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="tree_text_lor_find_timing_test_gcc.png" alt="no image" /></a></h6>NTG: Native and tree-based locality-of-reference text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_tree_text_lor_find_timing_test">
+<div id="NTM_assoc">
+<div id="NTM_Native_and_tree-based_locality-of-reference_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="tree_text_lor_find_timing_test_msvc.png" alt="no image" /></a></h6>NTM: Native and tree-based locality-of-reference text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_tree_text_lor_find_timing_test">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_tree-based_locality-of-reference_text_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="tree_text_lor_find_timing_test_local.png" alt="no image" /></a></h6>NTL: Native and tree-based locality-of-reference text find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>For this setting, an ordered-vector tree ( <a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a> ), a
+ red-black tree ( <a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>rb_tree_tag</tt></a> ), and the
+ native red-black tree all share approximately the same
+ performance.</p>
+<p>A splay tree ( <a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a> ) does
+ much better, since each (successful) find "bubbles" the
+ corresponding node to the root of the tree.</p>
+<p><a href="assoc_performance_tests.html#tree_like_based_types">Observations::Tree-Like-Based
+ Container Types</a> summarizes some observations on tree-based
+ and trie-based containers.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png
new file mode 100644
index 0000000..cf5174d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png
new file mode 100644
index 0000000..26f7151
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.png
new file mode 100644
index 0000000..583a027
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie.html b/libstdc++-v3/docs/html/ext/pb_ds/trie.html
new file mode 100644
index 0000000..71a8688
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie.html
@@ -0,0 +1,489 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>trie Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>trie</tt> Interface</h1>
+
+ <p>A concrete basic trie-based associative container.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Mapped type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="E_Access_Traits686553840" id=
+"E_Access_Traits686553840"><b>class</b> E_Access_Traits </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Element-access traits.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Data-structure tag.</p>
+ </td>
+
+ <td><a href="pat_trie_tag.html"><span class=
+ "c2"><tt>pat_trie_tag</tt></span></a></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Node_Update841554648" id=
+"Node_Update841554648"><b>template</b>&lt;
+ <b>typename</b> Const_Node_Iterator,
+ <b>typename</b> Node_Iterator,
+ <b>class</b> E_Access_Traits_,
+ <b>typename</b> Allocator_&gt;
+<b>class</b> Node_Update </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node updater type.</p>
+
+ <p><a href=
+ "tree_based_containers.html#invariants">Design::Tree-Based
+ Containers::Node Invariants</a> explains this
+ concept.</p>
+ </td>
+
+ <td><a href="null_trie_node_update.html"><span class=
+ "c2"><tt>null_trie_node_update</tt></span></a></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>
+ <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="e_access_traits1948190928" id=
+"e_access_traits1948190928">e_access_traits</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Element access traits type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">Iterator Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_node_iterator4205924553" id=
+"const_node_iterator4205924553">const_node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"trie_const_node_iterator.html"><span class=
+"c2"><tt>const_node_iterator</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="node_iterator3431975247" id=
+"node_iterator3431975247">node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="trie_node_iterator.html"><span class=
+"c2"><tt>node_iterator</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ trie
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ trie
+ (<b>const</b> <a href=
+"#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a> &amp;r_e_access_traits)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking some policy objects. <span class=
+ "c1"><tt>r_e_access_traits</tt></span> will be copied by
+ the <a href=
+ "#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a>
+ object of the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ trie
+ (It first_it,
+ It last_it)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of
+ value_types. The value_types between <span class=
+ "c1"><tt>first_it</tt></span> and <span class=
+ "c1"><tt>last_it</tt></span> will be inserted into the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>template</b>&lt;
+ <b>class</b> It&gt;
+ trie
+ (It first_it,
+ It last_it,
+ <b>const</b> <a href=
+"#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a> &amp;r_e_access_traits)
+</pre>
+ </td>
+
+ <td>
+ <p>Constructor taking iterators to a range of value_types
+ and some policy objects. The value_types between
+ <span class="c1"><tt>first_it</tt></span> and
+ <span class="c1"><tt>last_it</tt></span> will be inserted
+ into the container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+ trie
+ (<b>const</b> <span class=
+"c2"><tt>trie</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Copy constructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~trie
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<span class="c2"><tt>trie</tt></span> &amp;
+ <b>operator</b>=
+ (<b>const</b> <span class=
+"c2"><tt>trie</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Assignment operator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>void</b>
+ swap
+ (<span class=
+"c2"><tt>trie</tt></span> &amp;other)
+</pre>
+ </td>
+
+ <td>
+ <p>Swaps content.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Policy Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a> &amp;
+ get_e_access_traits
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the comb_hash_fn object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a> &amp;
+ get_e_access_traits
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access to the comb_hash_fn object.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link8" id="link8">Node-Iteration Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#node_iterator3431975247"><tt>node_iterator</tt></a>
+ node_begin
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ corresponding to the node at the root of the trie.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ node_begin
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ corresponding to the node at the root of the trie.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="#node_iterator3431975247"><tt>node_iterator</tt></a>
+ node_end
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ corresponding to a node just after a leaf of the
+ trie.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ node_end
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a <a href=
+ "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ corresponding to a node just after a leaf of the
+ trie.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_based_containers.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_based_containers.html
new file mode 100644
index 0000000..8b670bc
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_based_containers.html
@@ -0,0 +1,241 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Trie-Based Containers</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Trie Design</h1>
+
+ <h2><a name="overview" id="overview">Overview</a></h2>
+
+ <p>The trie-based container has the following declaration:</p>
+ <pre>
+<b>template</b>&lt;
+ <b>typename</b> Key,
+ <b>typename</b> Mapped,
+ <b>typename</b> Cmp_Fn = std::less&lt;Key&gt;,
+ <b>typename</b> Tag = <a href="pat_trie_tag.html">pat_trie_tag</a>,
+ <b>template</b>&lt;
+ <b>typename</b> Const_Node_Iterator,
+ <b>typename</b> Node_Iterator,
+ <b>typename</b> E_Access_Traits_,
+ <b>typename</b> Allocator_&gt;
+ <b>class</b> Node_Update = <a href=
+"null_trie_node_update.html">null_trie_node_update</a>,
+ <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href=
+"trie.html">trie</a>;
+</pre>
+
+ <p>The parameters have the following meaning:</p>
+
+ <ol>
+ <li><tt>Key</tt> is the key type.</li>
+
+ <li><tt>Mapped</tt> is the mapped-policy, and is explained in
+ <a href="tutorial.html#assoc_ms">Tutorial::Associative
+ Containers::Associative Containers Others than Maps</a>.</li>
+
+ <li><tt>E_Access_Traits</tt> is described in <a href=
+ "#e_access_traits">Element-Access Traits</a>.</li>
+
+ <li><tt>Tag</tt> specifies which underlying data structure
+ to use, and is described shortly.</li>
+
+ <li><tt>Node_Update</tt> is a policy for updating node
+ invariants. This is described in <a href="#invariants">Node
+ Invariants</a>.</li>
+
+ <li><tt>Allocator</tt> is an allocator
+ type.</li>
+ </ol>
+
+ <p>The <tt>Tag</tt> parameter specifies which underlying
+ data structure to use. Instantiating it by <a href=
+ "pat_trie_tag.html">pat_trie_tag</a>, specifies an
+ underlying PATRICIA trie (explained shortly); any other tag is
+ currently illegal.</p>
+ <hr />
+
+ <p>Following is a description of a (PATRICIA) trie
+ (<tt>pb_ds</tt> follows specifically [<a href=
+ "references.html#okasaki98mereable">okasaki98mereable</a>] and
+ [<a href=
+ "references.html#filliatre2000ptset">filliatre2000ptset</a>]).</p>
+
+ <p>A (PATRICIA) trie is similar to a tree, but with the
+ following differences:</p>
+
+ <ol>
+ <li>It explicitly views keys as a sequence of elements.
+ <i>E.g.</i>, a trie can view a string as a sequence of
+ characters; a trie can view a number as a sequence of
+ bits.</li>
+
+ <li>It is not (necessarily) binary. Each node has fan-out <i>n
+ + 1</i>, where <i>n</i> is the number of distinct
+ elements.</li>
+
+ <li>It stores values only at leaf nodes.</li>
+
+ <li>Internal nodes have the properties that A) each has at
+ least two children, and B) each shares the same prefix with
+ any of its descendant.</li>
+ </ol>
+
+ <p><a href="#e_access_traits">Element-Access Traits</a> shows
+ an example of such a trie.</p>
+
+ <p>A (PATRICIA) trie has some useful properties:</p>
+
+ <ol>
+ <li>It can be configured to use large node fan-out, giving it
+ very efficient find performance (albeit at insertion
+ complexity and size).</li>
+
+ <li>It works well for common-prefix keys.</li>
+
+ <li>It can support efficiently queries such as which keys
+ match a certain prefix. This is sometimes useful in
+ file systems and routers.</li>
+ </ol>
+
+ <p>(We would like to thank Matt Austern for the suggestion to
+ include tries.)</p>
+
+ <h2><a name="e_access_traits" id=
+ "e_access_traits">Element-Access Traits</a></h2>
+
+ <p>A trie inherently views its keys as sequences of elements.
+ For example, a trie can view a string as a sequence of
+ characters. A trie needs to map each of <i>n</i> elements to a
+ number in <i>{0, n - 1}</i>. For example, a trie can map a
+ character <tt>c</tt> to
+ <tt>static_cast&lt;size_t&gt;(c)</tt>.</p>
+
+ <p>Seemingly, then, a trie can assume that its keys support
+ (const) iterators, and that the <tt>value_type</tt> of this
+ iterator can be cast to a <tt>size_t</tt>. There are several
+ reasons, though, to decouple the mechanism by which the trie
+ accesses its keys' elements from the trie:</p>
+
+ <ol>
+ <li>In some cases, the numerical value of an element is
+ inappropriate. Consider a trie storing DNA strings. It is
+ logical to use a trie with a fan-out of <i>5 = 1 + |{'A', 'C',
+ 'G', 'T'}|</i>. This requires mapping 'T' to 3, though.</li>
+
+ <li>In some cases the keys' iterators are different than what
+ is needed. For example, a trie can be used to search for
+ common <u>suffixes</u>, by using strings'
+ <tt>reverse_iterator</tt>. As another example, a trie mapping
+ UNICODE strings would have a huge fan-out if each node would
+ branch on a UNICODE character; instead, one can define an
+ iterator iterating over 8-bit (or less) groups.</li>
+ </ol>
+
+ <p><a href=
+ "trie.html">trie</a> is,
+ consequently, parametrized by <tt>E_Access_Traits</tt> -
+ traits which instruct how to access sequences' elements.
+ <a href=
+ "string_trie_e_access_traits.html"><tt>string_trie_e_access_traits</tt></a>
+ is a traits class for strings. Each such traits define some
+ types, <i>e.g.</i>,</p>
+ <pre>
+<b>typename</b> E_Access_Traits::const_iterator
+</pre>
+
+ <p>is a const iterator iterating over a key's elements. The
+ traits class must also define methods for obtaining an iterator
+ to the first and last element of a key.</p>
+
+ <p>Figure <a href="#pat_trie">A PATRICIA trie</a> shows a
+ (PATRICIA) trie resulting from inserting the words: "I wish
+ that I could ever see a poem lovely as a trie" (which,
+ unfortunately, does not rhyme).</p>
+
+ <p>The leaf nodes contain values; each internal node contains
+ two <tt><b>typename</b> E_Access_Traits::const_iterator</tt>
+ objects, indicating the maximal common prefix of all keys in
+ the sub-tree. For example, the shaded internal node roots a
+ sub-tree with leafs "a" and "as". The maximal common prefix is
+ "a". The internal node contains, consequently, to const
+ iterators, one pointing to <tt>'a'</tt>, and the other to
+ <tt>'s'</tt>.</p>
+
+ <h6 class="c1"><a name="pat_trie" id="pat_trie"><img src=
+ "pat_trie.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">A PATRICIA trie.</h6>
+
+ <h2><a name="invariants" id="invariants">Node
+ Invariants</a></h2>
+
+ <p>Trie-based containers support node invariants, as do
+ tree-based containers (see <a href=
+ "tree_based_containers.html#invariants">Tree-Based
+ Containers::Node Invariants</a>). There are two minor
+ differences, though, which, unfortunately, thwart sharing them
+ sharing the same node-updating policies:</p>
+
+ <ol>
+ <li>A trie's <tt>Node_Update</tt> template-template
+ parameter is parametrized by <tt>E_Access_Traits</tt>, while
+ a tree's <tt>Node_Update</tt> template-template parameter is
+ parametrized by <tt>Cmp_Fn</tt>.</li>
+
+ <li>Tree-based containers store values in all nodes, while
+ trie-based containers (at least in this implementation) store
+ values in leafs.</li>
+ </ol>
+
+ <p>Figure <a href="#trie_node_update_cd">A trie and its update
+ policy</a> shows the scheme, as well as some predefined
+ policies (which are explained below).</p>
+
+ <h6 class="c1"><a name="trie_node_update_cd" id=
+ "trie_node_update_cd"><img src=
+ "trie_node_update_policy_cd.png" alt="no image" /></a></h6>
+
+ <h6 class="c1">A trie and its update policy.</h6>
+
+ <p><tt>pb_ds</tt> offers the following pre-defined trie node
+ updating policies:</p>
+
+ <ol>
+ <li><a href=
+ "trie_order_statistics_node_update.html"><tt>trie_order_statistics_node_update</tt></a>
+ supports order statistics.</li>
+
+ <li><a href=
+ "trie_prefix_search_node_update.html"><tt>trie_prefix_search_node_update</tt></a>
+ supports searching for ranges that match a given prefix. See
+ <a href=
+ "../../../../testsuite/ext/pb_ds/example/trie_prefix_search.cc"><tt>trie_prefix_search.cc</tt></a>.</li>
+
+ <li><a href=
+ "null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+ is the null node updater.</li>
+ </ol>
+
+ <h2><a name="add_methods" id="add_methods">Additional
+ Methods</a></h2>
+
+ <p>Trie-based containers support split and join methods; the
+ rationale is equal to that of tree-based containers supporting
+ these methods (see <a href=
+ "tree_based_containers.html#add_methods">Tree-Based
+ Containers::Additional Methods</a>).</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_const_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_const_node_iterator.html
new file mode 100644
index 0000000..0869a7c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_const_node_iterator.html
@@ -0,0 +1,478 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>trie::const_node_iterator
+ Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt><span class=
+ "c2"><tt>trie</tt></span>::const_node_iterator</tt>
+ Interface</h1>
+
+ <p>Const node iterator.</p>
+
+ <p>This is an "iterator to an iterator" - it iterates over
+ nodes, and de-referencing it returns one of the tree's const
+ iterators</p>
+
+ <h2><a name="link1" id="link1">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link2" id="link2">General Container
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="container_base.html#size_type55424436"><span class=
+"c2"><tt>container_base</tt></span>::size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link3" id="link3">Iterator Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="iterator_category2821876439" id=
+"iterator_category2821876439">iterator_category</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+trivial_iterator_tag
+</pre>
+ </td>
+
+ <td>
+ <p>Category.</p>
+
+ <p>This tag identifies that the iterator has none of the
+ STL's iterators' movement abilities.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="difference_type868028452" id=
+"difference_type868028452">difference_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre class="c2">
+void
+</pre>
+ </td>
+
+ <td>
+ <p>Difference type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">Value-Type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="value_type279018186" id=
+"value_type279018186">value_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"container_base.html#const_iterator98626788"><span class="c2"><tt>container_base</tt></span>::const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator's value type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="reference54418471" id="reference54418471">reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#value_type279018186"><tt>value_type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator's reference type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#value_type279018186"><tt>value_type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator's const <a href=
+ "#reference54418471"><tt>reference</tt></a> type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="e_access_traits1948190928" id=
+"e_access_traits1948190928">e_access_traits</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"trie.html#e_access_traits1948190928"><span class="c2"><tt>trie</tt></span>::e_access_traits</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Element access traits.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_e_iterator2450008044" id=
+"const_e_iterator2450008044">const_e_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a>::const_iterator
+</pre>
+ </td>
+
+ <td>
+ <p>A key's element const iterator.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Metadata Definitions</a></h3>
+
+ <p>These are only defined if <a href=
+ "basic_tree.html#Node_Update841554648"><span class="c2">
+ <tt>basic_tree</tt></span>::Node_Update</a>
+ is not <a href="null_trie_node_update.html"><span class=
+ "c2"><tt>null_trie_node_update</tt></span></a></p>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<tt><b>typename</b></tt> <a href=
+"basic_tree.html#Node_Update841554648"><span class="c2"><tt>basic_tree</tt></span>::Node_Update</a><tt>::metadata_type</tt>
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_metadata_reference1108857465" id=
+"const_metadata_reference1108857465">const_metadata_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> Allocator::<b>template</b> rebind&lt;
+ <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::<a href="#const_reference495461441"><tt>const_reference</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const metadata <a href=
+ "#reference54418471"><tt>reference</tt></a> type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link6" id="link6">Public Methods</a></h2>
+
+ <h3><a name="link7" id="link7">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b>
+ const_node_iterator
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link8" id="link8">Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> std::pair&lt;
+ <a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a>,
+ <a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a>&gt;
+ valid_prefix
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Subtree valid prefix.</p>
+
+ <p>Returns the common prefix range of all nodes in this
+ node's subtree.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"#const_reference495461441"><tt>const_reference</tt></a>
+ <b>operator</b>*
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Const access; returns the const iterator associated
+ with the current leaf.</p>
+
+ <p>Should be called only for leaf nodes.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link9" id="link9">Metadata Access Methods</a></h3>
+
+ <p>These are only defined if <a href=
+ "basic_tree.html#Node_Update841554648"><span class="c2">
+ <tt>basic_tree</tt></span>::Node_Update</a>
+ is not <a href="null_trie_node_update.html"><span class=
+ "c2"><tt>null_trie_node_update</tt></span></a></p>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"#const_metadata_reference1108857465"><tt>const_metadata_reference</tt></a>
+ get_metadata
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata access.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link10" id="link10">Movement Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ num_children
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the number of children in the corresponding
+ node.</p>
+
+ <p>If the number of children is 0, then the corresponding
+ node is a leaf; otherwise, it is not a leaf.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<span class="c2"><tt>const_node_iterator</tt></span>
+ get_child
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a const node iterator to the corresponding
+ node's <span class="c1"><tt>i</tt></span>-th child.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link11" id="link11">Comparison Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ <b>operator</b>==
+ (<b>const</b> <span class=
+"c2"><tt>const_node_iterator</tt></span> &amp;other) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Compares content to a different iterator object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>bool</b>
+ <b>operator</b>!=
+ (<b>const</b> <span class=
+"c2"><tt>const_node_iterator</tt></span> &amp;other) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Compares content (negatively) to a different iterator
+ object.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_node_iterator.html
new file mode 100644
index 0000000..55029c4
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_node_iterator.html
@@ -0,0 +1,235 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>trie::node_iterator Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt><span class=
+ "c2"><tt>trie</tt></span>::node_iterator</tt>
+ Interface</h1>
+
+ <p>Node iterator.</p>
+
+ <p>This is an "iterator to an iterator" - it iterates over
+ nodes, and de-referencing it returns one of the tree's
+ iterators</p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href=
+"trie.html#const_node_iterator4205924553"><span class="c2"><tt>trie</tt></span>::const_node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">General Container
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"trie.html#const_node_iterator4205924553"><span class="c2"><tt>trie</tt></span>::const_node_iterator</a>::size_type
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">Value-Type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="value_type279018186" id=
+"value_type279018186">value_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="container_base.html#iterator10418194"><span class=
+"c2"><tt>container_base</tt></span>::iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator's value type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="reference54418471" id="reference54418471">reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#value_type279018186"><tt>value_type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator's reference type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#value_type279018186"><tt>value_type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator's const <a href=
+ "#reference54418471"><tt>reference</tt></a> type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+ <h3><a name="link6" id="link6">Constructors, Destructor, and
+ Related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b>
+ pat_trie_node_it_
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Default constructor.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Access Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#reference54418471"><tt>reference</tt></a>
+ <b>operator</b>*
+ () <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Access; returns the iterator associated with the
+ current leaf.</p>
+
+ <p>Should be called only for leaf nodes.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link8" id="link8">Movement Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<span class="c2"><tt>node_iterator</tt></span>
+ get_child
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns a node iterator to the corresponding node's
+ <span class="c1"><tt>i</tt></span>-th child.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_node_updator_policy_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/trie_node_updator_policy_cd.png
new file mode 100644
index 0000000..4376929
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_node_updator_policy_cd.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_order_statistics_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_order_statistics_node_update.html
new file mode 100644
index 0000000..dcc236f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_order_statistics_node_update.html
@@ -0,0 +1,770 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>trie_order_statistics_node_update Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>trie_order_statistics_node_update</tt> Interface</h1>
+
+ <p>Functor updating ranks of entrees.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/trie_policy.hpp"><tt>trie_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="E_Access_Traits686553840" id=
+"E_Access_Traits686553840"><b>class</b> E_Access_Traits</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="e_access_traits1948190928" id=
+"e_access_traits1948190928">e_access_traits</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Element access traits.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_e_iterator2450008044" id=
+"const_e_iterator2450008044">const_e_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a>::const_iterator
+</pre>
+ </td>
+
+ <td>
+ <p>Const element iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+ type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::size_type
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">Key-Type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+The instantiating container's key type.
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+The instantiating container's const key reference type.
+</pre>
+ </td>
+
+ <td>
+ <p>Const key reference.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link6" id="link6">Metadata-Type
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Iterator Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_node_iterator4205924553" id=
+"const_node_iterator4205924553">const_node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"#Const_Node_Iterator1933878761"><tt>Const_Node_Iterator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="node_iterator3431975247" id=
+"node_iterator3431975247">node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Node_Iterator4206909839"><tt>Node_Iterator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>::value_type
+</pre>
+ </td>
+
+ <td>
+ <p>Const iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>::value_type
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link8" id="link8">Public Methods</a></h2>
+
+ <h3><a name="link9" id="link9">Find-Type Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+ find_by_order
+ (<a href=
+"#size_type55424436"><tt>size_type</tt></a> order) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Finds an entry by order. Returns a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a> to
+ the entry with the order <span class=
+ "c1"><tt>order</tt></span>, or a <a href=
+ "#const_iterator98626788"><tt>const_iterator</tt></a> to
+ the container object's end if <span class=
+ "c1"><tt>order</tt></span> is at least the size of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+ find_by_order
+ (<a href="#size_type55424436"><tt>size_type</tt></a> order)
+</pre>
+ </td>
+
+ <td>
+ <p>Finds an entry by order. Returns an <a href=
+ "#iterator10418194"><tt>iterator</tt></a> to the entry
+ with the order <span class="c1"><tt>order</tt></span>, or
+ an <a href="#iterator10418194"><tt>iterator</tt></a> to
+ the container object's end if <span class=
+ "c1"><tt>order</tt></span> is at least the size of the
+ container object.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ order_of_key
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the order of a key within a sequence. For
+ example, if <span class="c1"><tt>r_key</tt></span> is the
+ smallest key, this method will return 0; if <span class=
+ "c1"><tt>r_key</tt></span> is a key between the smallest
+ and next key, this method will return 1; if <span class=
+ "c1"><tt>r_key</tt></span> is a key larger than the
+ largest key, this method will return the size of r_c.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+ order_of_prefix
+ (<a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> b,
+ <a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> e) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the order of a prefix within a sequence. For
+ <span class="c1"><tt>e</tt></span>example, if [b,
+ <span class="c1"><tt>e</tt></span>] is the smallest
+ prefix, this method will return 0; if r_key is a key
+ <span class="c1"><tt>b</tt></span>between the smallest and
+ next key, this method will return 1; if r_key is a key
+ larger than the largest key, this method will return the
+ size of r_c.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link10" id="link10">Protected Types and
+ Constants</a></h2>
+
+ <h3><a name="link11" id="link11">Value-Type
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+The instantiating container's const reference type.
+</pre>
+ </td>
+
+ <td>
+ <p>Const reference to the container's value-type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_pointer878814947" id=
+"const_pointer878814947">const_pointer</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+The instantiating container's const pointer type.
+</pre>
+ </td>
+
+ <td>
+ <p>Const pointer to the container's value-type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_metadata_reference1108857465" id=
+"const_metadata_reference1108857465">const_metadata_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::<a href="#const_reference495461441"><tt>const_reference</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const metadata reference.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_reference583863863" id=
+"metadata_reference583863863">metadata_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+ <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::reference
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata reference.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link12" id="link12">Protected Methods</a></h2>
+
+ <h3><a name="link13" id="link13">Operators</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ <b>operator</b>()
+ (<a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a> node_it,
+ <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> end_nd_it) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Updates the rank of a node through a <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ <span class="c1"><tt>node_it</tt></span>; <span class=
+ "c1"><tt>end_nd_it</tt></span> is the end node <a href=
+ "#iterator10418194"><tt>iterator</tt></a>.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link14" id="link14">Constructors, destructor, and
+ related</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b>
+ ~trie_order_statistics_node_update
+ ()
+</pre>
+ </td>
+
+ <td>
+ <p>Destructor.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link15" id="link15">Private Methods</a></h2>
+
+ <h3><a name="link16" id="link16">Overrides</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <b>bool</b>
+ empty
+ () <b>const</b> = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns <tt><b>true</b></tt> if the container is
+ empty.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+ begin
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#iterator10418194"><tt>iterator</tt></a> associated with
+ the trie's first element.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+ end
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#iterator10418194"><tt>iterator</tt></a> associated with
+ the trie's just-after-last element.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ node_begin
+ () <b>const</b> = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ associated with the trie's root node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+ node_begin
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ associated with the trie's root node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ node_end
+ () <b>const</b> = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ associated with a just-after leaf node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+ node_end
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ associated with a just-after leaf node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a> &amp;
+ get_e_access_traits
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the cmp_fn object.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_prefix_search_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_prefix_search_node_update.html
new file mode 100644
index 0000000..e3d5e27
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_prefix_search_node_update.html
@@ -0,0 +1,628 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>trie_prefix_search_node_update Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>trie_prefix_search_node_update</tt> Interface</h1>
+
+ <p>A node updater that allows tries to be searched for the
+ range of values that match a certain prefix.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/trie_policy.hpp"><tt>trie_policy.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+ <table class="c1" width="100%" border="1" summary=
+ "Template Parameters">
+ <tr>
+ <td width="20%" align="left"><b>Parameter</b></td>
+
+ <td width="50%" align="left"><b>Description</b></td>
+
+ <td width="30%" align="left"><b>Default Value</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="E_Access_Traits686553840" id=
+"E_Access_Traits686553840"><b>class</b> E_Access_Traits</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Comparison functor.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <p>Allocator type.</p>
+ </td>
+
+ <td>-</td>
+ </tr>
+ </table>
+
+ <h2><a name="link2" id="link2">Public Types and
+ Constants</a></h2>
+
+ <h3><a name="link3" id="link3">Key-Type Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+The instantiating container's key type.
+</pre>
+ </td>
+
+ <td>
+ <p>Key type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+The instantiating container's const key reference type.
+</pre>
+ </td>
+
+ <td>
+ <p>Const key reference.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link4" id="link4">Policy Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="e_access_traits1948190928" id=
+"e_access_traits1948190928">e_access_traits</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Element access traits.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_e_iterator2450008044" id=
+"const_e_iterator2450008044">const_e_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a>::const_iterator
+</pre>
+ </td>
+
+ <td>
+ <p>Const element iterator.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+ type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link5" id="link5">General Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::size_type
+</pre>
+ </td>
+
+ <td>
+ <p>Size type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link6" id="link6">Metadata-Type
+ Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+pb_ds::detail::null_node_metadata
+</pre>
+ </td>
+
+ <td>
+ <p>Metadata type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h3><a name="link7" id="link7">Iterator Definitions</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Types">
+ <tr>
+ <td width="30%" align="left"><b>Type</b></td>
+
+ <td width="55%" align="left"><b>Definition</b></td>
+
+ <td width="15%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_node_iterator4205924553" id=
+"const_node_iterator4205924553">const_node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href=
+"#Const_Node_Iterator1933878761"><tt>Const_Node_Iterator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Const node iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="node_iterator3431975247" id=
+"node_iterator3431975247">node_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<a href="#Node_Iterator4206909839"><tt>Node_Iterator</tt></a>
+</pre>
+ </td>
+
+ <td>
+ <p>Node iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>::value_type
+</pre>
+ </td>
+
+ <td>
+ <p>Const iterator type.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+ </td>
+
+ <td>
+ <pre>
+<b>typename</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>::value_type
+</pre>
+ </td>
+
+ <td>
+ <p>Iterator type.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link8" id="link8">Public Methods</a></h2>
+
+ <h3><a name="link9" id="link9">Find Methods</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+std::pair&lt;
+ <a href="#const_iterator98626788"><tt>const_iterator</tt></a>,
+ <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>&gt;
+ prefix_range
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Finds the <tt><b>const</b></tt> <a href=
+ "#iterator10418194"><tt>iterator</tt></a> range
+ corresponding to all values whose prefixes match
+ <span class="c1"><tt>r_key</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+std::pair&lt;
+ <a href="#iterator10418194"><tt>iterator</tt></a>,
+ <a href="#iterator10418194"><tt>iterator</tt></a>&gt;
+ prefix_range
+ (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+ </td>
+
+ <td>
+ <p>Finds the <a href=
+ "#iterator10418194"><tt>iterator</tt></a> range
+ corresponding to all values whose prefixes match
+ <span class="c1"><tt>r_key</tt></span>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+std::pair&lt;
+ <a href="#const_iterator98626788"><tt>const_iterator</tt></a>,
+ <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>&gt;
+ prefix_range
+ (<a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> b,
+ <a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> e) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Finds the <tt><b>const</b></tt> <a href=
+ "#iterator10418194"><tt>iterator</tt></a> range
+ corresponding to all values whose prefixes match [b,
+ <span class="c1"><tt>e</tt></span>).</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+std::pair&lt;
+ <a href="#iterator10418194"><tt>iterator</tt></a>,
+ <a href="#iterator10418194"><tt>iterator</tt></a>&gt;
+ prefix_range
+ (<a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> b,
+ <a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> e)
+</pre>
+ </td>
+
+ <td>
+ <p>Finds the <a href=
+ "#iterator10418194"><tt>iterator</tt></a> range
+ corresponding to all values whose prefixes match [b,
+ <span class="c1"><tt>e</tt></span>).</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link10" id="link10">Protected Methods</a></h2>
+
+ <h3><a name="link11" id="link11">Operators</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>inline</b> <b>void</b>
+ <b>operator</b>()
+ (<a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a> node_it,
+ <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> end_nd_it) <b>const</b>
+</pre>
+ </td>
+
+ <td>
+ <p>Called to update a node's metadata.</p>
+ </td>
+ </tr>
+ </table>
+
+ <h2><a name="link12" id="link12">Private Methods</a></h2>
+
+ <h3><a name="link13" id="link13">Overrides</a></h3>
+
+ <table class="c1" width="100%" border="1" summary="Methods">
+ <tr>
+ <td width="45%" align="left"><b>Method</b></td>
+
+ <td width="55%" align="left"><b>Description</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+ end
+ () <b>const</b> = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <tt><b>const</b></tt> <a href=
+ "#iterator10418194"><tt>iterator</tt></a> associated with
+ the just-after last element.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+ end
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#iterator10418194"><tt>iterator</tt></a> associated with
+ the just-after last element.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ node_begin
+ () <b>const</b> = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ associated with the trie's root node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+ node_begin
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ associated with the trie's root node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ node_end
+ () <b>const</b> = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+ associated with a just-after leaf node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+ node_end
+ () = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Returns the <a href=
+ "#node_iterator3431975247"><tt>node_iterator</tt></a>
+ associated with a just-after leaf node.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<b>virtual</b> <b>const</b> <a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a> &amp;
+ get_e_access_traits
+ () <b>const</b> = 0
+</pre>
+ </td>
+
+ <td>
+ <p>Access to the cmp_fn object.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_tag.html
new file mode 100644
index 0000000..6d2def4
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>trie_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>trie_tag</tt> Interface</h1>
+
+ <p>Basic trie data structure tag.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+ <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+ <table class="c1" width="100%" border="1" summary="Bases">
+ <tr>
+ <td width="80%" align="left"><b>Class</b></td>
+
+ <td width="20%" align="left"><b>Derivation Type</b></td>
+ </tr>
+
+ <tr>
+ <td>
+ <pre>
+<a href="basic_tree_tag.html"><span class=
+"c2"><tt>basic_tree_tag</tt></span></a>
+</pre>
+ </td>
+
+ <td>
+ <p>public</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trivial_iterator_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/trivial_iterator_tag.html
new file mode 100644
index 0000000..be9813b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trivial_iterator_tag.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>trivial_iterator_tag Interface</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1><tt>trivial_iterator_tag</tt> Interface</h1>
+
+ <p>A \quot;trivial\quot; iterator tag. Signifies that the
+ iterators has none of the STL's movement abilities.</p>
+
+ <p>Defined in: <a href=
+ "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tutorial.html b/libstdc++-v3/docs/html/ext/pb_ds/tutorial.html
new file mode 100644
index 0000000..029204b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tutorial.html
@@ -0,0 +1,670 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+ <title>Tutorial</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ </head>
+
+<body>
+ <div id="page">
+ <h1>Short Tutorial</h1>
+
+ <p>Following is a short tutorial illustrating the main points
+ of <tt>pb_ds</tt>. <a href="concepts.html">Concepts</a>
+ describes and summarizes some concepts.</p>
+
+ <h2><a name="assoc_main" id="assoc_main">Associative
+ Containers</a></h2>
+
+ <h3><a name="assoc_basic" id="assoc_basic">Basic Use</a></h3>
+
+ <p>For the most part, <tt>pb_ds</tt>'s containers have the same
+ interface as the STL's, except for the names used for the
+ container classes themselves. For example, this shows basic
+ operations on a collision-chaining hash-based container:</p>
+
+ <pre>
+<a href=
+"cc_hash_table.html">cc_hash_table</a>&lt;<b>int</b>, <b>char</b>&gt; c;
+
+c[2] = 'b';
+
+assert(c.find(1) == c.end());
+</pre>
+
+ <p>The container is called <a href=
+ "cc_hash_table.html"><tt>cc_hash_table</tt></a> as
+ opposed to <tt>unordered_map</tt>, since "unordered map" does
+ not necessarily mean a hash-based map (as the STL implicitly
+ implies). For example, list-based associative containers, which
+ are very useful for the construction of "multimaps" (see
+ <a href=
+ "assoc_performance_tests.html#msc">Associative-Container
+ Performance Tests::Observations::Mapping-Semantics
+ Considerations</a>), are also unordered. It is also not called
+ <tt>hash_map</tt> since there are more ways than one to
+ implement hash tables.</p>
+
+ <p>This snippet shows a red-black tree based container:</p>
+ <pre>
+<a href=
+"tree.html">tree</a>&lt;<b>int</b>, <b>char</b>&gt; c;
+
+c[2] = 'b';
+
+assert(c.find(2) != c.end());
+</pre>
+
+ <p>The container is called <a href=
+ "tree.html"><tt>tree</tt></a>
+ as opposed to <tt>map</tt>, since "map" doesn't say that
+ much.</p>
+
+ <p>Most of the STL's familiar methods are unchanged.
+ <i>E.g.</i>, <tt>being</tt>, <tt>end</tt>, <tt>size</tt>,
+ <tt>empty</tt>, and <tt>clear</tt>, do just the same as is
+ customary. <a href=
+ "assoc_examples.html#basic_usage">Associative-Container
+ Examples::Basic use</a>, and especially <a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_map.cc"><tt>basic_map.cc</tt></a>,
+ show examples of this.</p>
+
+<p>This isn't to say that things are exactly as one would expect,
+given the container requirments and interfaces in the C++
+standard.</p>
+
+
+ <p>The names of containers' policies and policy accessors are
+ different than those of the STL. For example, if <tt>C</tt> is
+ some type of hash-based container, then</p>
+ <pre>
+C::hash_fn
+</pre>gives the type of its hash functor, and if <tt>c</tt> is some
+hash-based container object, then
+ <pre>
+c.get_hash_fn()
+</pre>
+
+ <p>will return a reference to its hash-functor object.</p>
+
+ <p>Similarly, if <tt>C</tt> is some type of tree-based
+ container, then</p>
+ <pre>
+C::cmp_fn
+</pre>gives the type of its comparison functor, and if <tt>c</tt>
+is some tree-based container object, then
+ <pre>
+c.get_cmp_fn()
+</pre>
+
+ <p>will return a reference to its comparison-functor
+ object.</p>
+
+ <p>It would be nice to give names consistent with those in the
+ existing C++ standard (inclusive of TR1). Unfortunately, these
+ standard containers don't consistently name types and
+ methods. For example, <tt>std::tr1::unordered_map</tt> uses
+ <tt>hasher</tt> for the hash functor, but <tt>std::map</tt> uses
+ <tt>key_compare</tt> for the comparison functor. Also, we could
+ not find an accessor for <tt>std::tr1::unordered_map</tt>'s hash
+ functor, but <tt>std::map</tt> uses <tt>compare</tt> for accessing
+ the comparison functor.</p>
+
+<p>Instead, <tt>pb_ds</tt> attempts to be internally consistent, and
+uses standard-derived terminology if possible.
+</p>
+
+ <p>Another source of difference is in scope: <tt>pb_ds</tt>
+ contains more types of associative containers than the STL, and
+ more opportunities to configure these new containers, since
+ different types of associative containers are useful in different
+ settings (see <a href=
+ "assoc_performance_tests.html#dss_family_choice">Associative-Container
+ Performance Tests::Observations::Underlying Data-Structure
+ Families</a>).</p>
+
+ <p><tt>pb_ds</tt> contains different classes for hash-based containers,
+ tree-based containers, trie-based containers, and list-based
+ containers. <a href=
+ "interface.html#containers_assoc">Inteface::Containers::Associative
+ Containers</a> lists the containers. <a href=
+ "hash_based_containers.html">Design::Associative
+ Containers::Hash-Based Containers</a>, <a href=
+ "tree_based_containers.html">Design::Associative
+ Containers::Tree-Based Containers</a>, <a href=
+ "trie_based_containers.html">Design::Associative
+ Containers::Trie-Based Containers</a>, and <a href=
+ "lu_based_containers.html">Design::Associative
+ Containers::List-Based Containers</a>, explain some more about
+ these types of containers, respectively.</p>
+
+ <p>Since associative containers share parts of their interface,
+ they are organized as a class hierarchy; it is shown in Figure
+ <a href="#cd">Class hierarchy</a>.</p>
+
+ <h6 class="c1"><a name="cd" id="cd"><img src="container_cd.png" alt=
+ "no image" /></a></h6>
+
+ <h6 class="c1">Class hierarchy.</h6>
+
+ <p>Each type or method is defined in the most-common ancestor
+ in which it makes sense:
+ <a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_map.cc"><tt>basic_map.cc</tt></a>
+ shows an example of most of the associative-container
+ types.</p>
+
+
+ <p>For example, all associative containers support iteration.
+ Consequently, <a href=
+ "container_base.html"><tt>container_base</tt></a> has the
+ interface:</p>
+ <pre>
+<b>template</b>&lt;...&gt;
+<b>class</b> <a href="container_base.html">container_base</a>
+{
+ ...
+
+<b>public</b>:
+ ...
+
+ const_iterator
+ begin() <b>const</b>;
+
+ iterator
+ begin();
+
+ const_iterator
+ end() <b>const</b>;
+
+ iterator
+ end();
+
+ ...
+};
+</pre>
+
+ <p>and so all associative containers inherent this method.
+ Conversely, both collision-chaining and (general) probing
+ hash-based associative containers have a hash functor, so
+ <a href=
+ "basic_hash_table.html"><tt>basic_hash_table</tt></a>
+ has the interface:</p>
+ <pre>
+<b>template</b>&lt;...&gt;
+<b>class</b> <a href="basic_hash_table.html">basic_hash_table</a> : <b>public</b> <a href="container_base.html">container_base</a>
+{
+ ...
+
+<b>public</b>:
+ ...
+
+ const hash_fn&amp;
+ get_hash_fn() const;
+
+ hash_fn&amp;
+ get_hash_fn();
+ ...
+};
+</pre>
+
+ <p>and so all hash-based associative containers inherit the
+ same hash-functor accessor methods.</p>
+
+ <p>This is discussed further in <a href=
+ "ds_gen.html">Design::Associative Containers::Data-Structure
+ Genericity</a>.</p>
+
+ <h3><a name="assoc_policies" id="assoc_policies">Configuring
+ Associative Containers</a></h3>
+
+ <p>In general, each of <tt>pb_ds</tt>'s containers is
+ parametrized by more policies than those of the STL's. For
+ example, the STL's hash-based container is parametrized as
+ follows:</p>
+ <pre>
+<b>template</b>&lt;
+ <b>typename</b> Key,
+ <b>typename</b> Mapped,
+ <b>typename</b> Hash,
+ <b>typename</b> Pred,
+ <b>typename</b> Allocator,
+ <b>bool</b> Cache_Hashe_Code&gt;
+<b>class</b> unordered_map;
+</pre>
+
+ <p>and so can be configured by key type, mapped type, a functor
+ that translates keys to unsigned integral types, an equivalence
+ predicate, an allocator, and an indicator whether to store hash
+ values with each entry. <tt>pb_ds</tt>'s collision-chaining
+ hash-based container is parametrized as</p>
+ <pre>
+<b>template</b>&lt;
+ <b>typename</b> Key,
+ <b>typename</b> Mapped,
+ <b>typename</b> Hash_Fn,
+ <b>typename</b> Eq_Fn,
+ <b>typename</b> Comb_Hash_Fn,
+ <b>typename</b> Resize_Policy
+ <b>bool</b> Store_Hash
+ <b>typename</b> Allocator&gt;
+<b>class</b> <a href=
+"cc_hash_table.html">cc_hash_table</a>;
+</pre>
+
+ <p>and so can be configured by the first four types of
+ <tt>std::tr1::unordered_map</tt>, then a policy for translating
+ the key-hash result into a position within the table, then a
+ policy by which the table resizes, an indicator whether to
+ store hash values with each entry, and an allocator (which is
+ typically the last template parameter in STL containers).</p>
+
+ <p>Nearly all policy parameters have default values, so this
+ need not be considered for casual use. It is important to note,
+ however, that hash-based containers' policies can dramatically
+ alter their performance in different settings, and that
+ tree-based containers' policies can make them useful for other
+ purposes than just look-up.</p>
+
+ <p><a href="hash_based_containers.html">Design::Associative
+ Containers::Hash-Based Containers</a>, <a href=
+ "tree_based_containers.html">Design::Associative
+ Containers::Tree-Based Containers</a>, <a href=
+ "trie_based_containers.html">Design::Associative
+ Containers::Trie-Based Containers</a>, and <a href=
+ "lu_based_containers.html">Design::Associative
+ Containers::List-Based Containers</a>, explain some more about
+ configuring hash based, tree based, trie based, and list base
+ containers, respectively. <a href=
+ "interface.html#ds_policy_classes">Interface::Container Policy
+ Classes</a> shows the different policy classes for configuring
+ associative containers. <a href=
+ "assoc_examples.html#hash_based">Examples::Hash-Based
+ Containers</a>, <a href=
+ "assoc_examples.html#tree_like_based">Examples::Tree-Like-Based
+ Containers</a>, and <a href=
+ "assoc_examples.html#trie_based">Examples::Trie-Based
+ Containers</a> show examples for this.</p>
+
+ <h3><a name="assoc_ds_gen" id="assoc_ds_gen">Determining
+ Containers' Attributes</a></h3>
+
+ <p>Associative-containers' underlying data structures obviously
+ affect their performance; Unfortunately, they can also affect
+ their interface. When manipulating generically associative
+ containers, it is often useful to be able to statically
+ determine what they can support and what the cannot. (This was
+ discussed in <a href=
+ "motivation.html#assoc_ds_genericity">Motivation::Associative
+ Containers::Data-Structure Genericity</a>.)</p>
+
+ <p>Happily, the STL provides a good solution to a similar
+ problem - that of the different behavior of iterators. If
+ <tt>It</tt> is an iterator, then</p>
+ <pre>
+<b>typename</b> std::iterator_traits&lt;It&gt;::iterator_category
+</pre>
+
+ <p>is one of a small number of pre-defined
+ <tt><b>struct</b></tt>s, and,</p>
+ <pre>
+<b>typename</b> std::iterator_traits&lt;It&gt;::value_type
+</pre>
+
+ <p>is the value type to which the iterator "points".</p>
+
+ <p>Similarly, in <tt>pb_ds</tt>, if <tt>C</tt> is an
+ associative container, then</p>
+ <pre>
+<b>typename</b> <a href=
+"assoc_container_traits.html"><tt>container_traits</tt></a>&lt;C&gt;::container_category
+</pre>is one of a small number of pre-defined
+<tt><b>struct</b></tt>s, each one corresponding to a class in
+Figure <a href="#cd">Class hierarchy</a>. These tags are listed in
+<a href="interface.html#ds_ts_assoc">Interface::Associative
+Containers::Data-Structure Tags and Traits::Data-Structure
+Tags::Associative-Containers</a>; <a href="ds_gen.html#container_traits">
+ Design::Associative Containers::Data-Structure Tags and
+ Traits</a> explains this further; <a href=
+ "ds_gen.html#tag_cd">Design::Associative
+ Containers::Data-Structure Tags and Traits::Data-structure tag
+ class hierarchy</a> shows a class diagram.
+
+ <p>In most cases, however, the exact underlying data structure
+ is not really important, but only one of its attributes:
+ whether it guarantees storing elements by key order, for
+ example. For this one can use</p>
+ <pre>
+<b>typename</b> <a href=
+"assoc_container_traits.html"><tt>container_traits</tt></a>&lt;C&gt;::order_preserving
+</pre>
+
+ <p>This is described further in <a href=
+ "ds_gen.html">Design::Data-Structure Genericity</a>; <a href=
+ "../../../../testsuite/ext/pb_ds/example/assoc_container_traits.cc"><tt>assoc_container_traits.cc</tt></a>
+ shows an example of querying containers' attributes.</p>
+
+ <h3><a name="assoc_find_range" id="assoc_find_range">Point-Type
+ and Range-Type Methods and Iterators</a></h3>(This subsection
+ addresses points from <a href=
+ "motivation.html#assoc_diff_it">Motivation::Associative
+ Containers::Differentiating between Iterator Types</a>.)
+
+ <p><tt>pb_ds</tt> differentiates between two types of methods
+ and iterators: point-type, and range-type. For example,
+ <tt>find</tt> and <tt>insert</tt> are point-type methods, since
+ they each deal with a specific element; their returned
+ iterators are point-type iterators. <tt>begin</tt> and
+ <tt>end</tt> are range-type methods, since they are not used to
+ find a specific element, but rather to go over all elements in
+ a container object; their returned iterators are range-type
+ iterators.</p>
+
+ <p>Most containers store elements in an order that is
+ determined by their interface. Correspondingly, it is fine that
+ their point-type iterators are synonymous with their range-type
+ iterators. For example, in the following snippet</p>
+ <pre>
+std::for_each(c.find(1), c.find(5), foo);
+</pre>two point-type iterators (returned by <tt>find</tt>) are used
+for a range-type purpose - going over all elements whose key is
+between 1 and 5.
+
+ <p>Conversely, the above snippet makes no sense for
+ self-organizing containers - ones that order (and reorder)
+ their elements by implementation. It would be nice to have a
+ uniform iterator system that would allow the above snippet to
+ compile only if it made sense.</p>
+
+ <p>This could trivially be done by specializing
+ <tt>std::for_each</tt> for the case of iterators returned by
+ <tt>std::tr1::unordered_map</tt>, but this would only solve the
+ problem for one algorithm and one container. Fundamentally, the
+ problem is that one can loop using a self-organizing
+ container's point-type iterators.</p>
+
+ <p><tt>pb_ds</tt>'s containers define two families of
+ iterators: <tt>const_point_iterator</tt> and
+ <tt>point_iterator</tt> are the iterator types returned by
+ point-type methods; <tt>const_iterator</tt> and
+ <tt>iterator</tt> are the iterator types returned by range-type
+ methods.</p>
+ <pre>
+<b>class</b> <i>&lt;- some container -&gt;</i>
+{
+<b>public</b>:
+ ...
+
+ <b>typedef</b> <i>&lt;- something -&gt;</i> const_iterator;
+
+ <b>typedef</b> <i>&lt;- something -&gt;</i> iterator;
+
+ <b>typedef</b> <i>&lt;- something -&gt;</i> const_point_iterator;
+
+ <b>typedef</b> <i>&lt;- something -&gt;</i> point_iterator;
+
+ ...
+
+<b>public</b>:
+ ...
+
+ const_iterator begin () <b>const</b>;
+
+ iterator begin();
+
+ const_point_iterator find(...) <b>const</b>;
+
+ point_iterator find(...);
+};
+</pre>
+
+ <p><a href="ds_gen.html#find_range">Design::Associative
+ Containers::Data-Structure Genericity::Point-Type and
+ Range-Type Methods and Iterators</a> discusses the relationship
+ between point-type and range-type iterators in general; for
+ containers whose interface defines sequence order, however, it
+ is very simple: point-type and range-type iterators are exactly
+ the same, which means that the above snippet will compile if it
+ is used for an order-preserving associative container.</p>
+
+ <p>For self-organizing containers, however, (hash-based
+ containers as a special example), the preceding snippet will
+ not compile, because their point-type iterators do not support
+ <tt><b>operator</b>++</tt>.</p>
+
+ <p>In any case, both for order-preserving and self-organizing
+ containers, the following snippet will compile:</p>
+ <pre>
+<b>typename</b> Cntnr::point_iterator it = c.find(2);
+</pre>
+
+ <p>because a range-type iterator can always be converted to a
+ point-type iterator.</p>
+
+ <p><a href="ds_gen.html#find_range">Design::Associative
+ Containers::Data-Structure Genericity::Point-Type and
+ Range-Type Methods and Iterators</a> discusses this
+ further.</p>
+
+ <p><a href=
+ "motivation.html#assoc_diff_it">Motivation::Associative
+ Containers::Differentiating between Iterator Types</a> also
+ raised the point that a container's iterators might have
+ different invalidation rules concerning their de-referencing
+ abilities and movement abilities. This now corresponds exactly
+ to the question of whether point-type and range-type iterators
+ are valid. As explained in <a href="#assoc_ds_gen">Determining
+ Containers' Attributes</a>, <a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a> allows
+ querying a container for its data structure attributes. The
+ iterator-invalidation guarantees are certainly a property of
+ the underlying data structure, and so</p>
+ <pre>
+<a href=
+"assoc_container_traits.html">container_traits</a>&lt;C&gt;::invalidation_guarantee
+</pre>
+
+ <p>gives one of three pre-determined types that answer this
+ query. This is explained further in <a href=
+ "ds_gen.html#find_range">Design::Associative
+ Containers::Data-Structure Genericity::Point-Type and
+ Range-Type Methods and Iterators</a>.</p>
+
+ <h3><a name="assoc_ms" id="assoc_ms">Distinguishing between Maps and Sets</a></h3>
+
+ <p>Anyone familiar with the STL knows that there are four kinds
+ of associative containers: maps, sets, multimaps, and
+ multisets. <a href="#assoc_basic">Basic Use</a> discussed how
+ to use maps, <i>i.e.</i> containers that associate each key to
+ some data.</p>
+
+ <p>Sets are associative containers that simply store keys -
+ they do not map them to anything. In the STL, each map class
+ has a corresponding set class. <i>E.g.</i>,
+ <tt>std::map&lt;<b>int</b>, <b>char</b>&gt;</tt> maps each
+ <tt><b>int</b></tt> to a <tt><b>char</b></tt>, but
+ <tt>std::set&lt;<b>int</b>, <b>char</b>&gt;</tt> simply stores
+ <tt><b>int</b></tt>s. In <tt>pb_ds</tt>, however, there are no
+ distinct classes for maps and sets. Instead, an associative
+ container's <tt>Mapped</tt> template parameter is a policy: if
+ it is instantiated by <a href=
+ "null_mapped_type.html"><tt>null_mapped_type</tt></a>, then it
+ is a "set"; otherwise, it is a "map". <i>E.g.</i>,</p>
+ <pre>
+<a href="cc_hash_table.html">cc_hash_table</a>&lt;<b>int</b>, <b>char</b>&gt;
+</pre>is a "map" mapping each <tt><b>int</b></tt> value to a <tt>
+ <b>char</b></tt>, but
+ <pre>
+<a href="cc_hash_table.html">cc_hash_table</a>&lt;<b>int</b>, <a href="null_mapped_type.html">null_mapped_type</a>&gt;
+</pre>is a type that uniquely stores <tt><b>int</b></tt> values.
+
+ <p>Once the <tt>Mapped</tt> template parameter is instantiated
+ by <a href="null_mapped_type.html">null_mapped_type</a>, then
+ the "set" acts very similarly to the STL's sets - it does not
+ map each key to a distinct <a href=
+ "null_mapped_type.html">null_mapped_type</a> object. Also,
+ , the container's <tt>value_type</tt> is essentially
+ its <tt>key_type</tt> - just as with the STL's sets. For a simple example, see <a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_set.cc"><tt>basic_set.cc</tt></a>
+ .</p>
+
+ <p>The STL's multimaps and multisets allow, respectively,
+ non-uniquely mapping keys and non-uniquely storing keys. As
+ discussed in <a href=
+ "motivation.html#assoc_mapping_semantics">Motivation::Associative
+ Containers::Alternative to Multiple Equivalent Keys</a>, the
+ reasons why this might be necessary are 1) that a key might be
+ decomposed into a primary key and a secondary key, 2) that a
+ key might appear more than once, or 3) any arbitrary
+ combination of 1)s and 2)s. Correspondingly,
+ one should use 1) "maps" mapping primary keys to secondary
+ keys, 2) "maps" mapping keys to size types, or 3) any arbitrary
+ combination of 1)s and 2)s. Thus, for example, an
+ <tt>std::multiset&lt;<b>int</b>&gt;</tt> might be used to store
+ multiple instances of integers, but using <tt>pb_ds</tt>'s
+ containers, one might use</p>
+ <pre>
+<a href=
+"tree.html">tree</a>&lt;<b>int</b>, size_t&gt;
+</pre><i>i.e.</i>, a "map" of <tt><b>int</b></tt>s to
+<tt>size_t</tt>s.
+
+ <p><a href="assoc_examples.html#mmaps">Associative-Container
+ Examples::"Multimaps" and "Multisets"</a> shows some simple
+ examples.</p>
+
+ <p>These "multimaps" and "multisets" might be confusing to
+ anyone familiar with the STL's <tt>std::multimap</tt> and
+ <tt>std::multiset</tt>, because there is no clear
+ correspondence between the two. For example, in some cases
+ where one uses <tt>std::multiset</tt> in the STL, one might use
+ in <tt>pb_ds</tt> a "multimap" of "multisets" - <i>i.e.</i>, a
+ container that maps primary keys each to an associative
+ container that maps each secondary key to the number of times
+ it occurs.</p>
+
+ <p>When one uses a "multimap," one should choose with care the
+ type of container used for secondary keys. This is further
+ explained in <a href=
+ "assoc_performance_tests.html#msc">Associative-Container
+ Performance Tests::Observations::Mapping-Semantics
+ Considerations</a>.</p>
+
+<hr>
+ <h2><a name="pq" id="pq">Priority Queues</a></h2>
+
+ <h3><a name="pq_basic" id="pq_basic">Basic Use</a></h3>
+
+ <p><tt>pb_ds</tt>'s priority_queue container is
+ similar to the STL's in interface. For example:</p>
+ <pre>
+<a href=
+"priority_queue.html">priority_queue</a>&lt;<b>int</b>&gt; p;
+
+p.push(2);
+p.push(4);
+p.push(1);
+
+assert(p.top() == 4);
+
+p.pop();
+
+assert(p.top() == 2);
+
+assert(p.size() == 2);
+assert(!p.empty());
+</pre>
+
+ <h3><a name="pq_policies" id="pq_policies">Configuring Priority
+ Queues</a></h3>
+
+ <p>As opposed to associative containers, priority queues have
+ relatively few configuration options. The priority queue is
+ parametrized as follows:</p>
+ <pre>
+<b>template</b>&lt;
+ <b>typename</b> Value_Type,
+ <b>typename</b> Cmp_Fn,
+ <b>typename</b> Tag,
+ <b>typename</b> Allocator&gt;
+<b>class</b> <a href="priority_queue.html">priority_queue</a>;
+</pre>
+
+ <p>The <tt>Value_Type</tt>, <tt>Cmp_Fn</tt>, and
+ <tt>Allocator</tt> parameters are the container's value type,
+ comparison-functor type, and allocator type, respectively;
+ these are very similar to the STL's priority queue. The
+ <tt>Tag</tt> parameter is different: there are a number of
+ pre-defined tag types corresponding to binary heaps, binomial
+ heaps, <i>etc.</i>, and <tt>Tag</tt> should be instantiated
+ by one of them. <a href=
+ "interface.html#ds_ts_pq">Interface::Data-Structure Tags and
+ Traits::Data Structure Tags::Priority-Queues</a> lists the
+ possible types, <a href="pq_design.html">Priority-Queue
+ Design</a> explains this further, and <a href=
+ "../../../../testsuite/ext/pb_ds/example/basic_priority_queue.cc"><tt>basic_priority_queue.cc</tt></a>
+ shows an example.</p>
+
+ <p>Note that as opposed to the STL's priority queue, <a href=
+ "priority_queue.html"><tt>priority_queue</tt></a> is not a
+ sequence-adapter; it is a regular container.</p>
+
+ <h3><a name="pq_ds_more_ops" id="pq_ds_more_ops">Supporting
+ More Operations</a></h3>
+
+ <p><a href="priority_queue.html"><tt>priority_queue</tt></a>'s
+ <tt>push</tt> method returns a point-type iterator, which can
+ be used for modifying or erasing arbitrary values. For
+ example:</p>
+ <pre>
+<a href=
+"priority_queue.html">priority_queue</a>&lt;<b>int</b>&gt; p;
+
+<a href=
+"priority_queue.html">priority_queue</a>&lt;<b>int</b>&gt;::point_iterator it = p.push(3);
+
+p.modify(it, 4);
+</pre>
+
+ <p>These types of operations are necessary for making priority
+ queues useful for different applications, especially graph
+ applications. <a href="pq_examples.html#xref">Priority-Queue
+ Examples::Cross-Referencing</a> gives some examples.</p>
+
+ <h3><a name="pq_ds_gen" id="pq_ds_gen">Determining Container
+ Attributes</a></h3>
+
+ <p>Similarly to <a href=
+ "assoc_container_traits.html"><tt>container_traits</tt></a> (described
+ in <a href="#assoc_ds_gen">Associative Containers::Determining
+ Containers' Attributes</a>), <a href=
+ "pq_container_traits.html"><tt>container_traits</tt></a> can be used to
+ statically determine priority-queues' attributes:</p>
+ <pre>
+<a href=
+"pq_container_traits.html">container_traits</a>&lt;C&gt;::container_category
+</pre>is one of a small number of predefined tag structures that
+identifies the underlying data structure, and
+ <pre>
+<a href=
+"pq_container_traits.html">container_traits</a>&lt;C&gt;::invalidation_guarantee
+</pre>
+
+ <p>is its invalidation guarantee. Invalidation guarantees are
+ especially important regarding priority queues, since in
+ <tt>pb_ds</tt>'s design, iterators are practically the only way
+ to manipulate them.</p>
+
+ <p><a href="pq_design.html#pq_traits">Design::Priority
+ Queues::Traits</a> discusses this further. <a href=
+ "pq_examples.html#generics">Priority-Queue
+ Examples::Generics</a> shows an example.</p>
+ </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/update_policy_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/update_policy_cd.png
new file mode 100644
index 0000000..115a751
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/update_policy_cd.png
Binary files differ
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/update_seq_diagram.png b/libstdc++-v3/docs/html/ext/pb_ds/update_seq_diagram.png
new file mode 100644
index 0000000..880a50e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/update_seq_diagram.png
Binary files differ