Commit Graph

165 Commits

Author SHA1 Message Date
Paolo Carlini 276116fdcc random (xor_combine<>::_M_initialize_max_aux): New.
2006-10-01  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (xor_combine<>::_M_initialize_max_aux): New.
	(xor_combine<>::operator()()): Tweak per N2079.
	* include/tr1/random.tcc (xor_combine<>::_M_initialize_max_aux):
	Define.
	(xor_combine<>::_M_initialize_max): Use it.
	* testsuite/tr1/5_numerical_facilities/random/xor_combine/
	cons/default.cc: Adjust.
	* docs/html/ext/tr1.html: Adjust.

From-SVN: r117353
2006-10-02 00:12:50 +00:00
Paolo Carlini 4553813629 boost_shared_ptr.h: Use __atomic_add_dispatch and __exchange_and_add_dispatch everywhere.
2006-09-28  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/boost_shared_ptr.h: Use __atomic_add_dispatch and
	__exchange_and_add_dispatch everywhere.

From-SVN: r117280
2006-09-28 12:57:47 +00:00
Howard Hinnant 21c9e2b609 re PR libstdc++/29224 (-Wshadow causing warning in <tr1/functional>)
2006-09-26  Howard Hinnant  <hhinnant@apple.com>

	PR libstdc++/29224
	* include/tr1/functional_iterate.h: Avoid -Wshadow warnings.

From-SVN: r117222
2006-09-26 00:59:37 +00:00
Paolo Carlini c8bd30ddb3 boost_shared_ptr.h (shared_ptr<>::shared_ptr(const __shared_ptr<>&), [...]): Remove.
2006-09-24  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/boost_shared_ptr.h (shared_ptr<>::shared_ptr(const
	__shared_ptr<>&), shared_ptr(const __weak_ptr<>&),
	shared_ptr(const __shared_ptr<>&, __static_cast_tag),
	shared_ptr(const __shared_ptr<>&, __const_cast_tag),
	shared_ptr(const __shared_ptr<>&, __dynamic_cast_tag),
	weak_ptr<>::weak_ptr(const __shared_ptr<>&), weak_ptr(const
	__weak_ptr<>&)): Remove.
	(shared_ptr<>::shared_ptr(const shared_ptr<>&),
	shared_ptr(const weak_ptr<>&), shared_ptr(const shared_ptr<>&,
	__static_cast_tag), shared_ptr(const shared_ptr<>&,
	__const_cast_tag), shared_ptr(const shared_ptr<>&,
	__dynamic_cast_tag), static_pointer_cast(const shared_ptr<>&),
	const_pointer_cast(const shared_ptr<>&), dynamic_pointer_cast(const
	shared_ptr<>&), weak_ptr<>::weak_ptr(const shared_ptr<>&),
	weak_ptr(const weak_ptr<>&), weak_ptr<>::lock(), 
	__enable_shared_from_this_helper(const __shared_count<>&, const
	enable_shared_from_this<>*, const _Tp2*)): Add. 
	(class enable_shared_from_this): Add.
	* testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/
	1.cc: New.
	* testsuite/tr1/2_general_utilities/memory/shared_ptr/casts/1.cc:
	Likewise.
	* testsuite/tr1/2_general_utilities/memory/weak_ptr/lock/1.cc:
	Likewise.

	* include/tr1/boost_shared_ptr.h: Further formatting and
	uglification fixes.

From-SVN: r117184
2006-09-24 19:42:34 +00:00
Paolo Carlini dcd400b56f type_traits (add_reference): Robustify vs reference to void.
2006-09-22  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits (add_reference): Robustify vs
	reference to void.
	* testsuite/tr1/4_metaprogramming/reference_modifications/
	add_reference.cc: Add test.

	* include/tr1/memory: include <tr1/type_traits>.
	* include/tr1/boost_shared_ptr.h (__shared_ptr<>::operator*):
	Use add_reference instead.
	* testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/
	explicit_instantiation/1.cc: New.
	* testsuite/tr1/2_general_utilities/memory/shared_ptr/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/tr1/2_general_utilities/memory/weak_ptr/
	explicit_instantiation/1.cc: Likewise.

	* testsuite/util/testsuite_tr1.h: Tweak; avoid empty enum.

	* include/tr1/type_traits_fwd.h: Spelling fix.

	* include/tr1/boost_shared_ptr.h: Obvious stylistic fixes.

From-SVN: r117147
2006-09-22 15:54:52 +00:00
Paolo Carlini 459f9f82ec boost_shared_ptr.h: Trivial formatting fixes.
2006-09-22  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/boost_shared_ptr.h: Trivial formatting fixes.

From-SVN: r117145
2006-09-22 14:22:21 +00:00
Paolo Carlini 7ffb61d503 hash_map: Remove forward declaration of equality operator...
2006-09-21  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/hash_map: Remove forward declaration of equality
	operator, not needed for friendship of all its instances.
	* include/ext/hash_set: Likewise.
	* include/bits/stl_set.h: Likewise for equality operator and
	operator less.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_queue.h: Likewise.
	* include/bits/stl_stack.h: Likewise.
	* include/bits/streambuf_iterator.h: Likewise for copy.
	* include/std/std_streambuf.h: Likewise for __copy_aux and find.
	* include/tr1/boost_shared_ptr.h: Likewise for get_deleter.
	* include/tr1/random: Likewise, remove all forward declarations
	of inserters and extractors.

