fast_float
awesome-cpp
Our great sponsors
fast_float | awesome-cpp | |
---|---|---|
15 | 27 | |
1,267 | 55,280 | |
1.9% | - | |
8.8 | 9.0 | |
30 days ago | 5 days ago | |
C++ | ||
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
fast_float
-
Parquet: More than just “Turbo CSV”
> Google put in significant engineering effort into "Ryu", a parsing library for double-precision floating point numbers: https://github.com/ulfjack/ryu
It's not a parsing library, but a printing one, i.e., double -> string. https://github.com/fastfloat/fast_float is a parsing library, i.e., string -> double, not by Google though, but was indeed motivated by parsing JSON fast https://lemire.me/blog/2020/03/10/fast-float-parsing-in-prac...
-
What do number conversions (from string) cost?
For those that don't know, gcc 12.x updated its float parsing logic to something similar to fast_float and it's about 1/6 of the cost presented here (sub 100 in the graph presented here). Strongly suggest using that library or upgrading the compiler if you need the performance.
-
Can sanitizers find the two bugs I wrote in C++?
This makes sense for integers but betware floating point from_chars - libc++ still doesn't implement it and libstdc++ implements it by wrapping locale-dependent libc functions which involves temporarily changing the thread locale and possibly memory allocation to make the passed string 0-terminated. IMO libstdc++'s checkbox "solution" is worse than not implementing it at all - user's are better off using Lemire's API-compatible fast_float implementation [0].
-
Passing Programs To A Stack Machine
I'm a bit stuck on how to do the same thing in c++, due to containers only having a single type. The very inefficient way I'm currently doing it is by passing a program as a vector of strings, and then converting the string constants to doubles with the fast_float library.
-
Parsing can become accidentally quadratic because of sscanf
Just above this comment is a merged PR, which references fast_float library: https://github.com/fastfloat/fast_float
-
Making Rust Float Parsing Fast: libcore Edition
Daniel Lemire @lemire (creator of the algorithm, author of the C++ implementation, and provided constant feedback to help guide the PR).
-
RapidObj v0.1 - A fast, header-only, C++17 library for parsing Wavefront .obj files.
And out of 6,000 lines in the file, at least 3000 are other people's code: earcut for polygon triangulation and fast_float because .obj files typically contain a lot of floating point numbers so it's important to parse them quickly.
-
First release of dragonbox, a fast float-to-string conversion algorithm, is available
How this compares to https://github.com/fastfloat/fast_float ?
-
Why is std::from_chars<float> slow?
I tried to compare it against Daniel Lemire's excellent fast_float library. Fast float took about 180ms for the same program, and all I did was change "std" namespace prefix to "fast_float". It's a factor of 12 difference, at least my machine. I tried MSVC next, and it is a lot better, but it is still ~4 times slower than fast float. AFAIK, clang currently does not implement the feature at all.
-
Iterator invalidation of std::string_view
If you don't mind a 3rd party lib until your stdlib updates, https://github.com/fastfloat/fast_float is best-in-class.
awesome-cpp
- Interactive GCC (igcc) is a read-eval-print loop (REPL) for C/C++
- Awesome C++
-
[Cpp Questions] Un analyseur HTML pour CPP?
Regardé: Awesome-CPP
-
How to prefect my OOP skills ?
Here's a list of (globally) well-written C++ libraries: https://github.com/fffaraz/awesome-cpp
- Suggestion for general-purpose C++ libraries
- C++ learning resources?
-
c++ to gender dysphoria pipeline
Here is a list of free online C/C++ books: https://github.com/fffaraz/awesome-cpp/blob/master/books.md
-
Dependency injection with c++
If you need some library you can try searching thjs list https://github.com/fffaraz/awesome-cpp
-
Honourable mention for their Open Source Practice: BRAVE
Here's a big list of a bunch of high quality C++ libraries and codebases. Hopefully you can find something in your areas of interest and can dive into it.
-
IKOS: Static analyzer for C/C++ based on the theory of Abstract Interpretation
Could you detail what exact tooling you are talking about ?
Like, this static analyzer looks interesting but 5 years ago clang --analyze had no trouble producing me a nice html indicating the 27 steps across 6 functions that lead to a pointer being dereferenced after being deleted. Tooling is there but it seems that pretty much no one is aware of it - see e.g. this: https://github.com/cpp-best-practices/cppbestpractices/blob/... or this: https://github.com/fffaraz/awesome-cpp for a quick look at what exists.
What are some alternatives?
dragonbox - Reference implementation of Dragonbox in C++
halley - A lightweight game engine written in modern C++
rapidobj - A fast, header-only, C++17 library for parsing Wavefront .obj files.
PugiXML - Light-weight, simple and fast XML parser for C++ with XPath support
C++ Format - A modern formatting library
awesome-javascript-learning - A tiny list limited to the best JavaScript Learning Resources
fast-float-rust - Super-fast float parser in Rust (now part of Rust core)
awesome-electron - Useful resources for creating apps with Electron
RapidJSON - A fast JSON parser/generator for C++ with both SAX/DOM style API
emacs.dz - Awesome emacs config files
simdutf8 - SIMD-accelerated UTF-8 validation for Rust.
awesome-infinidash - An awesome list for the awe-inspiring power of Infinidash, an imaginary product.