summaryrefslogtreecommitdiff
path: root/starts/meaning-vm/level-2/sugar.cpp
diff options
context:
space:
mode:
authorolpc user <olpc@xo-5d-f7-86.localdomain>2019-12-26 16:34:28 -0800
committerolpc user <olpc@xo-5d-f7-86.localdomain>2019-12-26 16:34:28 -0800
commit94ed7bbaa739995a9815b5f1c916d9e24575368c (patch)
tree587c4f268721cf156aab92c60aae4ec530c7ce17 /starts/meaning-vm/level-2/sugar.cpp
parentfe2a9b21e655041ef14e34c94509c6974f294866 (diff)
downloadstandingwithresilience-94ed7bbaa739995a9815b5f1c916d9e24575368c.tar.gz
standingwithresilience-94ed7bbaa739995a9815b5f1c916d9e24575368c.zip
level2 compiles, nothing visible yet
Diffstat (limited to 'starts/meaning-vm/level-2/sugar.cpp')
-rw-r--r--starts/meaning-vm/level-2/sugar.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/starts/meaning-vm/level-2/sugar.cpp b/starts/meaning-vm/level-2/sugar.cpp
new file mode 100644
index 0000000..2a86cca
--- /dev/null
+++ b/starts/meaning-vm/level-2/sugar.cpp
@@ -0,0 +1,32 @@
+#include "sugar.hpp"
+
+#include <stdlib.h> // int rand(); void srand(int seed);
+#include <time.h> // int time(0); int clock_gettime(CLOCK_REALTIME, struct timespec *tp{tv_sec,tv_nsec})
+#include <unistd.h> // usleep(unsigned int usecs)
+
+namespace intellect {
+namespace level2 {
+namespace sugar {
+
+double rand(double min, double max)
+{
+ // seed random number generator statically, for habit delay
+ static struct timespec tp;
+ static int seed = (
+ clock_gettime(CLOCK_REALTIME, &tp),
+ srand(tp.tv_nsec),
+ tp.tv_nsec
+ );
+ (void)(seed);
+
+ return double(::rand()) / RAND_MAX * (max - min) + min;
+}
+
+void usleep(unsigned int usecs)
+{
+ ::usleep(usecs);
+}
+
+}
+}
+}