Matrix Multiply

Cilia

func multiply(Matrix A, B) -> Matrix {
    Int m = A.rows()
    Int n = A.columns()
    Int p = B.columns()

    Matrix C(m, n);

    for i in 0..<m {
        for j in 0..<p {
            for k in 0..<n {
                C[i, j] += A[i, k] * B[k, j]
            }
        }
    }

    return C
}

C++

auto multiply(const Matrix& A, const Matrix& B) -> Matrix {
    int m = A.rows();
    int n = A.columns();
    int p = B.columns();

    Matrix C(m, n);

    for (int i = 0; i < m; ++i) {
        for (int j = 0; j < p; ++j) {
            for (int k = 0; k < n; ++k) {
                C[i, j] += A[i, k] * B[k, j];
            }
        }
    }

    return C;
}