aboutsummaryrefslogtreecommitdiff
path: root/mwe/profiling/lib/lib.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mwe/profiling/lib/lib.cpp')
-rw-r--r--mwe/profiling/lib/lib.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/mwe/profiling/lib/lib.cpp b/mwe/profiling/lib/lib.cpp
new file mode 100644
index 0000000..9ea8f26
--- /dev/null
+++ b/mwe/profiling/lib/lib.cpp
@@ -0,0 +1,26 @@
+#include <chrono>
+#include <thread>
+#include <random>
+
+#include "lib.h"
+
+// yeah this is bad, boo hoo
+using namespace std;
+using std::this_thread::sleep_for;
+using std::chrono::milliseconds;
+
+random_device dev;
+mt19937 rng(dev());
+uniform_int_distribution<mt19937::result_type> random_dist(1, 50);
+
+static void random_slow() {
+ int delay = random_dist(rng);
+ sleep_for(milliseconds(delay));
+}
+
+int recursive(int rem) {
+ if (rem <= 0) return 0;
+ random_slow();
+ return recursive(rem - 1) + recursive(rem - 2);
+}
+