Matrixprodukt


\begin{displaymath}\left[
\begin{array}{ccc}
a_{11} & a_{12} & a_{13} \\ a_{21} ...
...\ b_{31} & b_{32} & b_{33} \\
\end{array}\right]
\quad = \quad\end{displaymath}      
\begin{displaymath}\left[
\begin{array}{ccc}
a_{11} b_{11} + a_{12} b_{21} + a_{...
...} b_{13} + a_{32} b_{23} + a_{33} b_{33} \\
\end{array}\right]\end{displaymath}      

void  mmul(double *MA,int MAC,double *MB,int MBC,double *MC,double skal){ // Matrix A, Zeilen MAC/3, M. B,Spalten MAB/3, ErgM. C,Skalierung
  register int i=0,j=0,k=0; double *hilfsmatrix;
  hilfsmatrix  =(double *)  malloc( MAC * MBC / 9 * sizeof(double));
  for(i=0;i<MAC/3;i++){
    for(j=0;j<MBC/3;j++){
      for(k=0,*(hilfsmatrix+j+i*3)=0;k<3;k++){
        *(hilfsmatrix+j+i*3) += *(MA+k+i*3)* *(MB+j+k*3)*skal;
      }
    }
  }
  for(i=0;i< MAC * MBC / 9;i++){
    *(MC+i)=*(hilfsmatrix+i);
  }
  free(hilfsmatrix);
};