private static void SafeAminusBintoC(Matrix A, int xa, int ya, Matrix B, int xb, int yb, Matrix C, int size) { for (int i = 0; i < size; i++) // rows for (int j = 0; j < size; j++) // cols { C[i, j] = 0; if (xa + j < A.cols && ya + i < A.rows) C[i, j] += A[ya + i, xa + j]; if (xb + j < B.cols && yb + i < B.rows) C[i, j] -= B[yb + i, xb + j]; } }