From-SVN: r117116
2006-09-21 17:54:50 +00:00
Paolo Carlini 1f9c69a9a3 re PR libstdc++/29134 (Has there been a serious attempt to define the max_size() member functions?)
2006-09-20  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29134
	* include/bits/stl_list.h (list<>::max_size): Forward to allocator'
	max_size.
	* include/bits/stl_vector.h (vector<>::max_size): Likewise.
	* include/bits/stl_deque.h (deque<>::max_size): Likewise.
	* include/bits/stl_tree.h (_Rb_tree<>::max_size): Likewise.
	* include/tr1/hashtable (_Hashtable<>::max_size): Likewise.
	* testsuite/23_containers/vector/capacity/29134.cc: Add.
	* testsuite/23_containers/deque/capacity/29134.cc: Likewise.
	* testsuite/23_containers/list/capacity/29134.cc: Likewise.
	* testsuite/23_containers/set/capacity/29134.cc: Likewise.
	* testsuite/23_containers/map/capacity/29134.cc: Likewise.
	* testsuite/23_containers/multiset/capacity/29134.cc: Likewise.
	* testsuite/23_containers/multimap/capacity/29134.cc: Likewise.	
	* testsuite/tr1/6_containers/unordered/capacity/29134-set.cc: Likewise.
	* testsuite/tr1/6_containers/unordered/capacity/29134-map.cc: Likewise.
	* testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc:
	Likewise.
	* testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc:
	Likewise.

	* include/bits/deque.tcc (deque<>::_M_new_elements_at_front,
	deque<>::_M_new_elements_at_back): Check for length errors.
	* testsuite/23_containers/deque/capacity/29134-2.cc: New.
	* testsuite/23_containers/vector/capacity/29134-2.cc: Likewise.

	* include/tr1/hashtable (_Hashtable<>::_M_get_Value_allocator): Add.
	(_Hashtable<>::_M_allocate_node, _M_deallocate_node): Use it.
	* testsuite/tr1/6_containers/unordered/instantiate/set.cc: Add test.
	* testsuite/tr1/6_containers/unordered/instantiate/map.cc: Likewise.
	* testsuite/tr1/6_containers/unordered/instantiate/multiset.cc:
	Likewise.
	* testsuite/tr1/6_containers/unordered/instantiate/multimap.cc:
	Likewise.

From-SVN: r117099
2006-09-21 00:11:52 +00:00
Paolo Carlini 95cefe5f0e hashtable_policy.h: Uglify all the names.
2006-09-19  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/hashtable_policy.h: Uglify all the names.
	* include/tr1/hashtable: Likewise.
	* include/tr1/unordered_map: Likewise.
	* include/tr1/unordered_set: Likewise.
	* include/tr1/functional: Uglify struct hash names.
	* include/tr1/cmath: Uglify namespace detail to __detail.

From-SVN: r117052
2006-09-19 09:07:56 +00:00
Benjamin Kosnik 105c6331b2 type_traits.h: New.
2006-09-18  Benjamin Kosnik  <bkoz@redhat.com>
	    Peter Doerfler  <gcc@pdoerfler.com>
	    Paolo Carlini  <pcarlini@suse.de>
	
	* include/ext/type_traits.h: New. 
	(__conditional_type): New.
	(__numeric_traits): New.
	(__add_unsigned): New.
	(__remove_unsigned): New.
	(__enable_if): New.
	* include/Makefile.am: Add.
	* include/Makefile.in: Regenerate.
	* include/ext/pb_ds/detail/type_utils.hpp: Use ext include,
	remove duplicates.
	* include/tr1/hashtable_policy.h (IF): Use __conditional_type.
	(_Max_digits10): Same.
	(identity): Use _Identity.
	(extract1st): Use _Select1st.
	* include/tr1/random (_Select): Use __conditional_type.
	(_To_Unsigned_Type): Use __add_unsigned. Linebreak fixups.
	* include/bits/locale_facets.tcc (__to_unsigned_type): Remove, use
	__add_unsigned.
	* include/tr1/random.tcc: Fixups as above.
	* include/tr1/unordered_map: Same.
	* include/tr1/hashtable: Same.
	* include/tr1/unordered_set: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/
	standard_policies.hpp: Same.
	* include/ext/pb_ds/detail/standard_policies.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_filter.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Same.
	* include/ext/pb_ds/detail/type_utils.hpp: Same.
	* include/ext/pb_ds/trie_policy.hpp: Same.
	* docs/html/ext/pb_ds/string_trie_e_access_traits.html: Same.
	
	* include/bits/cpp_type_traits.h (__enable_if): Move to ext, make
	boolean argument first.	
	* include/bits/locale_facets.h: Fixups for __enable_if argument
	and namespace switch.
	* include/bits/stl_algobase.h: Same.
	* include/bits/stl_algo.h: Same.
	* include/bits/stl_iterator.h: Same.
	* include/bits/streambuf_iterator.h: Same.
	* include/debug/safe_iterator.h: Same.
	* include/tr1/hashtable_policy.h: Same.
	* include/tr1/cmath: Same.
	* include/tr1/functional: Same.
	* include/tr1/functional_iterate.h: Same.
	* include/std/std_streambuf.h: Same.
	* include/c_std/std_cmath.h: Same.
	* testsuite/util/testsuite_tr1.h: Same.
	* testsuite/util/performance/assoc/multimap_common_type.hpp: Same.


Co-Authored-By: Paolo Carlini <pcarlini@suse.de>
Co-Authored-By: Peter Doerfler <gcc@pdoerfler.com>

