aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2007-12-24 14:32:21 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2007-12-24 14:32:21 +0000
commit861d6c431f15b7371273779e54a9b39ea312b41f (patch)
treec5ede4b98170a2831fb15e797760ac3107d73366 /libstdc++-v3/include
parentd0cbf089dbdc6daefd3fe05347e6e6092e9abdd9 (diff)
downloadgcc-861d6c431f15b7371273779e54a9b39ea312b41f.zip
gcc-861d6c431f15b7371273779e54a9b39ea312b41f.tar.gz
gcc-861d6c431f15b7371273779e54a9b39ea312b41f.tar.bz2
hashtable_policy.h (_Prime_rehash_policy:: _M_next_bkt, [...]): Use __builtin_ceil.
2007-12-24 Paolo Carlini <pcarlini@suse.de> * include/tr1_impl/hashtable_policy.h (_Prime_rehash_policy:: _M_next_bkt, _M_bkt_for_elements, _M_need_rehash): Use __builtin_ceil. * include/std/unordered_map: Do not include <cmath>; prefer <bits/stringfwd.h> to <string>. * include/std/unordered_set: Likewise. * include/tr1/unordered_map: Likewise. * include/tr1/unordered_set: Likewise. From-SVN: r131157
Diffstat (limited to 'libstdc++-v3/include')
-rw-r--r--libstdc++-v3/include/std/unordered_map5
-rw-r--r--libstdc++-v3/include/std/unordered_set5
-rw-r--r--libstdc++-v3/include/tr1/unordered_map3
-rw-r--r--libstdc++-v3/include/tr1/unordered_set3
-rw-r--r--libstdc++-v3/include/tr1_impl/hashtable_policy.h17
5 files changed, 14 insertions, 19 deletions
diff --git a/libstdc++-v3/include/std/unordered_map b/libstdc++-v3/include/std/unordered_map
index 226fea8..4ce8051 100644
--- a/libstdc++-v3/include/std/unordered_map
+++ b/libstdc++-v3/include/std/unordered_map
@@ -44,13 +44,12 @@
# error C++0x header cannot be included from TR1 header
#endif
-#include <cmath>
-#include <string>
#include <utility>
#include <algorithm> // lower_bound
+#include <type_traits>
#include <bits/allocator.h>
#include <bits/stl_function.h> // equal_to, _Identity, _Select1st
-#include <type_traits>
+#include <bits/stringfwd.h>
#include <bits/functional_hash.h>
#include <bits/hashtable.h>
diff --git a/libstdc++-v3/include/std/unordered_set b/libstdc++-v3/include/std/unordered_set
index 3b0f22c..3cc6937 100644
--- a/libstdc++-v3/include/std/unordered_set
+++ b/libstdc++-v3/include/std/unordered_set
@@ -44,13 +44,12 @@
# error C++0x header cannot be included from TR1 header
#endif
-#include <cmath>
-#include <string>
#include <utility>
#include <algorithm> // lower_bound
+#include <type_traits>
#include <bits/allocator.h>
#include <bits/stl_function.h> // equal_to, _Identity, _Select1st
-#include <type_traits>
+#include <bits/stringfwd.h>
#include <bits/functional_hash.h>
#include <bits/hashtable.h>
diff --git a/libstdc++-v3/include/tr1/unordered_map b/libstdc++-v3/include/tr1/unordered_map
index 85e8f00..041eb94 100644
--- a/libstdc++-v3/include/tr1/unordered_map
+++ b/libstdc++-v3/include/tr1/unordered_map
@@ -40,12 +40,11 @@
# error TR1 header cannot be included from C++0x header
#endif
-#include <cmath>
-#include <string>
#include <utility>
#include <algorithm> // lower_bound
#include <bits/allocator.h>
#include <bits/stl_function.h> // equal_to, _Identity, _Select1st
+#include <bits/stringfwd.h>
#include <tr1/type_traits>
#include <tr1/functional_hash.h>
#include <tr1/hashtable.h>
diff --git a/libstdc++-v3/include/tr1/unordered_set b/libstdc++-v3/include/tr1/unordered_set
index 35c605f..1618168 100644
--- a/libstdc++-v3/include/tr1/unordered_set
+++ b/libstdc++-v3/include/tr1/unordered_set
@@ -40,12 +40,11 @@
# error TR1 header cannot be included from C++0x header
#endif
-#include <cmath>
-#include <string>
#include <utility>
#include <algorithm> // lower_bound
#include <bits/allocator.h>
#include <bits/stl_function.h> // equal_to, _Identity, _Select1st
+#include <bits/stringfwd.h>
#include <tr1/type_traits>
#include <tr1/functional_hash.h>
#include <tr1/hashtable.h>
diff --git a/libstdc++-v3/include/tr1_impl/hashtable_policy.h b/libstdc++-v3/include/tr1_impl/hashtable_policy.h
index 514d444..b74531c 100644
--- a/libstdc++-v3/include/tr1_impl/hashtable_policy.h
+++ b/libstdc++-v3/include/tr1_impl/hashtable_policy.h
@@ -425,8 +425,8 @@ namespace __detail
{
const unsigned long* __p = std::lower_bound(__prime_list, __prime_list
+ _S_n_primes, __n);
- _M_next_resize = static_cast<std::size_t>(std::ceil(*__p
- * _M_max_load_factor));
+ _M_next_resize =
+ static_cast<std::size_t>(__builtin_ceil(*__p * _M_max_load_factor));
return *__p;
}
@@ -439,8 +439,8 @@ namespace __detail
const float __min_bkts = __n / _M_max_load_factor;
const unsigned long* __p = std::lower_bound(__prime_list, __prime_list
+ _S_n_primes, __min_bkts);
- _M_next_resize = static_cast<std::size_t>(std::ceil(*__p
- * _M_max_load_factor));
+ _M_next_resize =
+ static_cast<std::size_t>(__builtin_ceil(*__p * _M_max_load_factor));
return *__p;
}
@@ -468,15 +468,14 @@ namespace __detail
const unsigned long* __p =
std::lower_bound(__prime_list, __prime_list + _S_n_primes,
__min_bkts);
- _M_next_resize =
- static_cast<std::size_t>(std::ceil(*__p * _M_max_load_factor));
+ _M_next_resize = static_cast<std::size_t>
+ (__builtin_ceil(*__p * _M_max_load_factor));
return std::make_pair(true, *__p);
}
else
{
- _M_next_resize =
- static_cast<std::size_t>(std::ceil(__n_bkt
- * _M_max_load_factor));
+ _M_next_resize = static_cast<std::size_t>
+ (__builtin_ceil(__n_bkt * _M_max_load_factor));
return std::make_pair(false, 0);
}
}