| // $Id: matrix.java,v 1.1 2004-05-23 07:14:27 bfulgham Exp $ |
| // http://www.bagley.org/~doug/shootout/ |
| // modified to use a little less memory by Thomas Holenstein |
| |
| import java.io.*; |
| import java.util.*; |
| |
| public class matrix { |
| static int SIZE = 30; |
| |
| public static void main(String args[]) { |
| int n = Integer.parseInt(args[0]); |
| int m1[][] = mkmatrix(SIZE, SIZE); |
| int m2[][] = mkmatrix(SIZE, SIZE); |
| int mm[][] = new int[SIZE][SIZE]; |
| for (int i=0; i<n; i++) { |
| mmult(SIZE, SIZE, m1, m2, mm); |
| } |
| System.out.print(mm[0][0]); |
| System.out.print(" "); |
| System.out.print(mm[2][3]); |
| System.out.print(" "); |
| System.out.print(mm[3][2]); |
| System.out.print(" "); |
| System.out.println(mm[4][4]); |
| } |
| |
| public static int[][] mkmatrix (int rows, int cols) { |
| int count = 1; |
| int m[][] = new int[rows][cols]; |
| for (int i=0; i<rows; i++) { |
| for (int j=0; j<cols; j++) { |
| m[i][j] = count++; |
| } |
| } |
| return(m); |
| } |
| |
| public static void mmult (int rows, int cols, |
| int[][] m1, int[][] m2, int[][] m3) { |
| for (int i=0; i<rows; i++) { |
| for (int j=0; j<cols; j++) { |
| int val = 0; |
| for (int k=0; k<cols; k++) { |
| val += m1[i][k] * m2[k][j]; |
| } |
| m3[i][j] = val; |
| } |
| } |
| } |
| } |