You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Abseil Team
7f9c536c0a
Implement Eisel-Lemire for from_chars<float>
This does for float what a recent commit did for double.
Median of 5 runs of "time atod_manual_test pnftd/data/*.txt"
user 0m0.730s # Before
user 0m0.701s # After (a speed-up of 1.04x)
where pnftd is https://github.com/nigeltao/parse-number-fxx-test-data
Part of the reason why this speed-up of 1.04x isn't as dramatic as for
the from_chars<double> change is that, out of the 5299993 pnftd test
cases, 76.42% produce result_out_of_range for single precision (compared
to 1.03% for double precision).
"benchy --reference=srcfs --benchmark_filter='SimpleAtof' :numbers_benchmark"
output (which uses deterministic but randomly generated input strings):
name old cpu/op new cpu/op delta
BM_SimpleAtof<absl::string_view>/10/1 392ns ± 2% 323ns ± 3% -17.60% (p=0.000 n=48+48)
BM_SimpleAtof<absl::string_view>/10/2 426ns ± 3% 311ns ± 4% -26.89% (p=0.000 n=59+49)
BM_SimpleAtof<absl::string_view>/10/4 435ns ± 3% 341ns ± 3% -21.68% (p=0.000 n=58+48)
BM_SimpleAtof<absl::string_view>/10/8 501ns ± 3% 393ns ± 3% -21.55% (p=0.000 n=60+50)
BM_SimpleAtof<const char*>/10/1 409ns ± 6% 339ns ± 3% -17.06% (p=0.000 n=48+49)
BM_SimpleAtof<const char*>/10/2 412ns ± 4% 347ns ± 3% -15.82% (p=0.000 n=47+49)
BM_SimpleAtof<const char*>/10/4 463ns ± 6% 369ns ± 6% -20.37% (p=0.000 n=60+50)
BM_SimpleAtof<const char*>/10/8 548ns ± 3% 450ns ± 4% -17.91% (p=0.000 n=57+59)
BM_SimpleAtof<std::string>/10/1 386ns ± 2% 325ns ± 3% -15.74% (p=0.000 n=48+50)
BM_SimpleAtof<std::string>/10/2 425ns ± 3% 311ns ± 4% -26.79% (p=0.000 n=60+50)
BM_SimpleAtof<std::string>/10/4 435ns ± 4% 340ns ± 3% -21.94% (p=0.000 n=59+49)
BM_SimpleAtof<std::string>/10/8 503ns ± 4% 398ns ± 2% -20.89% (p=0.000 n=59+48)
PiperOrigin-RevId: 476880111
Change-Id: Ibc5583677ac2ed338d09d8db960ae8a513eb2ccb
|
2 years ago |
.. |
algorithm
|
Fix "unsafe narrowing" warnings in absl, 10/n.
|
3 years ago |
base
|
Change the macro ABSL_IS_TRIVIALLY_RELOCATABLE into a type trait - absl::is_trivially_relocatable - and move it from optimization.h to type_traits.h.
|
2 years ago |
cleanup
|
Export of internal Abseil changes
|
3 years ago |
container
|
Add sparse and string copy constructor benchmarks for hash table.
|
2 years ago |
copts
|
Add a case to detect when the Bazel compiler string is explicitly set to "gcc",
|
3 years ago |
debugging
|
Improve failure message: tell the values we don't like.
|
2 years ago |
flags
|
Fix "unsafe narrowing" warnings in absl, 8/n.
|
2 years ago |
functional
|
any_invocable_test: Re-enable the two conversion tests that used to fail under MSVC
|
3 years ago |
hash
|
Fix "unsafe narrowing" warnings in absl, 10/n.
|
3 years ago |
log
|
De-pointerize LogStreamer::stream_, and fix move ctor/assign preservation of flags and other stream properties.
|
2 years ago |
memory
|
Don't construct/destroy object twice
|
3 years ago |
meta
|
Change the macro ABSL_IS_TRIVIALLY_RELOCATABLE into a type trait - absl::is_trivially_relocatable - and move it from optimization.h to type_traits.h.
|
2 years ago |
numeric
|
Change bit_width(T) to return int rather than T.
|
3 years ago |
profiling
|
Fix "unsafe narrowing" warnings in absl, 8/n.
|
2 years ago |
random
|
Fix "unsafe narrowing" warnings in absl, 8/n.
|
2 years ago |
status
|
Fix "unsafe narrowing" warnings in absl, 10/n.
|
3 years ago |
strings
|
Implement Eisel-Lemire for from_chars<float>
|
2 years ago |
synchronization
|
Fix "unsafe narrowing" warnings in absl, 8/n.
|
2 years ago |
time
|
Import of CCTZ from GitHub.
|
2 years ago |
types
|
Fix "unsafe narrowing" warnings in absl, 10/n.
|
3 years ago |
utility
|
Minor clang-tidy cleanups
|
3 years ago |
BUILD.bazel
|
Add a case to detect when the Bazel compiler string is explicitly set to "gcc",
|
3 years ago |
CMakeLists.txt
|
Release the Abseil Logging library
|
3 years ago |
abseil.podspec.gen.py
|
Export of internal Abseil changes
|
4 years ago |