From-SVN: r117024
2006-09-18 13:30:56 +00:00
Benjamin Kosnik 2e362c7474 atomicity.h: Move to...
2006-09-13  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/atomicity.h: Move to...
	* include/ext/atomicity.h: ...here.	
	* include/bits/concurrence.h: Move to...
	* include/ext/concurrence.h: ...here.
	* include/Makefile.am (ext_headers): Additions.
	(bits_headers): Subtractions.
	* include/Makefile.in: Regenerate.

	* include/ext/bitmap_allocator.h (_Mutex), __threads_enabled,
	_Lock, _Auto_Lock): Subsume into...
	* include/bits/concurrence.h (__mutex): ..this. Error check
	locking and unlocking.	
	(lock): Uglify to...
	(__scoped_lock): Use __mutex. 
	(__glibcxx_mutex_define_initialized): Remove.
	(__glibcxx_mutex_type): Remove.

	* include/tr1/boost_shared_ptr.h: Formating tweaks, adjustments.
	(_Lock_policy): Move from here...
	* include/ext/concurrence.h: ... to here.
	(__shared_ptr_default_lock_mode): To __default_lock_policy.
	(_S_lockfree): To _S_atomic.
	Document.

	* libsupc++/guard.cc (static_mutex): Subsume into and fixup for...
	* include/ext/concurrence.h (__recursive_mutex): ...this. Error
	check locking and unlocking.
	* libsupc++/eh_alloc.cc: Use __scoped_lock.

	* config/os/aix/atomicity.h: Fixups for include paths, mutex to
	__scoped_mutex change, removal of locking defines.
	* config/os/irix/atomicity.h: Same.
	* config/cpu/cris/atomicity.h: Same.
	* config/cpu/m68k/atomicity.h: Same.
	* config/cpu/hppa/atomicity.h: Same.
	* config/cpu/mips/atomicity.h: Same.
	* config/cpu/sparc/atomicity.h: Same.
	* config/cpu/i386/atomicity.h: Same.
	* config/cpu/i486/atomicity.h: Same.
	* config/cpu/sh/atomicity.h: Same.
	* config/cpu/generic/atomicity_mutex/atomicity.h: Same.
	* include/ext/pool_allocator.h: Same.
	* include/ext/bitmap_allocator.h: Same.
	* include/ext/rc_string_base.h: Same.
	* include/ext/mt_allocator.h: Same.
	* include/bits/locale_classes.h: Same.
	* include/bits/basic_string.h: Same.
	* include/bits/ios_base.h: Same.
	* include/tr1/memory: Same.
	* src/pool_allocator.cc: Same.
	* src/mt_allocator.cc: Same.
	* src/locale_init.cc: Same.
	* src/ios.cc: Same.
	* src/locale.cc: Same.
	* src/bitmap_allocator.cc: Same.
	* src/ios_init.cc: Same.
	* src/debug.cc: Same.

From-SVN: r116942
2006-09-14 09:48:15 +00:00
Paolo Carlini 96b9f9a4d8 random.tcc (poisson_distribution<>::operator()): Avoid potential warnings when _IntType is unsigned.
2006-09-08  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random.tcc (poisson_distribution<>::operator()):
	Avoid potential warnings when _IntType is unsigned.

From-SVN: r116779
2006-09-08 14:40:47 +00:00
Benjamin Kosnik 06e744948b re PR c++/28871 (massive C++ compile time slowdown)
2006-09-04  Benjamin Kosnik  <bkoz@redhat.com>

	PR c++/28871
	* include/ext/bitmap_allocator.h: Add comment for end of anonymous
	namespace.
	* include/ext/rope: Same.
	* include/bits/cpp_type_traits.h: Same.
	* include/tr1/tuple: Same.
	* include/tr1/functional_iterate.h: Same.

	* include/bits/cpp_type_traits.h: Revert anonymous namespace
	change, use nested detail instead.

	* testsuite/lib/libstdc++.exp (libstdc++_init): PCHFLAGS revert to
	stdc++.h.

From-SVN: r116680
2006-09-04 15:41:18 +00:00
Paolo Carlini a3b6119721 random (subtract_with_carry_01<>::_M_initialize_npows): New.
2006-08-29  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (subtract_with_carry_01<>::_M_initialize_npows):
	New.
	(subtract_with_carry_01<>::subtract_with_carry_01(),
	subtract_with_carry_01<>::subtract_with_carry_01(unsigned long),
	subtract_with_carry_01<>::subtract_with_carry_01(_Gen&)): Use it.
	* include/tr1/random.tcc: Define.

	* include/tr1/random (xor_combine<>::_M_initialize_max()): New.
	(xor_combine<>::xor_combine(), xor_combine<>::xor_combine(const
	base1_type&, const base2_type&), xor_combine<>::xor_combine(unsigned
	long), xor_combine<>::xor_combine(_Gen&)): Use it.
	(xor_combine<>::min, xor_combine<>::max): Adjust.
	* include/tr1/random.tcc: Define.

From-SVN: r116559
2006-08-29 11:46:54 +00:00
Paolo Carlini 7849b3de89 random (bernoulli_distribution::operator()): Fix wrt generators returning integers.
2006-08-25  Paolo Carlini  <pcarlini@suse.de>

        * include/tr1/random (bernoulli_distribution::operator()): Fix
        wrt generators returning integers.
	(uniform_int<>::_M_call): Add.
	(uniform_int<>::operator()): Use it.

	* include/tr1/random (_Adaptor<>::min, _Adaptor<>::max): Add.
	(_Adaptor<>::operator()): Allow for nonzero _M_g.min().

	* include/tr1/random.tcc (linear_congruential<>::min, max):
	Move inline...
	(__mod): Move ...
	* include/tr1/random: ... here.
	(struct _Mod): Declare.

	* include/tr1/random (struct _To_Unsigned_Type): Only declare,
	move...
	* include/tr1/random.tcc: ... here.

