const char* dgemm_desc = "Basic, three-loop dgemm.";

void square_dgemm(const int M, const double *A, const double *B, double *C)
{
    int i, j, k;
    for (i = 0; i < M; ++i) {
        for (j = 0; j < M; ++j) {
            const double *Ai_ = A + i;
            const double *B_j = B + j*M;
            double cij = C[j*M + i];

            for (k = 0; k < M; ++k) 
                 cij += Ai_[k*M] * B_j[k];

            C[j*M + i] = cij;
       }
  }
}
