/*
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) INRIA -
 * 
 * This file is released under the 3-clause BSD license. See COPYING-BSD.
 */
#include "matmul.h"

/*--------------------------------------------------------
 *  Matrix multiplication C= A*B, (A,B,C stored columnwise) 
 *  C function
 *--------------------------------------------------------*/

#define A(i,k) a[i + k*n]
#define B(k,j) b[k + j*m]
#define C(i,j) c[i + j*n]

void matmul(double a[],int n,int m,double b[],int l, double c[])
{
  int i = 0,j = 0,k = 0;
  double s = 0.0;
  
  for( i=0 ; i < n; i++)
  {
    for( j=0; j < l; j++)
    {
      s = 0.;
      for( k=0; k< m; k++)
      {
	      s += A(i,k)*B(k,j);
      }
      C(i,j) = s;
    }
  }
}