From-SVN: r116402
2006-08-25 16:02:23 +00:00
Paolo Carlini 53fdb33908 random.tcc (subtract_with_carry_01<>:: seed(_Gen&, false_type)): Fix _M_carry initialization.
2006-08-22  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random.tcc (subtract_with_carry_01<>::
      	seed(_Gen&, false_type)): Fix _M_carry initialization.
	
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/cons/default.cc: Qualify 1 as 1UL.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/cons/gen1.cc: Likewise.

From-SVN: r116334
2006-08-22 22:57:53 +00:00
Phillip Jordan a25ce4dbf9 added locking policy to tr1::shared_ptr<> and related classes
From-SVN: r116333
2006-08-22 22:34:45 +00:00
Paolo Carlini 9aa53350c3 random (class subtract_with_carry_01): Add.
2006-08-22  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (class subtract_with_carry_01): Add.
	* include/tr1/random.tcc (subtract_with_carry_01<>::
	seed(unsigned long), subtract_with_carry_01<>::
	seed(_Gen&, false_type), subtract_with_carry_01<>::
	operator(), operator<<(std::basic_ostream<>&, const
	subtract_with_carry_01<>&), operator>>(std::basic_istream<>&,
	subtract_with_carry_01<>&)): Define.
	* testsuite/tr1/5_numerical_facilities/random/ranlux3_01.cc:
	New.
	* testsuite/tr1/5_numerical_facilities/random/ranlux4_01.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry_01/cons/seed1.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry_01/cons/seed2.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry_01/cons/default.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry_01/cons/gen1.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry_01/requirements/typedefs.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry_01/operators/equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry_01/operators/not_equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry_01/operators/serialize.cc: Likewise.

	* docs/html/ext/howto.html: Add two implemented TR1 issues.

	* include/tr1/random.tcc (struct _To_Unsigned_Type): Move...
	* include/tr1/random: ... here.
	(class subtract_with_carry): Use it everywhere.

	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/cons/seed1.cc: Qualify 1 as 1UL.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/cons/seed2.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/cons/default.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/cons/gen1.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/requirements/typedefs.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/operators/equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/operators/not_equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/operators/serialize.cc: Likewise.

From-SVN: r116327
2006-08-22 18:07:55 +00:00
Paolo Carlini 96ddac7425 random (gamma_distribution<>::_M_initialize, [...]): Add.
2006-08-20  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (gamma_distribution<>::_M_initialize,
	gamma_distribution<>::_M_l_d): Add.
	(gamma_distribution<>::gamma_distribution(const result_type&),
	operator>>(std::basic_istream<>&, gamma_distribution&)): Use it.
	include/tr1/random.tcc (gamma_distribution<>::_M_initialize):
	Define.
	(gamma_distribution<>::operator()): Adjust.

	* include/tr1/random (geometric_distribution<>::_M_initialize): Add.
	(geometric_distribution<>::geometric_distribution(const _RealType&),
	operator>>(std::basic_istream<>&, geometric_distribution&)): Use it.

