+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.
+
2007-12-24 Paolo Carlini <pcarlini@suse.de>
* include/std/complex (complex<float>::complex(float, float)):
# 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>
# 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>
# 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>
# 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>
{
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;
}
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;
}
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);
}
}