/* File: MatMult.java Straightforward single thread matrix multiplication. Computes C = A x B for NxN matrices */ import java.util.* ; public class MatMult { public static void main (String [] args) { int N = 2000 ; int[][] A = new int[N][N] ; int[][] B = new int[N][N] ; int[][] C = new int[N][N] ; // Random prg = new Random ( System.currentTimeMillis() ) ; Random prg = new Random ( 95762 ) ; // Populate A and B matrices for (int i = 0 ; i < N ; i++ ) { for (int j = 0 ; j < N ; j++) { A[i][j] = prg.nextInt(N) ; B[i][j] = prg.nextInt(N) ; } } // Do the N^3 time algorithm int sum ; for (int i = 0 ; i < N ; i++) { for (int j = 0 ; j < N ; j++) { sum = 0 ; for (int k = 0 ; k < N ; k++) { sum += A[i][k] * B[k][j] ; } C[i][j] = sum ; } } /* // Print out C for debugging. // Skip for big matrices. // for (int i = 0 ; i < N ; i++) { for (int j = 0 ; j < N ; j++) { System.out.print("[" + C[i][j] + "]") ; } System.out.println() ; } */ } }