#include #include // for random number generator #include #include // for writing to the file using namespace std; int main() { int array_sizes[6] = {32,64,128,256,512,1024}; int m; ofstream results; //output the results results.open ("results.txt"); for(int i = 0; i < 6; i++){ for (int k = 0; k < 3; k ++){ clock_t start = clock(); m = array_sizes[i]; int **A = new int*[m]; int **B = new int*[m]; int **product = new int*[m]; for ( int i = 0 ; i < m ; i++) { A[i] = new int[m]; B[i] = new int[m]; product[i] = new int[m]; } // Initialize A[I][K] // I x K == row * inner for(int row = 0; row < m; row++) { for(int inner = 0; inner < m; inner++){ A[row][inner] = 5; } } for(int row = 0; row < m; row++) { for(int inner = 0; inner < m; inner++){ B[row][inner] = 3; //cout << B[row][inner] << " "; } //cout << "\n"; } // main routine for multiplication for(int row = 0; row < m; row++) { for(int col = 0; col < m; col++) { product[row][col] = 0; for(int inner = 0; inner < m; inner++) { product[row][col] += A[row][inner] * B[inner][col]; } //cout << product[row][col] << " "; } //cout << "\n"; } //Deallocate for ( int i = 0 ; i < m ; i++) { delete[] A[i]; delete[] B[i]; delete[] product[i]; } delete[] A; delete[] B; delete[] product; clock_t end = clock(); double cpu_time = static_cast(end - start)/CLOCKS_PER_SEC; results << cpu_time << endl; } results << m << endl; } results.close(); return 0; }