docs: @Override
      public void changeSize(int newRows, int newCols)
      {
          if(newRows <= 0)
              throw new ArithmeticException("Matrix must have a positive number of rows");
          if(newCols <= 0)
              throw new ArithmeticException("Matrix must have a positive number of columns");
          //Increase the underlying matrix to the needed size
          int underNewRows = Math.max(newRows+firstRow, baseMatrix.rows());
          int underNewCols = Math.max(newCols+firstColumn, baseMatrix.cols());
          /*
           * Either the size for the base stays the same, or gets increased
           */
          baseMatrix.changeSize(underNewRows, underNewCols);
          //Zero out the values we are expanding to
          if(newRows > rows())
              new SubMatrix(baseMatrix, toRow, firstColumn, firstRow+newRows, firstColumn+newCols).zeroOut();
          if(newCols > cols())
              new SubMatrix(baseMatrix, firstRow, toCol, firstRow+newRows, firstColumn+newCols).zeroOut();
          
          toRow = firstRow+newRows;
          toCol = firstColumn+newCols;
      }