public Matrix times(Matrix m)
	{
		//Validity test given by c_1 = r_2
		if(this.numColumns != m.numRows){
			System.out.println("Error: matrix arguments are not compatible for multiplication!");
			return null;
		}
		
		//Given that we have assessed correct bounds, we may calculate
		//without issues regarding indices out of bounds.
		int[][] product = new int[this.numRows][m.numColumns];
		
		
		//Iterate over the product
		for(int r = 0; r < this.numRows; r++)
			for(int c = 0; c < m.numColumns; c++){
				int weightedSum = 0;
				
				//Construct a weighted sum by iterating over
				//the columns of matrix A at row r and
				//the rows of matrix B at column c
				for(int c_A = 0, r_B = 0;
						c_A < this.numColumns && r_B < m.numRows;
						c_A++, r_B++)
						weightedSum += this.data[r][c_A]
								* m.data[r_B][c];
				
				product[r][c] = weightedSum;
			}
		
		
		//Insert the product into a new matrix and return it
		return new Matrix(product); // placeholder
		
		
	}