#include <iostream> #include <cstdlib> using namespace std; void mm(float **a, float **b, float **c, int n); void printm(float **a, int n); int main(int argc, char * argv[]) { if(argc==1) { cout << "Usage is:\nmm n seed m" << endl; return(0); } int n = atoi(argv[1]); // dimensions of the matrixes int s = atoi(argv[2]); // seed for random number generator int m = atoi(argv[3]); // number of matrixes to use srand(s); for(int t=0; t<m; t++) { // create matrix A float **A = new float* [n]; for(int i=0; i<n; i++) A[i] = new float[n]; // create matrix B float **B = new float* [n]; for(int i=0; i<n; i++) B[i] = new float[n]; // create matrix C float **C = new float* [n]; for(int i=0; i<n; i++) C[i] = new float[n]; // init matrixes for(int i=0; i<n; i++) for(int j=0; j<n; j++) { A[i][j] = ((float) rand()) / ((float) RAND_MAX); B[i][j] = ((float) rand()) / ((float) RAND_MAX); C[i][j] = 0.0; } // compute mm(A,B,C,n); // next matrix // printm(A,n); // printm(B,n); // printm(C,n); } } void mm(float **a, float **b, float **c, int n) { for(int i=0; i<n; i++) for(int j=0; j<n; j++) for(int k=0; k<n; k++) c[i][j] += a[i][k]*b[k][j]; return; } void printm(float **a, int n) { for(int i=0; i<n; i++) { for(int j=0; j<n; j++) cout << a[i][j] << " "; cout << endl; } cout << endl; }