content: 
  public class MatrixMultiply {
  
  	/**
  	 * Multiples 2 2-dimensional matrices together given their dimensions are
  	 * compatible
  	 * 
  	 * @param mat_a A 2-Dimensional matrix to be multiplied
  	 * @param mat_b A 2-Dimensional matrix to be multiplied
  	 * @return The product of the two matrices if compatible dimensions, null
  	 *         otherwise
  	 */
  	public static double[][] matrixMultiply2D(double[][] mat_a, double[][] mat_b) {
  		int aRows = mat_a.length;
  		int aColumns = mat_a[0].length;
  		int bRows = mat_b.length;
  		int bColumns = mat_b[0].length;
  
  		if (aColumns != bRows)
  			throw new IllegalArgumentException("A:Rows: " + aColumns + " did not match B:Columns " + bRows + ".");
  
  		double[][] mat_result = new double[aRows][bColumns];
  		for (int i = 0; i < aRows; i++) {
  			for (int j = 0; j < bColumns; j++) {
  				mat_result[i][j] = 0.00000;
  			}
  		}
  
  		for (int i = 0; i < aRows; i++) { // aRow
  			for (int j = 0; j < bColumns; j++) { // bColumn
  				for (int k = 0; k < aColumns; k++) { // aColumn
  					mat_result[i][j] += mat_a[i][k] * mat_b[k][j];
  				}
  			}
  		}
  		return mat_result;
  	}
  
  }
  