Index: doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/bench.h
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/bench.h	(revision 0da718119b2ce64d4fe7e641a9d6cdfd960b073d)
+++ doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/bench.h	(revision 5f648fb37e3987c3d62dcd9a10ecc73e1caf25e4)
@@ -47,10 +47,13 @@
 #endif
 
-size_t threads = 1;
+size_t threads = 1, num_locks = -1;
 
 #define BENCH_START()				\
-	if ( argc > 2 ) exit( EXIT_FAILURE );	\
+	if ( argc > 3 ) exit( EXIT_FAILURE );	\
 	if ( argc == 2 ) {			\
 		threads = atoi( argv[1] );	\
+	} else if ( argc == 3 ) {			\
+		threads = atoi( argv[1] );	\
+        num_locks = atoi( argv[2] );	\
 	}
 
@@ -77,2 +80,15 @@
 }
 #endif
+
+// splitmix64 rand num generator
+// https://rosettacode.org/wiki/Pseudo-random_numbers/Splitmix64
+uint64_t state;                                  /* The state can be seeded with any (upto) 64 bit integer value. */
+
+uint64_t next_int() {
+    state += 0x9e3779b97f4a7c15;               /* increment the state variable */
+    uint64_t z = state;                          /* copy the state to a working variable */
+    z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9;  /* xor the variable with the variable right bit shifted 30 then multiply by a constant */
+    z = (z ^ (z >> 27)) * 0x94d049bb133111eb;  /* xor the variable with the variable right bit shifted 27 then multiply by a constant */
+    return z ^ (z >> 31);                      /* return the variable xored with itself right bit shifted 31 */
+}
+
Index: doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/run
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/run	(revision 0da718119b2ce64d4fe7e641a9d6cdfd960b073d)
+++ doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/run	(revision 5f648fb37e3987c3d62dcd9a10ecc73e1caf25e4)
@@ -85,5 +85,5 @@
 }
 
-numtimes=1
+numtimes=11
 
 # locks=('-DLOCKS=L1' '-DLOCKS=L2' '-DLOCKS=L3' '-DLOCKS=L4' '-DLOCKS=L5' '-DLOCKS=L6' '-DLOCKS=L7' '-DLOCKS=L8')
@@ -92,9 +92,11 @@
 locks=('2' '4' '8')
 
-# num_threads='2 4 8 16 24 32'
-num_threads='2 4 8'
+num_threads='2 4 8 16 24 32'
+# num_threads='2 4 8'
 
 # toggle benchmarks
 order=${true}
+rand=${true}
+baseline=${true}
 
 runCFA=${true}
@@ -156,8 +158,24 @@
 
 if [ ${runCFA} -eq ${true} ] ; then
-    echo -n 'CFA '
+    if [ ${order} -eq ${true} ] ; then
+        echo -n 'CFA-order '
+    fi
+    if [ ${baseline} -eq ${true} ] ; then
+        echo -n 'CFA-baseline '
+    fi
+    if [ ${rand} -eq ${true} ] ; then
+        echo -n 'CFA-rand '
+    fi
 fi # done CFA
 if [ ${runCPP} -eq ${true} ] ; then
-    echo -n 'CPP '
+    if [ ${order} -eq ${true} ] ; then
+        echo -n 'CPP-order '
+    fi
+    if [ ${baseline} -eq ${true} ] ; then
+        echo -n 'CPP-baseline '
+    fi
+    if [ ${rand} -eq ${true} ] ; then
+        echo -n 'CPP-rand '
+    fi
 fi # done CPP
 echo ""
@@ -174,10 +192,11 @@
 
 run_order() {
-    echo "order locks: "${1}
+    echo "locks: "${1}
+    post_args=${1}
 
     if [ ${runCFA} -eq ${true} ] ; then
         cd cfa # CFA RUN
-        print_header 'CFA'${3}
-        ${cfa} ${cfa_flags} ${2} order${3}.cfa -o a.${hostname} > /dev/null 2>&1
+        print_header 'CFA-'${3}
+        ${cfa} ${cfa_flags} ${2} ${3}.cfa -o a.${hostname} > /dev/null 2>&1
         run_bench
         rm a.${hostname}
@@ -187,6 +206,6 @@
     if [ ${runCPP} -eq ${true} ] ; then
         cd cpp # CPP RUN
-        print_header 'CPP'${3}
-        ${cpp} ${cpp_flags} ${2} order${3}.cc -o a.${hostname} > /dev/null 2>&1
+        print_header 'CPP-'${3}
+        ${cpp} ${cpp_flags} ${2} ${3}.cc -o a.${hostname} > /dev/null 2>&1
         run_bench
         rm a.${hostname}
@@ -196,9 +215,16 @@
 
 # /usr/bin/time -f "%Uu %Ss %Er %Mkb"
-if [ ${order} -eq ${true} ] ; then
-    for i in ${!locks[@]}; do
-        run_order ${locks[$i]} ${lock_flags[$i]} ''
-        run_order ${locks[$i]} ${lock_flags[$i]} '-basic'
-    done
-fi
-
+
+for i in ${!locks[@]}; do
+    if [ ${order} -eq ${true} ] ; then
+        run_order ${locks[$i]} ${lock_flags[$i]} 'order'
+    fi
+    if [ ${baseline} -eq ${true} ] ; then
+        run_order ${locks[$i]} ${lock_flags[$i]} 'baseline'
+    fi
+    if [ ${rand} -eq ${true} ] ; then
+        run_order ${locks[$i]} '-DLOCKS=L8' 'rand'
+    fi
+done
+
+