From-SVN: r116273
2006-08-20 16:05:05 +00:00
Paolo Carlini 42031254bf random (class binomial_distribution<>): Add.
2006-08-18  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (class binomial_distribution<>): Add.
	* include/tr1/random.tcc (binomial_distribution<>::operator(),
	operator<<(std::basic_ostream<>&, const binomial_distribution<>&),
	operator>>(std::basic_istream<>&, binomial_distribution<>&,
	binomial_distribution<>::_M_waiting(), binomial_distribution<>::
	_M_initialize()): Define.
	* testsuite/tr1/5_numerical_facilities/random/binomial_distribution/
	requirements/typedefs.cc: New.

	* include/tr1/random (geometric_distribution<>::
	geometric_distribution(const _RealType&)): Fix DEBUG_ASSERT
	limits.

	* include/tr1/random (poisson_distribution): Add normal_distribution
	member, adjust consistently; minor tweaks and rearrangements of the
	arithmetic.
	(operator>>(std::basic_istream<>&, poisson_distribution<>&)): Move
	out of line.
	* include/tr1/random.tcc: Adjust.

	* include/tr1/random.tcc (normal_distribution<>::operator()): Minor
	tweaks.

From-SVN: r116245
2006-08-18 17:15:43 +00:00
Paolo Carlini 482e4739cd random (poisson_distribution<>::_M_initialize): Add.
2006-08-15  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (poisson_distribution<>::_M_initialize): Add.
	(poisson_distribution<>::poisson_distribution(const _RealType&):
	Use it.
	(operator>>(std::basic_istream<>&, poisson_distribution<>&)):
	Likewise.
	(poisson_distribution<>::_M_large): Remove.
	* include/tr1/random.tcc (poisson_distribution<>::_M_initialize):
	Define.
	(operator<<(std::basic_ostream<>&, const poisson_distribution<>&)):
	Do not output the constants.

	* include/tr1/random (operator>>(std::basic_istream<>&,
	gamma_distribution&)): Minor tweak.
	
	* include/tr1/random.tcc (poisson_distribution<>::operator()):
	Minor tweak.

	* include/tr1/random: Consistently, all data members private.

From-SVN: r116155
2006-08-15 15:11:24 +00:00
Paolo Carlini 64c23908ee random.tcc (mersenne_twister<>::operator()): Revert last change (per gcc-patches/2006-08/msg00484.html).
2006-08-15  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random.tcc (mersenne_twister<>::operator()): Revert
	last change (per gcc-patches/2006-08/msg00484.html).

From-SVN: r116151
2006-08-15 09:08:31 +00:00
Paolo Carlini bbddd5d0c2 random (class poisson_distribution<>): Add.
2006-08-14  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (class poisson_distribution<>): Add.
	* include/tr1/random.tcc (poisson_distribution<>::operator(),
	operator<<(std::basic_ostream<>&, const poisson_distribution<>&),
	operator>>(std::basic_istream<>&, poisson_distribution<>&,
	poisson_distribution<>::poisson_distribution(const _RealType&)):
	Define.
	* testsuite/tr1/5_numerical_facilities/random/poisson_distribution/
	requirements/typedefs.cc: New.

	* include/tr1/random.tcc (mersenne_twister<>::operator()): Tweak
	a bit for efficiency.
	
	* include/tr1/random.tcc (operator<<(std::basic_ostream<>&,
	const normal_distribution<>&), operator>>(std::basic_istream<>&,
	normal_distribution<>&)): Do not output _M_saved unnecessarily.

	* include/tr1/random: Trivial formatting fixes.
	* include/tr1/cmath: Likewise.

From-SVN: r116149
2006-08-15 02:28:45 +00:00
Paolo Carlini 4a93bc5db2 random.tcc (gamma_distribution<>::operator()): Fixes from the Errata of Devroye's book.
2006-08-10  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random.tcc (gamma_distribution<>::operator()): Fixes
	from the Errata of Devroye's book.

From-SVN: r116061
2006-08-10 14:38:11 +00:00
Benjamin Kosnik b82f782bfb PR libstdc++/19664 round 3
2006-07-27  Benjamin Kosnik  <bkoz@wells.artheist.org>

	PR libstdc++/19664 round 3	
	* include/Makefile.am (tr1_headers): Add hashtable_policy.h.
	* include/Makefile.in: Regenerate.
	* include/tr1/hashtable: Move policy classes into...
	* include/tr1/hashtable_policy.h: ... this. New.
	
	* src/globals_locale.cc: Move contents....
	* src/locale_init.cc: ... to here, put in anonymous namespace.
	* src/Makefile.am: Remove globals_locale.cc.
	* src/Makefile.in: Regenerate.

	* src/locale.cc: Convert __gnu_internal to anonymous namespace.
	* src/debug.cc: Same.
	* src/ext-inst.cc: Same.
	* src/mt_allocator.cc: Same.
	* src/pool_allocator.cc: Same.
	
	* include/tr1/random: Convert std::tr1::_Private to anonymous
	namespace.
	* include/tr1/random.tcc: Same.

	* include/tr1/hashtable: Move ::Internal to std::tr1::detail and
	enclose bits that can actually be internal in in anonymous
	namespace.
	* include/tr1/unordered_set: Adjust explicit qualifications for
	namespace changes.
	* include/tr1/unordered_map: Same.

	* include/tr1/cmath: Convert __gnu_internal to nested detail namespace.

	* include/bits/cpp_type_traits.h: Move __type_type into anonymous
	namespace.
	
	* include/ext/rope: Change _Rope_constants to anonymous namespace.
	* include/ext/ropeimpl.h: Same.
	* src/ext-inst.cc: Same.

From-SVN: r115790
2006-07-28 04:57:34 +00:00
Paolo Carlini a0cbafebd7 cinttypes: Simply protect everything with _GLIBCXX_USE_C99_INTTYPES_TR1.
2006-07-24  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/cinttypes: Simply protect everything with
	_GLIBCXX_USE_C99_INTTYPES_TR1.
	* include/tr1/cfenv: Likewise with _GLIBCXX_USE_C99_FENV_TR1.
	* include/tr1/cstdint: Likewise with _GLIBCXX_USE_C99_STDINT_TR1.

From-SVN: r115715
2006-07-24 12:30:28 +00:00
Benjamin Kosnik 76b4581d09 random: Make include guards consistent.
2006-07-21  Benjamin Kosnik  <bkoz@redhat.com>

	* include/tr1/random: Make include guards consistent.
	* include/tr1/unordered_map: Same.
	* include/tr1/hashtable: Same.
	* include/tr1/unordered_set: Same.

From-SVN: r115656
2006-07-21 23:54:41 +00:00
Paolo Carlini 8d6bd4a791 random (minstd_rand0, [...]): Use unsigned long as implementation-defined type.
2006-07-14  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (minstd_rand0, minstd_rand, ranlux3, ranlux4):
	Use unsigned long as implementation-defined type.

From-SVN: r115450
2006-07-14 17:21:03 +00:00
Paolo Carlini 8c2e5f361c random.tcc (struct _To_Unsigned_Type): Add.
2006-07-14  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random.tcc (struct _To_Unsigned_Type): Add.
	(subtract_with_carry<>::seed(_Gen&, false_type)): Use an
	unsigned type in the loop, fix factor multiplier, take g
	invocations modulo 2^32.

	* include/tr1/random.tcc (subtract_with_carry<>::
	seed(unsigned long)): Fix value == 0 special case.

	* include/tr1/random (struct _Shift): Fix for large shifts.

From-SVN: r115439
2006-07-14 12:55:15 +00:00
Paolo Carlini ad084e9d07 re PR libstdc++/28344 (Use of __alpha in tr1/random breaks Tru64 UNIX bootstrap)
2006-07-11  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28344
	* include/tr1/random (gamma_distribution<>::
	gamma_distribution(const result_type&)): Don't use __alpha as
	parameter name, a predefined macro on Alpha systems.

From-SVN: r115355
2006-07-11 22:08:56 +00:00
Paolo Carlini 33251a2dc3 random (class gamma_distribution<>): Add.
2006-07-06  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (class gamma_distribution<>): Add.
	* include/tr1/random.tcc (gamma_distribution<>::operator(),
	operator<<(std::basic_ostream<>&, const gamma_distribution<>&)):
	Define.
	* testsuite/tr1/5_numerical_facilities/random/gamma_distribution/
	requirements/typedefs.cc: New.

From-SVN: r115236
2006-07-06 23:30:14 +00:00
Paolo Carlini 3329fcdc38 random (_Adaptor<>::operator()()): Cast 1 to result_type.
2006-07-04  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (_Adaptor<>::operator()()): Cast 1 to
	result_type.
	(variate_generator<>::operator()(),
	variate_generator<>::operator()(_Tp)): Inline.

	* include/tr1/random: Minor cosmetic changes.

From-SVN: r115179
2006-07-04 15:42:32 +00:00
Paolo Carlini bfe3e83159 random (operator<<(std::basic_ostream<>&, const linear_congruential<>&), [...]): Redo per TR1 specs; move out of line...
2006-06-25  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (operator<<(std::basic_ostream<>&,
	const linear_congruential<>&), operator>>(std::basic_istream<>&,
	linear_congruential<>&), operator<<(std::basic_ostream<>&,
	const mersenne_twister<>&), operator>>(std::basic_istream<>&,
	mersenne_twister<>&), operator<<(std::basic_ostream<>&,
	const subtract_with_carry<>&), operator>>(std::basic_istream<>&,
	subtract_with_carry<>&), operator<<(std::basic_ostream<>&,
	const discard_block<>&), operator>>(std::basic_istream<>&,
	discard_block<>&), operator<<(std::basic_ostream<>&,
	const xor_combine<>&), operator>>(std::basic_istream<>&,
	xor_combine<>&), operator<<(std::basic_ostream<>&,
	const uniform_int<>&), operator>>(std::basic_istream<>&,
	uniform_int<>&), operator<<(std::basic_ostream<>&,
	const bernoulli_distribution&), operator<<(std::basic_ostream<>&,
	const geometric_distribution<>&), operator<<(std::basic_ostream<>&,
	const uniform_real<>&), operator>>(std::basic_istream<>&,
	uniform_real<>&), operator<<(std::basic_ostream<>&,
	const exponential_distribution<>&), operator<<(std::basic_ostream<>&,
	const normal_distribution<>&), operator>>(std::basic_istream<>&,
	normal_distribution<>&)): Redo per TR1 specs; move out of line...
	* include/tr1/random.tcc: ... here.

From-SVN: r115003
2006-06-26 03:08:48 +00:00
Paolo Carlini 7f09067fef random (class normal_distribution<>): Add.
2006-06-24  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (class normal_distribution<>): Add.
	* include/tr1/random.tcc (normal_distribution<>::operator()): Define.
	
	* include/tr1/random.tcc (struct _Max): Remove, "inline" in the
	only user, mersenne_twister<>::max().

	* include/tr1/random.tcc (struct _Shift): Move...
	* include/tr1/random: ... here.

	* include/tr1/random.tcc (linear_congruential<>::
	linear_congruential(unsigned long), linear_congruential<>::
	linear_congruential(_Gen&), mersenne_twister<>::max())): Move inline...
	* include/tr1/random: ... here.

	* include/tr1/random (exponential_distribution<>::
	exponential_distribution(const result_type&)): Add missing
	_GLIBCXX_DEBUG_ASSERT.

	* testsuite/tr1/5_numerical_facilities/random/
	exponential_distribution/requirements/typedefs.cc: New.
	* testsuite/tr1/5_numerical_facilities/random/
	normal_distribution/requirements/typedefs.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	bernoulli_distribution/requirements/typedefs.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	geometric_distribution/requirements/typedefs.cc: Likewise.

From-SVN: r114982
2006-06-25 01:23:17 +00:00
Paolo Carlini bcbdbf43ff random.tcc (struct _Private::_Mod_w<>, [...]): Remove.
2006-06-20  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random.tcc (struct _Private::_Mod_w<>,
	_Private::__mod_w<>): Remove.
	(struct _Private::_Shift<>): New.
	(struct _Private::_Max_w<>): Rename to _Max, use the latter.
	(mersenne_twister<>::seed(unsigned long), seed(_Gen&, false_type),
	max()): Adjust.

From-SVN: r114826
2006-06-20 19:41:51 +00:00
Paolo Carlini 3c618f8732 random (xor_combine<>::operator<<): Fix typo.
2006-06-19  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (xor_combine<>::operator<<): Fix typo.
	
	* include/tr1/random (bernoulli_distribution::min(),
	bernoulli_distribution::max(), geometric_distribution<>::min(),
	geometric_distribution<>::max()): Remove.

	* include/tr1/random (geometric_distribution<>::operator()):
	Simplify formula.

	* include/tr1/random: Minor cosmetic changes.

	* testsuite/tr1/5_numerical_facilities/random/discard_block/
	operators/equal.cc: New.
	* testsuite/tr1/5_numerical_facilities/random/discard_block/
	operators/not_equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/discard_block/
	operators/serialize.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/xor_combine/
	operators/equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/xor_combine/
	operators/not_equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/xor_combine/
	operators/serialize.cc: Likewise.

From-SVN: r114777
2006-06-19 16:03:07 +00:00
Paolo Carlini 0934c5effc random (uniform_real<>::uniform_real(_RealType, _RealType)): Implement.
2006-06-16  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (uniform_real<>::uniform_real(_RealType,
	_RealType)): Implement.
	(uniform_real<>::min()): Likewise.
	(uniform_real<>::max()): Likewise.
	(uniform_real<>::reset()): Likewise.

	* include/tr1/random (class uniform_real<>): Minor cosmetic tweaks.

From-SVN: r114730
2006-06-16 23:04:51 +00:00
Paolo Carlini f28e0f4526 random.tcc (mersenne_twister<>::operator()()): Reload the last position of the _M_x vector too.
2006-06-15  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random.tcc (mersenne_twister<>::operator()()):
	Reload the last position of the _M_x vector too.

From-SVN: r114695
2006-06-16 00:04:43 +00:00
Paolo Carlini e4ec6e1983 random (class xor_combine): Fix result_type typedef.
2006-06-15  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (class xor_combine): Fix result_type typedef.
	* testsuite/tr1/5_numerical_facilities/random/xor_combine/
	cons/default.cc: New.
	* testsuite/tr1/5_numerical_facilities/random/xor_combine/
	requirements/typedefs.cc: Tweak.

	* include/tr1/random: Minor cosmetic changes.

From-SVN: r114676
2006-06-15 10:19:06 +00:00
Paolo Carlini 410fce929b random (random_device::random_device(const std::string& = "/dev/urandom")): Open in binary mode.
2006-06-09  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (random_device::random_device(const
	std::string& = "/dev/urandom")): Open in binary mode.

	* include/tr1/random (random_device::random_device(const
	std::string& = "rand")): Use mersenne_twister.
	(random_device::_M_strtoul): New.
	(random_device::operator()()): Update.

	* include/tr1/random: Minor stylistic changes, consistently
	qualify with std::.

From-SVN: r114539
2006-06-10 03:39:38 +00:00
Paolo Carlini d8bc9819d9 acinclude.m4 ([GLIBCXX_CHECK_RANDOM_TR1]): New, check for the availability of "/dev/random" and "/dev/urandom".
2006-06-09  Paolo Carlini  <pcarlini@suse.de>

	* acinclude.m4 ([GLIBCXX_CHECK_RANDOM_TR1]): New, check for
	the availability of "/dev/random" and "/dev/urandom".
	* configure.ac: Use it.
	* include/tr1/random (random_device): Implement, a fall-back for
	systems not providing "/dev/random" and "/dev/urandom" included.
	* testsuite/tr1/5_numerical_facilities/random/random_device/
	cons/default.cc: New.
	* testsuite/tr1/5_numerical_facilities/random/random_device/
	cons/token.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/random_device/
	requirements/typedefs.cc: Likewise.
	* config.h.in: Regenerate.
	* configure: Likewise.

	* testsuite/tr1/5_numerical_facilities/random/mersenne_twister/
	cons/gen1.cc: Minor tweak, add bool test.

From-SVN: r114529
2006-06-09 23:37:28 +00:00
Paolo Carlini d95c1c488a random (mersenne_twister<>::operator==, [...]): Implement.
2006-06-06  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (mersenne_twister<>::operator==,
	operator!=, operator<<, operator>>): Implement.
	* testsuite/tr1/5_numerical_facilities/random/mersenne_twister/
	operators/equal.cc: New.	
	* testsuite/tr1/5_numerical_facilities/random/mersenne_twister/
	operators/not_equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/mersenne_twister/
	operators/serialize.cc: Likewise.

	* include/tr1/random (subtract_with_carry<>::operator==): Fix,
	compare the whole state; use std::equal.

	* include/tr1/random: Minor formatting and style changes.

From-SVN: r114459
2006-06-07 01:50:09 +00:00
Paolo Carlini 281864aaf7 random: Trivial uglification fixes.
2006-06-06  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random: Trivial uglification fixes.
	* include/tr1/random.tcc: Likewise.

	* include/tr1/random (subtract_with_carry<>::
	subtract_with_carry(_IntType)): Fix parameter type to unsigned long.
	(subtract_with_carry<>::seed(_IntType)): Likewise.
	* include/tr1/random.tcc (subtract_with_carry<>::seed(_IntType)):
	Adjust.

From-SVN: r114440
2006-06-06 17:37:33 +00:00
Paolo Carlini 36ac3ed6b7 random (mersenne_twister<>::seed()): Fix per tr1/5.1.4.2, p8.
2006-06-05  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random (mersenne_twister<>::seed()): Fix per
	tr1/5.1.4.2, p8.
	* include/tr1/random.tcc (mod_w): Add.
	(mersenne_twister<>::seed(unsigned long)): Fix per tr1/5.1.4.2, p9.
	(mersenne_twister<>::seed(Gen&, false_type)): Adjust to use mod_w.
	* testsuite/tr1/5_numerical_facilies/random/mt19937.cc: Fix
	expected result per tr1/5.1.5, p2.
	* testsuite/tr1/5_numerical_facilies/random/mersenne_twister/
	cons/default.cc: Adjust.

	* include/tr1/random (exponential_distribution<>::operator()()): Fix.

From-SVN: r114412
2006-06-05 21:23:59 +00:00
Paolo Carlini 86ad0dd600 [multiple changes]
2006-06-05  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/random.tcc (Max::value()): Cast 1 to Tp(1) and
	adjust shift count to w; rename as Max_w.
	(struct Mod_w): New.
	(mersenne_twister<>::seed(Gen&, false_type): Use the latter.
	(mersenne_twister<>::operator()()): Fix ~0ul to ~_UInt().
	* testsuite/tr1/5_numerical_facilies/random/mersenne_twister/
	cons/default.cc: Fix ~0ul to 2^32-1.
	* testsuite/tr1/5_numerical_facilies/random/mersenne_twister/
	cons/gen1.cc: Likewise.

2006-06-05  Stephen M. Webb  <stephen.webb@bregmasoft.com>

	* include/tr1/random: New.
	* include/tr1/random.tcc: Likewise.
	* include/Makefile.am: Add.
	* testsuite/tr1/5_numerical_facilies/random/ranlux3.cc: New.
	* testsuite/tr1/5_numerical_facilies/random/ranlux4.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/mt19937.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/variate_generator/
	requirements/typedefs.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/subtract_with_carry/
	cons/seed1.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/subtract_with_carry/
	cons/seed2.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/subtract_with_carry/
	cons/default.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/subtract_with_carry/
	cons/gen1.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/subtract_with_carry/
	requirements/typedefs.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/subtract_with_carry/
	operators/equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/subtract_with_carry/
	operators/not_equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/subtract_with_carry/
	operators/serialize.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/uniform_real/
	requirements/typedefs.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/discard_block/
	requirements/requirements.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/linear_congruential/
	cons/seed1.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/linear_congruential/
	cons/seed2.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/linear_congruential/
	cons/default.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/linear_congruential/
	cons/gen1.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/linear_congruential/
	requirements/non_uint_neg.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/linear_congruential/
	requirements/typedefs.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/linear_congruential/
	operators/equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/linear_congruential/
	operators/not_equal.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/linear_congruential/
	operators/serialize.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/xor_combine/
	requirements/typedefs.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/minstd_rand.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/minstd_rand0.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/uniform_int/
	cons/range.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/uniform_int/
	cons/default.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/uniform_int/
	cons/range_neg.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/uniform_int/
	requirements/typedefs.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/mersenne_twister/
	cons/seed1.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/mersenne_twister/
	cons/seed2.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/mersenne_twister/
	cons/default.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/mersenne_twister/
	cons/gen1.cc: Likewise.
	* testsuite/tr1/5_numerical_facilies/random/mersenne_twister/
	requirements/typedefs.cc: Likewise.
	* include/Makefile.in: Regenerate.
	* testsuite/tr1/headers.cc: Update.

From-SVN: r114384
2006-06-05 07:33:18 +00:00
Paolo Carlini b7ee72de2d re PR libstdc++/24704 (__gnu_cxx::__exchange_and_add is called even for single threaded applications)
2006-05-24  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24704
	* include/bits/atomicity.h (__exchange_and_add_single,
	__atomic_add_single): New, single thread versions of the atomic
	functions.
	(__exchange_and_add_dispatch, __atomic_add_dispatch): New,
	depending on __GTHREADS and __gthread_active_p() dispatch either
	to the above or to the existing atomic functions.
	* include/ext/pool_allocator.h: Update callers.
	* include/ext/rc_string_base.h: Likewise.
	* include/bits/locale_classes.h: Likewise.
	* include/bits/basic_string.h: Likewise.
	* include/bits/ios_base.h: Likewise.
	* include/tr1/boost_shared_ptr.h: Likewise.
	* src/ios.cc: Likewise.
	* src/locale.cc: Likewise.
	* src/ios_init.cc: Likewise.

From-SVN: r114044
2006-05-24 16:37:42 +00:00
Paolo Carlini b9cebd5026 hashtable (hashtable<>::m_find): Remove; update callers.
2006-05-17  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/hashtable (hashtable<>::m_find): Remove; update callers.

	* include/tr1/hashtable (map_base<>::operator[]): Move out of line.

	* include/tr1/hashtable (hashtable<>::m_insert(const value_type&,
	std::tr1::false_type)): Avoid memory leak risk for new_node.

From-SVN: r113868
2006-05-17 16:28:01 +00:00
Paolo Carlini f99b2be1d3 hashtable (hashtable<>::m_find, [...]): Add.
2006-05-15  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/hashtable (hashtable<>::m_find, m_insert_bucket): Add.
	(hashtable<>::find, m_insert(const value_type&, std::tr1::true_type),
	map_base<>::operator[]): Use the above.
	* testsuite/performance/23_containers/insert/unordered_map_array.cc:
	New.	

	* include/tr1/hashtable (hashtable<>::find_node,
	insert(const value_type&, ...), erase_node): Rename to m_*, adjust
	callers.
	* include/tr1/hashtable: Minor cosmetic changes.

From-SVN: r113800
2006-05-15 21:07:36 +00:00
Peter Doerfler 6c4e9c60ad hashtable (identity<>::operator(), [...]): Return by const ref.
2006-05-13  Peter Doerfler  <gcc@pdoerfler.com>

	* include/tr1/hashtable (identity<>::operator(),
	extract1st<>::operator()): Return by const ref.

From-SVN: r113737
2006-05-13 10:49:40 +00:00
Paolo Carlini 0fc125eaee hashtable (hashtable_iterator<>::hashtable_iterator(), [...]): Add.
2006-05-10  Paolo Carlini  <pcarlini@suse.de>
	    Peter Doerfler  <gcc@pdoerfler.com>

	* include/tr1/hashtable (hashtable_iterator<>::hashtable_iterator(),
	hashtable_const_iterator<>::hashtable_const_iterator(),
	node_iterator<>::node_iterator(),
	node_const_iterator<>::node_const_iterator()): Add.
	(node_iterator<>::node_iterator(hash_node<>*),
	node_const_iterator<>::node_const_iterator(hash_node<>*)): Tweak,
	remove default.
	* testsuite/tr1/6_containers/unordered/hashtable/
	iterators_default_constructor.c: New.

Co-Authored-By: Peter Doerfler <gcc@pdoerfler.com>

From-SVN: r113681
2006-05-10 18:37:54 +00:00