/* * @file timeMatrix.cpp * @brief Performs timing and profiling for Matrix operations * @author Alex Cunningham */ #include #include #include "Matrix.h" using namespace std; using namespace gtsam; /* * Results: * Alex's Machine: * (using p = 100000 m = 10 n = 12 reps = 50) - Average times * - (1st pass of simple changes) no pass: 0.184 sec , pass: 0.181 sec * - (1st rev memcpy) no pass: 0.181 sec , pass: 0.180 sec * - (1st rev matrix_range) no pass: 0.186 sec , pass: 0.184 sec * (using p = 10 m = 10 n = 12 reps = 10000000) * - (matrix_range version) no pass: 24.21 sec , pass: 23.97 sec * - (memcpy version) no pass: 18.96 sec , pass: 18.39 sec * - (original version) no pass: 23.45 sec , pass: 22.80 sec */ double timeCollect(size_t p, size_t m, size_t n, bool passDims, size_t reps) { // create a large number of matrices // p = number of matrices // m = rows per matrix // n = columns per matrix // reps = number of repetitions // fill the matrices with identities vector matrices; for (int i=0; i