Skip to content

Instantly share code, notes, and snippets.

View correctness.industry.draft.md
@MattPD
MattPD / analysis.draft.md
Last active Aug 14, 2020
Program Analysis Resources (WIP draft)
View analysis.draft.md
@MattPD
MattPD / cpp.std.coroutines.draft.md
Last active Jul 25, 2020
C++ links: Coroutines (WIP draft)
View cpp.std.coroutines.draft.md
@MattPD
MattPD / set_benchmark.cpp
Created Oct 8, 2016
Find Example - Benchmark (Nonius) Code
View set_benchmark.cpp
/* Running:
BNSIZE=10000; BNQUERIES=1000
./find --param=size:$BNSIZE --param=queries:$BNQUERIES >
results.size=$BNSIZE.queries=$BNQUERIES.txt
./find --param=size:$BNSIZE --param=queries:$BNQUERIES --reporter=html
--output=results.size=$BNSIZE.queries=$BNQUERIES.html
*/
View gist:06e293fb935eaf67ee9c301e70db6975
Related to discussion of
http://larshagencpp.github.io/blog/2016/05/01/a-cache-miss-is-not-a-cache-miss
at https://twitter.com/gregerlars/status/726781584481878017
Three variants:
- Simple: cacheS
- Pointer: cacheP
- LinkedList: cacheL
Context -- looking at average stall durations, we can confirm that cacheL wastes considerably more instruction slots than cacheP, which wastes only somewhat more instruction slots than cacheS:
@MattPD
MattPD / main.cpp
Last active Sep 22, 2016
Boost.Hana: compile-time if demo
View main.cpp
// Boost.Hana solution
// issue: http://baptiste-wicht.com/posts/2015/07/simulate-static_if-with-c11c14.html
// docs w/ explanation: http://ldionne.com/hana/#tutorial-introspection-is_valid
#include <iostream>
#include <string>
#include <boost/hana.hpp>
auto has_pop_back = boost::hana::is_valid([](auto && obj) -> decltype(obj.pop_back()) { });
View test.cpp
#include <iostream>
using std::cout;
int main()
{
cout << "Hello! \n";
return 0;
}
You can’t perform that action at this time.